From 562ea0fefb0f767dbf32c3d24868efc9de6c2860 Mon Sep 17 00:00:00 2001 From: Timo Schmidt Date: Sun, 19 Mar 2023 04:22:58 +0100 Subject: [PATCH] Add clarifying comments --- ft_putchar.c | 3 ++- main.c | 36 +++++++++++++++++++++++++++++++++++- rush00 | Bin 0 -> 16296 bytes rush00.c | 11 ++++++++++- 4 files changed, 47 insertions(+), 3 deletions(-) create mode 100755 rush00 diff --git a/ft_putchar.c b/ft_putchar.c index 16f7bf8..de49b7c 100644 --- a/ft_putchar.c +++ b/ft_putchar.c @@ -6,12 +6,13 @@ /* By: jtorrez- +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/03/18 20:27:12 by jtorrez- #+# #+# */ -/* Updated: 2023/03/18 20:27:13 by jtorrez- ### ########.fr */ +/* Updated: 2023/03/19 04:21:28 by tischmid ### ########.fr */ /* */ /* ************************************************************************** */ #include +// Display an ASCII char on standard output. void ft_putchar(char c) { write(1, &c, 1); diff --git a/main.c b/main.c index fa55b48..366f400 100644 --- a/main.c +++ b/main.c @@ -6,26 +6,50 @@ /* By: jtorrez- +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/03/18 20:15:26 by jtorrez- #+# #+# */ -/* Updated: 2023/03/18 20:21:42 by jtorrez- ### ########.fr */ +/* Updated: 2023/03/19 04:22:13 by tischmid ### ########.fr */ /* */ /* ************************************************************************** */ void rush(int x, int y); int ft_atoi(char *str); +void ft_putchar(char c); +void ft_putstr(char *str); +// entry point of the program +// Parses the program arguments and fails if the number of passed +// arguments is not 2. +// Also fails if the passed arguments are out of +// bounds (200 for width, 100 for height). +// argv[0] contains the path of the executable, eg ./rush00 int main(int argc, char *argv[]) { int width; int height; if (argc != 3) + { + ft_putstr("Usage: "); + ft_putstr(argv[0]); + ft_putstr(" [width] [height]\n"); return (1); + } width = ft_atoi(argv[1]); height = ft_atoi(argv[2]); + if (width >= 200) + { + ft_putstr("Width must be less than 200\n"); + return (2); + } + if (height >= 100) + { + ft_putstr("Height must be less than 100\n"); + return (3); + } rush(width, height); return (0); } +// Convert a string to an integer int ft_atoi(char *str) { int i; @@ -37,3 +61,13 @@ int ft_atoi(char *str) number = number * 10 + (str[i++] - '0'); return (number); } + +// Display a null-terminated string on standard output. +void ft_putstr(char *str) +{ + int i; + + i = 0; + while (str[i] != '\0') + ft_putchar(str[i++]); +} diff --git a/rush00 b/rush00 new file mode 100755 index 0000000000000000000000000000000000000000..b0d40015e5358d795b6f48ea9e81c3cd8c8ac2a5 GIT binary patch literal 16296 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 +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/03/18 20:15:12 by jtorrez- #+# #+# */ -/* Updated: 2023/03/18 20:26:32 by jtorrez- ### ########.fr */ +/* Updated: 2023/03/19 04:21:23 by tischmid ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,6 +20,12 @@ const char g_corners[] = {'o', 'o', 'o', 'o', '\0'}; const char g_horizontal = '-'; const char g_vertical = '|'; +// Display a rectangle on standard output, specified by a width (x), +// a height (y), a char array (g_corners) that contains the corners +// in clockwise direction (starting from the top left), a char that +// contains the horizontal character (g_horizontal), a char that contains +// the vertical character (g_vertical), and additionally a char that +// contains the inside ("the filling") character of the rectangle. void rush(int x, int y) { int i; @@ -34,6 +40,9 @@ void rush(int x, int y) horiz_line(g_corners[3], g_horizontal, g_corners[2], x); } +// Display a horizontal line on standard output, specified by a single +// left char, (width - 2) middle chars, and a single right char, +// followed by a newline at the end. void horiz_line(char left, char middle, char right, int width) { int i;