diff --git a/.cache/clangd/index/alcu.h.FC2EE915F1165072.idx b/.cache/clangd/index/alcu.h.FC2EE915F1165072.idx new file mode 100644 index 0000000..228eaaa Binary files /dev/null and b/.cache/clangd/index/alcu.h.FC2EE915F1165072.idx differ diff --git a/.cache/clangd/index/check_input.c.D27AA41095D26EB5.idx b/.cache/clangd/index/check_input.c.D27AA41095D26EB5.idx new file mode 100644 index 0000000..47f685c Binary files /dev/null and b/.cache/clangd/index/check_input.c.D27AA41095D26EB5.idx differ diff --git a/.cache/clangd/index/fill_array.c.990BCC54FAB801D3.idx b/.cache/clangd/index/fill_array.c.990BCC54FAB801D3.idx new file mode 100644 index 0000000..4c5f3d8 Binary files /dev/null and b/.cache/clangd/index/fill_array.c.990BCC54FAB801D3.idx differ diff --git a/.cache/clangd/index/get_next_line.h.01BAFD108BBB5F61.idx b/.cache/clangd/index/get_next_line.h.01BAFD108BBB5F61.idx new file mode 100644 index 0000000..526de41 Binary files /dev/null and b/.cache/clangd/index/get_next_line.h.01BAFD108BBB5F61.idx differ diff --git a/.cache/clangd/index/libft.h.852899A78425DC70.idx b/.cache/clangd/index/libft.h.852899A78425DC70.idx new file mode 100644 index 0000000..93ae181 Binary files /dev/null and b/.cache/clangd/index/libft.h.852899A78425DC70.idx differ diff --git a/.cache/clangd/index/main.c.449FC24725B4900F.idx b/.cache/clangd/index/main.c.449FC24725B4900F.idx new file mode 100644 index 0000000..9ecad8e Binary files /dev/null and b/.cache/clangd/index/main.c.449FC24725B4900F.idx differ diff --git a/alum1 b/alum1 deleted file mode 100755 index 6d5514a..0000000 Binary files a/alum1 and /dev/null differ diff --git a/compile_commands.json b/compile_commands.json new file mode 100644 index 0000000..3ecae3b --- /dev/null +++ b/compile_commands.json @@ -0,0 +1,53 @@ +[ + { + "directory": "/home/lud-adam/Documents/rush", + "arguments": [ + "cc", + "-Wall", + "-Wextra", + "-Werror", + "-MMD", + "-I", + "inc/", + "-c", + "src/main.c", + "-o", + ".obj/main.o" + ], + "file": "src/main.c" + }, + { + "directory": "/home/lud-adam/Documents/rush", + "arguments": [ + "cc", + "-Wall", + "-Wextra", + "-Werror", + "-MMD", + "-I", + "inc/", + "-c", + "src/fill_array.c", + "-o", + ".obj/fill_array.o" + ], + "file": "src/fill_array.c" + }, + { + "directory": "/home/lud-adam/Documents/rush", + "arguments": [ + "cc", + "-Wall", + "-Wextra", + "-Werror", + "-MMD", + "-I", + "inc/", + "-c", + "src/check_input.c", + "-o", + ".obj/check_input.o" + ], + "file": "src/check_input.c" + } +] diff --git a/inc/alcu.h b/inc/alcu.h index 7260eed..51bfcb3 100644 --- a/inc/alcu.h +++ b/inc/alcu.h @@ -6,7 +6,7 @@ /* By: lud-adam +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2026/03/28 13:27:29 by lud-adam #+# #+# */ -/* Updated: 2026/03/28 13:29:45 by lud-adam ### ########.fr */ +/* Updated: 2026/03/28 15:26:01 by lud-adam ### ########.fr */ /* */ /* ************************************************************************** */ @@ -18,5 +18,6 @@ char *read_file(int fd); int check_input(int fd); void print_board(int *game_state, size_t nb_line); +int *fill_array(int fd, int size); #endif diff --git a/libft/ft_strlen.c b/libft/ft_strlen.c index 73593d5..0b85248 100644 --- a/libft/ft_strlen.c +++ b/libft/ft_strlen.c @@ -6,18 +6,20 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/11/05 11:17:31 by dgaillet #+# #+# */ -/* Updated: 2025/11/12 13:36:18 by dgaillet ### ########lyon.fr */ +/* Updated: 2026/03/28 14:47:54 by lud-adam ### ########.fr */ /* */ /* ************************************************************************** */ #include "libft.h" -size_t ft_strlen(const char *s) +size_t ft_strlen(char *str, char c) { size_t i; i = 0; - while (s[i]) + if (!str) + return (0); + while (str[i] && str[i] != c) i++; return (i); } diff --git a/src/check_input.c b/src/check_input.c index eae2013..eb8a8c8 100644 --- a/src/check_input.c +++ b/src/check_input.c @@ -6,7 +6,7 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2026/03/28 13:01:37 by dgaillet #+# #+# */ -/* Updated: 2026/03/28 15:14:49 by lud-adam ### ########.fr */ +/* Updated: 2026/03/28 16:05:37 by lud-adam ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/src/fill_array.c b/src/fill_array.c index eed5611..b6bc993 100644 --- a/src/fill_array.c +++ b/src/fill_array.c @@ -6,13 +6,28 @@ /* By: lud-adam +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2026/03/28 13:21:46 by lud-adam #+# #+# */ -/* Updated: 2026/03/28 14:02:21 by lud-adam ### ########.fr */ +/* Updated: 2026/03/28 16:05:46 by lud-adam ### ########.fr */ /* */ /* ************************************************************************** */ #include "../libft/libft.h" +#include "get_next_line.h" -void fill_array(char* file) +int* fill_array(int fd, int size) { - + int* res = malloc(sizeof(int) * size); + if (res == NULL) + return (NULL); + + char* line = get_next_line(fd); + int i = 0; + + while (line != NULL) + { + res[i] = ft_atoi(line); + i++; + free(line); + line = get_next_line(fd); + } + return (res); } diff --git a/src/get_next_line.c b/src/get_next_line.c index 3da4584..55d80e1 100644 --- a/src/get_next_line.c +++ b/src/get_next_line.c @@ -6,11 +6,12 @@ /* By: lud-adam +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2026/03/28 15:07:17 by lud-adam #+# #+# */ -/* Updated: 2026/03/28 15:13:54 by lud-adam ### ########.fr */ +/* Updated: 2026/03/28 16:04:59 by lud-adam ### ########.fr */ /* */ /* ************************************************************************** */ #include "get_next_line.h" + #include "../libft/libft.h" size_t ft_strlen_with_c(char *str, char c) { @@ -94,22 +95,24 @@ static char *get_the_line(int fd, char *buffer) { i = 0; nb_read = 0; line = NULL; - if (buffer[0] != '\0') { - line = build_line(buffer, NULL, &i); - if (!line) - return (NULL); - ft_memcpy(buffer, buffer + i + 1, ft_strlen_with_c(buffer + i, '\0')); + if (buffer[0] != '\0') + { + line = build_line(buffer, NULL, &i); + if (!line) + return (NULL); + ft_memcpy(buffer, buffer + i + 1, ft_strlen_with_c(buffer + i, '\0')); } - while (detect_newline(line) == 0) { - read_file(fd, buffer, &nb_read); - if (nb_read < 0) - return (free(line), NULL); - if (nb_read == 0) - break; - line = build_line(buffer, line, &i); - ft_memcpy(buffer, buffer + i + 1, ft_strlen_with_c(buffer + i, '\0')); + while (detect_newline(line) == 0) + { + read_file(fd, buffer, &nb_read); + if (nb_read < 0) + return (free(line), NULL); + if (nb_read == 0) + break ; + line = build_line(buffer, line, &i); + ft_memcpy(buffer, buffer + i + 1, ft_strlen_with_c(buffer + i, '\0')); } - return (line); + return (line); } char *get_next_line(int fd) { diff --git a/src/main.c b/src/main.c index 7e0def8..d17ed42 100644 --- a/src/main.c +++ b/src/main.c @@ -6,7 +6,7 @@ /* By: lud-adam +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2026/03/28 12:30:29 by lud-adam #+# #+# */ -/* Updated: 2026/03/28 15:07:41 by lud-adam ### ########.fr */ +/* Updated: 2026/03/28 16:06:09 by lud-adam ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,27 +17,56 @@ #include "../libft/libft.h" #include "alcu.h" -int main(int argc, char *argv[]) { - if (argc != 2) { +int main(int argc, char *argv[]) +{ + if (argc != 2) + { ft_putstr_fd("ERROR", 2); return (1); } int fd = open(argv[1], O_RDONLY); - if (fd == -1) { + if (fd == -1) + { ft_putstr_fd("ERROR", 2); return (1); } int size = check_input(fd); printf("size %d\n", size); - if (size < 0) { + if (size < 0) + { ft_putstr_fd("ERROR", 2); return (1); } - int test[] = {8, 5, 3, 2, 1}; - print_board(test, 5); - return (0); + if (size < 0) + { + ft_putstr_fd("ERROR", 2); + return (1); + } + int* lines = fill_array(fd, size); + if (!lines) + return (1); + for (int i = 0; i < size; i++) + { + char buffer[100] = ""; + ft_putstr_fd("Player : ", 1); + char* temp = ft_itoa(i % 2 == 0 ? 1 : 2); + ft_putstr_fd(temp, 1); + ft_putstr_fd("\n", 1); + ft_putstr_fd("Enter the number of matchs to take off: ", 1); + int nb_read = read(0, buffer, sizeof(buffer)); + if (nb_read > 0) + { + int temp = ft_atoi(buffer); + if (temp > 1 && temp < 4) + lines[i] -= temp; + else + ft_putstr_fd("Between 1 and 3", fd); + print_board(lines, 5); + } + } close(fd); + return (0); }