From 20130c152224aeb7f9194e56cbd864a6da4ea8eb Mon Sep 17 00:00:00 2001 From: Adam Joly Date: Fri, 26 Jan 2024 17:56:40 +0100 Subject: [PATCH] started norm --- .ber | 0 MacroLibX/{example => .example}/42_logo.bmp | Bin MacroLibX/{example => .example}/42_logo.jpg | Bin MacroLibX/{example => .example}/42_logo.png | Bin MacroLibX/{example => .example}/build.sh | 0 MacroLibX/{example => .example}/font.ttf | Bin MacroLibX/{example => .example}/main.c | 0 MacroLibX/{example => .example}/run.sh | 0 Makefile | 14 +- ft_check_map_error.c | 280 -------------------- ft_move_character.c | 171 ------------ get_map.o | Bin 0 -> 5136 bytes get_next_line/get_next_line.a | Bin 0 -> 4970 bytes get_next_line/get_next_line.o | Bin 0 -> 2536 bytes get_next_line/get_next_line_utils.o | Bin 0 -> 2056 bytes libft/ft_atoi.o | Bin 0 -> 1272 bytes libft/ft_bzero.o | Bin 0 -> 1128 bytes libft/ft_calloc.o | Bin 0 -> 1368 bytes libft/ft_isalnum.o | Bin 0 -> 1056 bytes libft/ft_isalpha.o | Bin 0 -> 1032 bytes libft/ft_isascii.o | Bin 0 -> 1016 bytes libft/ft_isdigit.o | Bin 0 -> 1016 bytes libft/ft_isprint.o | Bin 0 -> 1016 bytes libft/ft_itoa.o | Bin 0 -> 1824 bytes libft/ft_lstadd_back.o | Bin 0 -> 1192 bytes libft/ft_lstadd_front.o | Bin 0 -> 1040 bytes libft/ft_lstclear.o | Bin 0 -> 1240 bytes libft/ft_lstdelone.o | Bin 0 -> 1160 bytes libft/ft_lstiter.o | Bin 0 -> 1056 bytes libft/ft_lstlast.o | Bin 0 -> 1048 bytes libft/ft_lstmap.o | Bin 0 -> 1408 bytes libft/ft_lstnew.o | Bin 0 -> 1176 bytes libft/ft_lstsize.o | Bin 0 -> 1016 bytes libft/ft_memchr.o | Bin 0 -> 1072 bytes libft/ft_memcmp.o | Bin 0 -> 1136 bytes libft/ft_memcpy.o | Bin 0 -> 1096 bytes libft/ft_memmove.o | Bin 0 -> 1144 bytes libft/ft_memset.o | Bin 0 -> 1040 bytes libft/ft_putchar_fd.o | Bin 0 -> 1128 bytes libft/ft_putendl_fd.o | Bin 0 -> 1208 bytes libft/ft_putnbr_fd.o | Bin 0 -> 1464 bytes libft/ft_putstr_fd.o | Bin 0 -> 1208 bytes libft/ft_split.o | Bin 0 -> 2464 bytes libft/ft_strchr.o | Bin 0 -> 1240 bytes libft/ft_strdup.o | Bin 0 -> 1312 bytes libft/ft_striteri.o | Bin 0 -> 1072 bytes libft/ft_strjoin.o | Bin 0 -> 1472 bytes libft/ft_strlcat.o | Bin 0 -> 1424 bytes libft/ft_strlcpy.o | Bin 0 -> 1328 bytes libft/ft_strlen.o | Bin 0 -> 1024 bytes libft/ft_strmapi.o | Bin 0 -> 1360 bytes libft/ft_strncmp.o | Bin 0 -> 1168 bytes libft/ft_strnstr.o | Bin 0 -> 1344 bytes libft/ft_strrchr.o | Bin 0 -> 1280 bytes libft/ft_strtrim.o | Bin 0 -> 1480 bytes libft/ft_substr.o | Bin 0 -> 1600 bytes libft/ft_tolower.o | Bin 0 -> 1016 bytes libft/ft_toupper.o | Bin 0 -> 1016 bytes libft/libft.a | Bin 0 -> 56580 bytes main.o | Bin 0 -> 9272 bytes map.ber | 15 +- map.txt.ber | 3 + map_error/ft_check_file.c | 47 ++++ map_error/ft_check_file.o | Bin 0 -> 3528 bytes map_error/ft_check_map_content.c | 80 ++++++ map_error/ft_check_map_content.o | Bin 0 -> 5328 bytes map_error/ft_check_map_error.c | 103 +++++++ map_error/ft_check_map_error.o | Bin 0 -> 6264 bytes map_error/ft_check_map_state.c | 79 ++++++ map_error/ft_check_map_state.o | Bin 0 -> 5720 bytes map_error/ft_check_map_utils.c | 36 +++ map_error/ft_check_map_utils.o | Bin 0 -> 3272 bytes move_character/ft_move_character.c | 37 +++ move_character/ft_move_character.o | Bin 0 -> 4624 bytes move_character/ft_move_down.c | 45 ++++ move_character/ft_move_down.o | Bin 0 -> 4872 bytes move_character/ft_move_left.c | 45 ++++ move_character/ft_move_left.o | Bin 0 -> 4872 bytes move_character/ft_move_right.c | 45 ++++ move_character/ft_move_right.o | Bin 0 -> 4872 bytes move_character/ft_move_up.c | 45 ++++ move_character/ft_move_up.o | Bin 0 -> 4856 bytes print_map.o | Bin 0 -> 6792 bytes printf/ft_printf.o | Bin 0 -> 3968 bytes printf/ft_putchar.o | Bin 0 -> 1136 bytes printf/ft_putnbr.o | Bin 0 -> 1512 bytes printf/ft_putnbrbase.o | Bin 0 -> 1760 bytes printf/ft_putstr.o | Bin 0 -> 1384 bytes printf/ft_strlen.o | Bin 0 -> 1016 bytes printf/libftprintf.a | Bin 0 -> 11374 bytes so_long | Bin 0 -> 47896 bytes so_long.h | 61 ++++- 92 files changed, 644 insertions(+), 462 deletions(-) delete mode 100644 .ber rename MacroLibX/{example => .example}/42_logo.bmp (100%) rename MacroLibX/{example => .example}/42_logo.jpg (100%) rename MacroLibX/{example => .example}/42_logo.png (100%) rename MacroLibX/{example => .example}/build.sh (100%) rename MacroLibX/{example => .example}/font.ttf (100%) rename MacroLibX/{example => .example}/main.c (100%) rename MacroLibX/{example => .example}/run.sh (100%) delete mode 100644 ft_check_map_error.c delete mode 100644 ft_move_character.c create mode 100644 get_map.o create mode 100644 get_next_line/get_next_line.a create mode 100644 get_next_line/get_next_line.o create mode 100644 get_next_line/get_next_line_utils.o create mode 100644 libft/ft_atoi.o create mode 100644 libft/ft_bzero.o create mode 100644 libft/ft_calloc.o create mode 100644 libft/ft_isalnum.o create mode 100644 libft/ft_isalpha.o create mode 100644 libft/ft_isascii.o create mode 100644 libft/ft_isdigit.o create mode 100644 libft/ft_isprint.o create mode 100644 libft/ft_itoa.o create mode 100644 libft/ft_lstadd_back.o create mode 100644 libft/ft_lstadd_front.o create mode 100644 libft/ft_lstclear.o create mode 100644 libft/ft_lstdelone.o create mode 100644 libft/ft_lstiter.o create mode 100644 libft/ft_lstlast.o create mode 100644 libft/ft_lstmap.o create mode 100644 libft/ft_lstnew.o create mode 100644 libft/ft_lstsize.o create mode 100644 libft/ft_memchr.o create mode 100644 libft/ft_memcmp.o create mode 100644 libft/ft_memcpy.o create mode 100644 libft/ft_memmove.o create mode 100644 libft/ft_memset.o create mode 100644 libft/ft_putchar_fd.o create mode 100644 libft/ft_putendl_fd.o create mode 100644 libft/ft_putnbr_fd.o create mode 100644 libft/ft_putstr_fd.o create mode 100644 libft/ft_split.o create mode 100644 libft/ft_strchr.o create mode 100644 libft/ft_strdup.o create mode 100644 libft/ft_striteri.o create mode 100644 libft/ft_strjoin.o create mode 100644 libft/ft_strlcat.o create mode 100644 libft/ft_strlcpy.o create mode 100644 libft/ft_strlen.o create mode 100644 libft/ft_strmapi.o create mode 100644 libft/ft_strncmp.o create mode 100644 libft/ft_strnstr.o create mode 100644 libft/ft_strrchr.o create mode 100644 libft/ft_strtrim.o create mode 100644 libft/ft_substr.o create mode 100644 libft/ft_tolower.o create mode 100644 libft/ft_toupper.o create mode 100644 libft/libft.a create mode 100644 main.o create mode 100644 map_error/ft_check_file.c create mode 100644 map_error/ft_check_file.o create mode 100644 map_error/ft_check_map_content.c create mode 100644 map_error/ft_check_map_content.o create mode 100644 map_error/ft_check_map_error.c create mode 100644 map_error/ft_check_map_error.o create mode 100644 map_error/ft_check_map_state.c create mode 100644 map_error/ft_check_map_state.o create mode 100644 map_error/ft_check_map_utils.c create mode 100644 map_error/ft_check_map_utils.o create mode 100644 move_character/ft_move_character.c create mode 100644 move_character/ft_move_character.o create mode 100644 move_character/ft_move_down.c create mode 100644 move_character/ft_move_down.o create mode 100644 move_character/ft_move_left.c create mode 100644 move_character/ft_move_left.o create mode 100644 move_character/ft_move_right.c create mode 100644 move_character/ft_move_right.o create mode 100644 move_character/ft_move_up.c create mode 100644 move_character/ft_move_up.o create mode 100644 print_map.o create mode 100644 printf/ft_printf.o create mode 100644 printf/ft_putchar.o create mode 100644 printf/ft_putnbr.o create mode 100644 printf/ft_putnbrbase.o create mode 100644 printf/ft_putstr.o create mode 100644 printf/ft_strlen.o create mode 100644 printf/libftprintf.a create mode 100755 so_long diff --git a/.ber b/.ber deleted file mode 100644 index e69de29..0000000 diff --git a/MacroLibX/example/42_logo.bmp b/MacroLibX/.example/42_logo.bmp similarity index 100% rename from MacroLibX/example/42_logo.bmp rename to MacroLibX/.example/42_logo.bmp diff --git a/MacroLibX/example/42_logo.jpg b/MacroLibX/.example/42_logo.jpg similarity index 100% rename from MacroLibX/example/42_logo.jpg rename to MacroLibX/.example/42_logo.jpg diff --git a/MacroLibX/example/42_logo.png b/MacroLibX/.example/42_logo.png similarity index 100% rename from MacroLibX/example/42_logo.png rename to MacroLibX/.example/42_logo.png diff --git a/MacroLibX/example/build.sh b/MacroLibX/.example/build.sh similarity index 100% rename from MacroLibX/example/build.sh rename to MacroLibX/.example/build.sh diff --git a/MacroLibX/example/font.ttf b/MacroLibX/.example/font.ttf similarity index 100% rename from MacroLibX/example/font.ttf rename to MacroLibX/.example/font.ttf diff --git a/MacroLibX/example/main.c b/MacroLibX/.example/main.c similarity index 100% rename from MacroLibX/example/main.c rename to MacroLibX/.example/main.c diff --git a/MacroLibX/example/run.sh b/MacroLibX/.example/run.sh similarity index 100% rename from MacroLibX/example/run.sh rename to MacroLibX/.example/run.sh diff --git a/Makefile b/Makefile index d7acac5..6244189 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ # By: adjoly +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2023/11/01 11:03:22 by adjoly #+# #+# # -# Updated: 2024/01/19 13:41:58 by adjoly ### ########.fr # +# Updated: 2024/01/26 16:16:13 by adjoly ### ########.fr # # # # **************************************************************************** # @@ -16,9 +16,17 @@ CC = cc SRCS = main.c \ get_map.c \ - ft_move_character.c \ print_map.c \ - ft_check_map_error.c + map_error/ft_check_file.c \ + map_error/ft_check_map_content.c \ + map_error/ft_check_map_error.c \ + map_error/ft_check_map_state.c \ + map_error/ft_check_map_utils.c \ + move_character/ft_move_character.c \ + move_character/ft_move_down.c \ + move_character/ft_move_up.c \ + move_character/ft_move_left.c \ + move_character/ft_move_right.c OBJS = $(SRCS:.c=.o) diff --git a/ft_check_map_error.c b/ft_check_map_error.c deleted file mode 100644 index f51b7e6..0000000 --- a/ft_check_map_error.c +++ /dev/null @@ -1,280 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_check_map_error.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2024/01/17 10:17:52 by adjoly #+# #+# */ -/* Updated: 2024/01/24 12:35:46 by adjoly ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "libft/libft.h" -#include "printf/ft_printf.h" -#include "so_long.h" -#include -#include -#include - -char ft_check_charset(char c, char *charset) -{ - unsigned short i; - - i = 0; - while (charset[i] && i < USHRT_MAX) - { - if (c == charset[i]) - return (0); - i++; - } - return (1); -} - -char ft_check_file(char *file_name) -{ - int fd; - - fd = open(file_name, O_RDONLY); - if (fd < 1) - { - close(fd); - return (1); - } - close(fd); - return (0); -} - -char ft_valid_char(char **map) -{ - size_t y; - size_t x; - - y = 0; - while (map[y]) - { - x = 0; - while (map[y][x]) - { - if (ft_check_charset(map[y][x], "01CEP") == 1) - return (1); - x++; - } - y++; - } - return (0); -} - -char ft_check_element(char **map, t_coords *p_coords) -{ - size_t y; - size_t x; - size_t p_count; - size_t e_count; - size_t c_count; - - y = 0; - p_count = 0; - e_count = 0; - c_count = 0; - while (map[y]) - { - x = 0; - while (map[y][x]) - { - if (map[y][x] == 'P') - { - p_count++; - p_coords->x = x; - p_coords->y = y; - } - else if (map[y][x] == 'E') - e_count++; - else if (map[y][x] == 'C') - c_count++; - x++; - } - y++; - } - if (p_count != 1) - return (1); - else if (e_count != 1) - return (2); - else if (c_count < 1) - return (3); - return (0); -} - -void ft_flood(int x, int y, char **map) -{ - if (map[y][x] != '1') - { - map[y][x] = '1'; - ft_flood(x - 1, y, map); - ft_flood(x + 1, y, map); - ft_flood(x, y - 1, map); - ft_flood(x, y + 1, map); - } -} - -char ft_floodfill(char **map, t_coords *p_coords) -{ - size_t x; - size_t y; - - ft_flood(p_coords->x, p_coords->y, map); - y = 0; - while (map[y]) - { - x = 0; - while (map[y][x]) - { - if (map[y][x] == 'C' || map[y][x] == 'E') - return (1); - x++; - } - y++; - } - return (0); -} - -char ft_checkline(char *map_line, char c) -{ - unsigned short i; - - i = 0; - while (*map_line && i < USHRT_MAX) - { - if (*map_line != c) - return (1); - map_line++; - i++; - } - return (0); -} - -char ft_checkcol(char **map, char c, unsigned short col) -{ - unsigned short i; - - i = 0; - while (map[i] && i < USHRT_MAX) - { - if (map[i][col] != c) - return (1); - i++; - } - return (0); -} - -char ft_is_closed(char **map) -{ - unsigned short size_map; - unsigned short size_line; - unsigned short i; - unsigned short res; - - i = 0; - size_map = ft_mapsize(map); - size_line = ft_strlen(map[0]); - res = ft_checkcol(map, '1', 0); - res += ft_checkcol(map, '1', size_line - 1); - res += ft_checkline(map[0], '1'); - res += ft_checkline(map[size_map - 1], '1'); - if (res > 0) - return (1); - return (0); -} - -char ft_is_empty(char **map) -{ - if (map[0][0] == '\0') - return (1); - return (0); -} - -char ft_is_rectangular(char **map) -{ - size_t len_map; - - len_map = ft_strlen(*map); - while (*map) - { - if (ft_strlen(*map) != len_map) - return (1); - map++; - } - return (0); -} - -char ft_valid_file_ext(char *file_name) -{ - unsigned short file_len; - - file_len = ft_strlen(file_name) - 1; - if (file_len <= 3) - return (1); - else if (file_name[file_len] == 'r' && file_name[file_len - 1] == 'e' \ - && file_name[file_len - 2] == 'b' && file_name[file_len - 3] == '.') - return (0); - return (1); -} - -void ft_send_error(char *msg, char **map) -{ - ft_putstr_fd("Error\n", 1); - ft_putstr_fd(msg, 1); - if (map) - ft_freemap(map); - exit(EXIT_SUCCESS); -} - -void ft_check_map_error(char **map) -{ - char check_result; - t_coords *p_coords; - - p_coords = malloc(sizeof(t_coords)); - if (ft_is_empty(map) == 1) - { - free(p_coords); - ft_send_error("Map is empty", map); - } - if (ft_valid_char(map) == 1) - { - free(p_coords); - ft_send_error("Invalid character in map\n", map); - } - if (ft_is_rectangular(map) == 1) - { - free(p_coords); - ft_send_error("Map is not rectengular\n", map); - } - check_result = ft_check_element(map, p_coords); - if (check_result == 1) - { - free(p_coords); - ft_send_error("Invalid number of player\n", map); - } - if (check_result == 2) - { - free(p_coords); - ft_send_error("Invalid number of exit\n", map); - } - if (check_result == 3) - { - free(p_coords); - ft_send_error("Invalid number of collectible\n", map); - } - if (ft_is_closed(map) == 1) - { - free(p_coords); - ft_send_error("Map is not closed\n", map); - } - if (ft_floodfill(map, p_coords) == 1) - { - free(p_coords); - ft_send_error("Map is cannot be finished\n", map); - } - free(p_coords); -} diff --git a/ft_move_character.c b/ft_move_character.c deleted file mode 100644 index a9b8327..0000000 --- a/ft_move_character.c +++ /dev/null @@ -1,171 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_move_character.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2024/01/07 19:13:01 by adjoly #+# #+# */ -/* Updated: 2024/01/24 12:16:14 by adjoly ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "so_long.h" - -void ft_move_up(t_window *win) -{ - if (win->map[win->p_coords->y - 1][win->p_coords->x] == 'C') - { - ft_putimg(win->p_coords->x, win->p_coords->y, win, '0'); - win->map[win->p_coords->y - 1][win->p_coords->x] = '0'; - ft_putimg(win->p_coords->x, win->p_coords->y - 1, win, 'P'); - win->c_count--; - win->mov_count++; - ft_printf("Mouvement : %d\n", win->mov_count); - } - else if (win->p_coords->y == win->e_coords->y - && win->e_coords->x == win->p_coords->x - && win->map[win->p_coords->y - 1][win->p_coords->x] != '1') - { - ft_putimg(win->p_coords->x, win->p_coords->y, win, 'E'); - ft_putimg(win->p_coords->x, win->p_coords->y - 1, win, 'P'); - win->mov_count++; - ft_printf("Mouvement : %d\n", win->mov_count); - } - else if (win->map[win->p_coords->y - 1][win->p_coords->x] == 'E' - && win->c_count == 0) - { - ft_printf("Mouvement : %d\n", win->mov_count + 1); - ft_exit(win); - } - else if (win->map[win->p_coords->y - 1][win->p_coords->x] != '1') - { - ft_putimg(win->p_coords->x, win->p_coords->y, win, '0'); - ft_putimg(win->p_coords->x, win->p_coords->y - 1, win, 'P'); - win->mov_count++; - ft_printf("Mouvement : %d\n", win->mov_count); - } -} - -void ft_move_down(t_window *win) -{ - if (win->map[win->p_coords->y + 1][win->p_coords->x] == 'C') - { - ft_putimg(win->p_coords->x, win->p_coords->y, win, '0'); - win->map[win->p_coords->y + 1][win->p_coords->x] = '0'; - ft_putimg(win->p_coords->x, win->p_coords->y + 1, win, 'P'); - win->c_count--; - win->mov_count++; - ft_printf("Mouvement : %d\n", win->mov_count); - } - else if (win->p_coords->y == win->e_coords->y - && win->e_coords->x == win->p_coords->x - && win->map[win->p_coords->y + 1][win->p_coords->x] != '1') - { - ft_putimg(win->p_coords->x, win->p_coords->y, win, 'E'); - ft_putimg(win->p_coords->x, win->p_coords->y + 1, win, 'P'); - win->mov_count++; - ft_printf("Mouvement : %d\n", win->mov_count); - } - else if (win->map[win->p_coords->y + 1][win->p_coords->x] == 'E' - && win->c_count == 0) - { - ft_printf("Mouvement : %d\n", win->mov_count + 1); - ft_exit(win); - } - else if (win->map[win->p_coords->y + 1][win->p_coords->x] != '1') - { - ft_putimg(win->p_coords->x, win->p_coords->y, win, '0'); - ft_putimg(win->p_coords->x, win->p_coords->y + 1, win, 'P'); - win->mov_count++; - ft_printf("Mouvement : %d\n", win->mov_count); - } -} - -void ft_move_left(t_window *win) -{ - if (win->map[win->p_coords->y][win->p_coords->x - 1] == 'C') - { - ft_putimg(win->p_coords->x, win->p_coords->y, win, '0'); - win->map[win->p_coords->y][win->p_coords->x - 1] = '0'; - ft_putimg(win->p_coords->x - 1, win->p_coords->y, win, 'P'); - win->c_count--; - win->mov_count++; - ft_printf("Mouvement : %d\n", win->mov_count); - } - else if (win->p_coords->y == win->e_coords->y - && win->e_coords->x == win->p_coords->x - && win->map[win->p_coords->y][win->p_coords->x - 1] != '1') - { - ft_putimg(win->p_coords->x, win->p_coords->y, win, 'E'); - ft_putimg(win->p_coords->x - 1, win->p_coords->y, win, 'P'); - win->mov_count++; - ft_printf("Mouvement : %d\n", win->mov_count); - } - else if (win->map[win->p_coords->y][win->p_coords->x - 1] == 'E' - && win->c_count == 0) - { - ft_printf("Mouvement : %d\n", win->mov_count + 1); - ft_exit(win); - } - else if (win->map[win->p_coords->y][win->p_coords->x - 1] != '1') - { - ft_putimg(win->p_coords->x, win->p_coords->y, win, '0'); - ft_putimg(win->p_coords->x - 1, win->p_coords->y, win, 'P'); - win->mov_count++; - ft_printf("Mouvement : %d\n", win->mov_count); - } -} - -void ft_move_right(t_window *win) -{ - if (win->map[win->p_coords->y][win->p_coords->x + 1] == 'C') - { - ft_putimg(win->p_coords->x, win->p_coords->y, win, '0'); - win->map[win->p_coords->y][win->p_coords->x + 1] = '0'; - ft_putimg(win->p_coords->x + 1, win->p_coords->y, win, 'P'); - win->c_count--; - win->mov_count++; - ft_printf("Mouvement : %d\n", win->mov_count); - } - else if (win->p_coords->y == win->e_coords->y - && win->e_coords->x == win->p_coords->x - && win->map[win->p_coords->y][win->p_coords->x + 1] != '1') - { - ft_putimg(win->p_coords->x, win->p_coords->y, win, 'E'); - ft_putimg(win->p_coords->x + 1, win->p_coords->y, win, 'P'); - win->mov_count++; - ft_printf("Mouvement : %d\n", win->mov_count); - } - else if (win->map[win->p_coords->y][win->p_coords->x + 1] == 'E' - && win->c_count == 0) - { - ft_printf("Mouvement : %d\n", win->mov_count + 1); - ft_exit(win); - } - else if (win->map[win->p_coords->y][win->p_coords->x + 1] != '1') - { - ft_putimg(win->p_coords->x, win->p_coords->y, win, '0'); - ft_putimg(win->p_coords->x + 1, win->p_coords->y, win, 'P'); - win->mov_count++; - ft_printf("Mouvement : %d\n", win->mov_count); - } -} - -int ft_key_event(int key, void *param) -{ - t_window *win; - - win = (t_window *)param; - if (key == 41) - ft_exit(win); - if (key == 26 || key == 82) - ft_move_up(win); - else if (key == 22 || key == 81) - ft_move_down(win); - else if (key == 4 || key == 80) - ft_move_left(win); - else if (key == 7 || key == 79) - ft_move_right(win); - return (0); -} diff --git a/get_map.o b/get_map.o new file mode 100644 index 0000000000000000000000000000000000000000..06726f9fcc3d29a6b369cf8764c0a6ca5c138395 GIT binary patch literal 5136 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 literal 0 HcmV?d00001 diff --git a/get_next_line/get_next_line_utils.o b/get_next_line/get_next_line_utils.o new file mode 100644 index 0000000000000000000000000000000000000000..c8c717976de3a240b68b64229f17e1c059c68ab3 GIT binary patch literal 2056 zcmbtUKWGzC7=M?gakUATRm{B1;NADW-}nEQ*FH&3-V6u= z;UbW$q-$}MkhMeIyF{-NIRcS0a`~5Bw%T$v=^!jul5M#%<*ZCZN$lxy7ja~JOOVS+ zr}eYb=|G4xyB)i*g7Gxp-j$$+BbQ4}s8dHAbd74;YLeKqK^JNx)Y?U(VmVE;pzID9 zP1mScJF-xf?W*t@x8M;C*|r+~GVdUuMN7ayFmv6V`4Sdo$og;;t_^gq(QBP;Qg2mZ z6Q13KfSQ|q#m%P3!P!u>#wyiXpC~7M9oFt!D2h`wU_Iayj{Q}d-A->Xz7jor*_H!@ zAI0`AWhdeK#Y;lF^??r;+e|tip>0PV--)g6BliW1vD+l}{ETZj)YuocKs{Ddj&1VE z%P?&pnk9(jMAd;POqp`9v3=exPx)mFcM1MZY1zj>Vs@L%%#{qY6i?}@k%=#9g<>{u z#7D=(gg81fI$ok)_z{MoG>Y)}4iT1zgtG&Y=mxNH4lq0@9bZ0OOIQ{BdEHDH*4CgPt5|H%+@Yfz3b9nqDn+vg^2Y>6q zBOW}=M#Ok89tRr*-Q6t+kq`voxI`^N?laAC&QmxPj1aM)>8faI%O(+1`CLvjOp-R0 zqFGqTXALD|=xC-?UC*beB^r5C6K~y~87Z1->LC$zeJQ7?^YifRGAvbBGOV!nKuH(W zoJP_GO(Qv4hGaBTF`%QOXAMm$nOVIkrichVO?3|Rqa5o0mI_orp8c|mgo3r&She2a0{98jg?J6<=8fzq&&DDF>7ym1J zh0o9R7&!Ue8~4LEH~0Bt6*u3%CaJUhWuC}1pP$2b;nHvaHw=_nAnuPG^L)Plb-;p? kojj-&ID67$`Mfsfqxk2430S{Xr`e;}!XyyPL&)F%AAqoi*Z=?k literal 0 HcmV?d00001 diff --git a/libft/ft_atoi.o b/libft/ft_atoi.o new file mode 100644 index 0000000000000000000000000000000000000000..afb00108d3ce9e528dc1417d842d1ae2f8a5515a GIT binary patch literal 1272 zcmbtT&ubGw6rM?9lS$~iTHjlDx<9%%AI!e@zW2Rv-pnLhY~ewIQo@ar zJH*d8O31f_AD7&)M5cjRmhIoN{btf*V?=vwgxx(h#7yq6iL5S;h3~11HAxG*=R#mM z^OahMGu!Mycz-5TLAoe>>_TaW9qdz~eFEzJS@?9=*y>W7jr)6!ck$})&F0=E?$1mmZ&9GQc-)5pm?D3ixLT3~ z9@`^`;O7FkyBA=HqhUv=OER@hlSpb^*EItIqi$-_!$;+O(^S+dSurb$SzjYkt+t_8 zl;veO`6`hbT1}C(mz9-ZU|RA7&w4fN!~ZVt=lB)Ck_%29+*?>j#_yj4yf1pJr$C6#jy=CT;tNc` LFvWM~I(+}XJ2k>C literal 0 HcmV?d00001 diff --git a/libft/ft_bzero.o b/libft/ft_bzero.o new file mode 100644 index 0000000000000000000000000000000000000000..62d7f17b044ddf81f796f38891616a6bd4df5469 GIT binary patch literal 1128 zcmb_aJ4*vW5S~kdFH{au5EM)!+GH`>Xd@9(4-^aGz((Tb+(a>V7cYAu3ZftgK@0zr z7XA^z!a^Id5aP_a8<#V74(xt2-@JB*xmep;PZfEX4vmYh)p&3ow9@w$*yF zu3k*5b^c+sqF3t%@y345zduuyb@gEG-Gg0%U~b@f+!s(5MUQ)R9&4pD z9tObtKybFPZRhI3agTvjs|~N{930^ADzXSaES5vZPw= z-KExv+>2Vmr>#ru>A{;gLR|{dP;*wkffJ0Q0ZztcQ3}{NEJld0F|1Xn_Vrl>Y literal 0 HcmV?d00001 diff --git a/libft/ft_calloc.o b/libft/ft_calloc.o new file mode 100644 index 0000000000000000000000000000000000000000..6fada565c920000786ef685484ff217589b93f74 GIT binary patch literal 1368 zcmb_b&1(};5T8w&`qi4?2Z)O7O%L{w)Qh4>impDecqjx!l(5-u8|{9S&2EW>ppq&q zx%5BDpP-;3`WJZ2Mc9Ie^<)l0oY}nBuFLk;f%j(SH@}&kdGGCOZTUe#Q9z0Ucj3U3 zD8P@xfn86`I-EpigNHwP|Ch?cUd+QF;{9F(<((TyK{H148kqwv=H;Ol)xL$_`JW)> zx3#FeGf$zf+L-F?+2l-9PEAcL^zJO0AE==S7w}LU@7*V3(2KBOFP88KQ%A`EujIuk zbHoSOSa}!-_COm^A#7^Q`=8b4pPU_$f~TiP`ec*Q5p&0 zT(Scw+bf`SE6Sz0W5;)~zsrczBKbnw(&@_k!oB&~!bfBfkT1^=o`K(!yl4?phb{=` zQCD)vD~O#*@sl19dvpl@rKmB3x`gZRWGZhD!G|flnBuDfr%uz|mWseU)6$u5c70%m zYul#d!Q^@Dqmee2p*geiR1De81hW6kEXD~VotC={G@jsv`d;IVq9- zOXv<7dGpsrK{+SQPiHLiCC(5lE>B!kZ*c9)6Ok|bqI{CL48gI~1X-Z6@uH&`~Uif*_Ejy7%AI zq5h069XfXNAk=&AjE$Se9?Z`7ect=NS!VYto!Ja%8pzOK9ey)O0p1mu?BXPhVP|%` z`O&;=-(0p0y)}*nR2TaFlBZHVwy)pMcr2#3W<8bAA0|+}raLtJbHvm5gu8U-@CCAk zn!{_6qGdRxNZqVd%dQiNudo=4N8^cFx4KI07&M$hyVwP-5!U7>Mn)fT>;f`c6bJN3 zO@(g*8 z)v%nJ4a{-5$+mW~(JD8Jr@$<$Zs&}nBfNkTu!?CJ%sj~*R}9-!e5?qp$}8L`;C^n? z{tuDG8NmT_8sdL2eKmo5lyX|bJ>rR^$mKoBGToyZ^iz;Orb5(DB46}zdA{7|u`adR z`m833_V=!P{~T)mL@ cFM;&=-~SLB{O{iNh{n7aKq-A^IY*xV1FD2!>Hq)$ literal 0 HcmV?d00001 diff --git a/libft/ft_isalpha.o b/libft/ft_isalpha.o new file mode 100644 index 0000000000000000000000000000000000000000..0bd62e8db83892c881ed910026096413d475ad0b GIT binary patch literal 1032 zcmbu7&r1S96vy9cX@#XkL{Nvlb#lnM)S=MAl8_F8mmqY~^#|<_(N#={f}oJ1`b(n! zp+o&6K^?nw5b8ahv2F6!!0h|J&wJlDtFvdx^tMmaKrRh7;3tz5;Kc*uJsgK|?98M( zubtD+i_=dYzL~%Rs&@Exrmqs=o7uiP2;YTJJtw;~=snoi_=M|Z_wWfaM-AI;=y{Xd zCB13X>J`V!Ry|&l>Ly}+_nz7`z zNQh)SnQD!@J0!Hc|reWwNCT7#o#ouC5ibqGe~1Fk@XwfYEZryzgA!`rgn^zghtBhBO7Eq!tquH36lPy82CZ-?Bo^z2Gx@cvUN zYy`OJ!dow$o(odFiS-q!kE2fN5b?On&ddcU3OG_g+jSw^NwC=8g^apnr)}ivi0N^ zOR!`-nd-RRZ6U{4nE+^)$DsA1S}Yuzf5c_ikrzXRtKD6S-um_ygEk5#^vpSjYyiH- zvzmVJ{h_1CEGs;nOP5OFm~t_0_BgOg%d$+HLyeajPPI{QAZNF@$qo(+afcg~GhoeT z*D4v+DqcVxSletG%segC+JW?e~1FE;h(Y2k$h*<(^H<`?TA{8 zphuUHHQf`n#XYJaK85fnR1$MX)*Bw4_9u*CpK?|Dq!vo<)ut!@^QpH(?pbJT zS)3(eiBxBz?ud4b)hU2-aSTc?tVDx>#YY^wfxK8ECcV2W;akt%vfsppDLwa_L)Hgh z<9VVNJb!3$_=tn2bE&dZIA&ao>pc!NUTWBFt6_3rm6l=XA~9QBX9tIcn9a4y8L(!v zYm~HV6)&I;%+i}0(@#q^OEYxG09FBJbBk+b#B)R7KSTj%c<0PHlJBg$G{^H#6j6)i zclBjtP4`4{m=cK*MB$IScw5$+E}r%$jG|7tv-QbYIC6Jydg^b_yd84S(vy@(;Qpsl zDELTpU{Y?hE;->_z(s!Iw~+JZ$1Q|wTt7kgPXzhg=PzP|`|QH=E{!J=g-^UQ&7u9j E0fTu}hyVZp literal 0 HcmV?d00001 diff --git a/libft/ft_itoa.o b/libft/ft_itoa.o new file mode 100644 index 0000000000000000000000000000000000000000..9d54483526c693bc7568e8dd0cc9a60373a2d369 GIT binary patch literal 1824 zcmbtUOKTHR6h4#GHfq}xtsp3L5Wz*skhE1RXo<+^Ag!Ph5TvA&N!kXJOi3rDK7xfw z#UT^~H~JI&39jrzS|7M@tJ{bPxDf`75QyhY?` z0`@J=0?c&n>v2zw!%>V(XwDDK{v|tQw_0}VeVFU0HM{IWc=aU4Y43PmofOScn~kre z7^N=|1phVAGIgeUZb>ALA`TEaadoxP4G-Imvd@v+9Fv}aM zjk|1YwA*bj40naHsoC%4>8)8MJXE2|5FYZ*$0;{=RF??5+=TGjVbriB?hC7V)M_tM zJ8Fwgz7eB;xOSr}r%}V&d@^jcm)rP;1EA%ot*Y9Z-iktGBsO+&Y<%>>*f>BURVr8| z*~saIIe95lT+EsUIX0q1l~^QpspNS_sS#puSAg{B4oJ%b(y88_&+25oOBmw$E_+^pJW1{k%#*t#Qt0V|-)(=u2_ypeCsQwkS94c|Ao2$xh?V?! zg2XW)-kTk{v$zKQ!D!#_z@K5UG>+J1nDNAQ<7(ke5Nn`^?CfoM4hYn?089hB%TU;>=j{CHUV4zeh2bbeZ*EW)Avp z(4FunPv1U51sByAAw$3y*0*2aNaf>jNgoE%qvRCuodui|I8u2Ymx{oNp#d890PsBS zx{V5Q3;ysBBku7)Ci(t3J&B6=yW#vRc7A+cbbj>yc|JeC3FLy4Z4<=`u04EU`Ah)i Z6a4dA$oXfdxEV&SlYyYTL%96?{{gdl5KRC8 literal 0 HcmV?d00001 diff --git a/libft/ft_lstadd_back.o b/libft/ft_lstadd_back.o new file mode 100644 index 0000000000000000000000000000000000000000..83158d240fd51bf0996eab8dc59b20490da2fb15 GIT binary patch literal 1192 zcmbtT&r2Io5S~p^O^dBT3Ki;MZ|%j0sh8M88i|!w z6k&bc1*=!Eo-fSj&+#F23N1o|KATSp-!of}=Q4YkLBee8qnv}A$*gD=jAn4c8uF5% zH&|alrkAI&!$J<3*1yRVHtTePc}fmM$Mqbc+@69%Rrf;WIiUj4YWuz$pb@l{E8g$a zRzu~qK68$9a8PfOD?G33*U`lW9`Ro8$NFK%@!eFeXn_b-M>$R8FFx`A!^bVMGq(A~ z!`4s5(la=RanguQl-X&RBHHPmQ!Vv5jUFGg%z=l<)OS4^T7QNbrPA+g;s-k~Oc8C~ z_Ks~sGgGfj$FOz1mUhuV?bw_Niv8w<60;_Kf9+S%nDu`8j}Y`b>HXAWU9a`GsAab& kZKP9NclgQm`o2_8(Eii|h|oyiJ&AE*j}ytIIZ2;?3!GPbMF0Q* literal 0 HcmV?d00001 diff --git a/libft/ft_lstadd_front.o b/libft/ft_lstadd_front.o new file mode 100644 index 0000000000000000000000000000000000000000..c480e340682c46478292e63e06d229084dc550f3 GIT binary patch literal 1040 zcmbtT%}N6?5T0#ot>8})K~WET6NH9VFM5$mQFCZL2t7)>t!owcN7}TgAPS_LeN{i^;T!rM7Oaw2a=ijzWFlQBzv`0+>RLrC^KLKelvvvyhgx$2|3*&oKnA@&CzMPxdHhrJLpWhE&FR7}`s0uDvRX$kA#pmNysJprulyRJ=v z=L?(d?3Ob~*H3^sPRFfaAs#>jSkrbaW*?!-a&3JTRtMG+O<~p0pS$G$Z53Q0K4g`u zynkQgBF`dZD5sIs>hdyI=cVYh3Z$P!Px`Ee-^+YS!&QIfP2^P^Eq#h6kyx)SeCtmK z?hvtOsacC?Db%0V24V@VhEgsY%}I`Q^rI-f!s)x?#XcSLHI5%s=dS>z)A!%N0)6kK Qd6&Yf^rWMER_mz#U;Tt)_W%F@ literal 0 HcmV?d00001 diff --git a/libft/ft_lstclear.o b/libft/ft_lstclear.o new file mode 100644 index 0000000000000000000000000000000000000000..3b791fbaadd106590fdea845d5c6c4cf9efdfabd GIT binary patch literal 1240 zcmb_aPm9w~5TCSlt-9JG3W6f>E0jP$&o@C7Wi~W%EbVm!&Hdh3aC= zMG(KkevE>G2fu)R0NGveP(9@!#F_NH-ACxrftTORZ+Z&z!)J%;STwL)!WEXAUBoh8;jODSAtX*?~OW3w5T)DJ%9dCtaP^rxSp zyBY^P)*a6d*7Yqn8f=7tZeBN9hPh;}#6|W7b|*VG1JGVR0&UpTE-oIgf53-dLY@v; zN}t$7Dk#Gfg7b)H6~4F&xm$ReLZiY95!4Xr{KaRJ z>4K*l)LUv`M6PEW+#PZ-oY42(fWsQ^c?0fvt{s69gxodmJ?JhCxb19$;dxtr&+hke zZtFtXcfBxhMJxANZ!NNYSM6drU<`P~?N!8WpYZ?K2DYirY4t-a=XNPq-q{7r6Gy08 zTLg06GFP5C)zX~Hwks~WAQC4KY3_10B)^CpNn3bS`zC^`Dv7>mdx%#QPL=*q1I3s1 zl6r^^a?jPBpj;*d%K|0H|CezGoq6w{h>PSq>HRcgSuc4LxoRg55nkgtwC|!`{x8*& Z$#@n4(7u=dopLQ9910^W8MEV`t56~}Bu+T%i7p+%CbPif_E^9Gz&1F zn)t=BTZBibtn%I;-u-9uUT4UAtpV?LhLAm8Knc17$euhv_wRFx`=tTze;D$9Vf35# zJHsp5hj)M3J3pbi+X`eW=Xy@Cmpc$qydMU+{A;$#@+C^dV6Z<$2}mo zrnEC?)3|O%cgQK8PB2eN1B-;`Fe%y+m>c@O2+#>aDOmYqbtRUL+XUu$2Y$_|*YTb9 zpdo8sEbGDx1EI>rms%rod;yI};KvX!7g#JK>FlCC^vV7YxVQ=3FNq5^OmQNSoUvKV z6GzrWQ3d)vbuRfEP%XW25}(yUODgdYExorM3C(AaBk3wG6K5)TWs>NtZSU=(!I{!a zGcbHzuc;C`$bB_ufpR~T;H|RS=>BzFL}%Ll+v*^FPr5(7v98zrOXSj(QHbU{u6xjb ei=g|ZdV-GcB7i13$=)ekeiP9fgq=$kcx%E&onD)|KBqFJEP!B>bg2YXn*wFn^Hj@wqv5-~> zx%eOW$0*{_n^!L$0v^&^Zrk^^Gwry|u@7eFec$`OH?y;|r`63*Da!&K7OcWwq*;J_ zgRI1K1?Ev%L*+$BZ6iQ}ty^N7V@*ZB6;8 z9Ni+oq%y~c)#>;yiXuL^viB~b*68}OTWGqDe^}^=u+t9wLg_tQVWncJ+>NUru-R*B zj$s||fYrCH#TU7`bKLV1ax^IF^jLdkpQYAcW>dSUAYyiKq%-g{npI6h>L1!hX2Ia& zwU8?)B{`nBm=t{ptQmNo@Flcl-R;P>6d^D_kb-S&*NPqKG`|3I-JVx>4i50;4}pck zb(r{EZ-tI03?FL(>&Q?#4V;fWn*T%8ut$1EpT4>eB2hE0Nn9aJBb(4w6xQdY%XE%r zCGs>=^Kteq0e6v+Lzq_9tx6sk3CAbuNn}f@2vai^?w0|a%%hl literal 0 HcmV?d00001 diff --git a/libft/ft_lstlast.o b/libft/ft_lstlast.o new file mode 100644 index 0000000000000000000000000000000000000000..af009cfdb4bff19f46e4eb08d4c665e354875967 GIT binary patch literal 1048 zcmb_bJxc>Y5S>e+Mlc%1LWo5=3&~=%(MBS2dWBdh0UL>zcz)pBCFC{|1yS$=LK?w; zVPQsa5xmt8O+wFXlu(mtSfG>H_t}nEV3J&bL5ornSt-Q1Tx4I*mLH zif#I=jHd5mtEs`*CRPy9KMbT3@ZtAU;}H8p4@EuoNLF@!s6p((|YZvY4TnV&^2zTsC9u5f$@ fpFb1qi|&6H3!-}`Pw;0V?oon4KDuY_!|Q(nWU6I= literal 0 HcmV?d00001 diff --git a/libft/ft_lstmap.o b/libft/ft_lstmap.o new file mode 100644 index 0000000000000000000000000000000000000000..f038204b9e80bc85603c66d0202fd407be17d1b7 GIT binary patch literal 1408 zcmbu8&5P4e5WruWQrC}li-?E{_N1WfBUKjMi&P}~4yy;T;6W*AHtjAZ>25xDSD`4@ z6+&6?D)n zRVdR~V1YV4{t`tI)EWZvja0k{_Z z3%vqd*xA%uMX(^Zo3Jh3ZdyX&`|qVBF+~3Yx4|fy{{=57=EV8&jKzMzp97QEq8_OC huu>5XiMz%9DEYDWf#rM0ybYfC4IL14u~z>3e*r@vxjO&= literal 0 HcmV?d00001 diff --git a/libft/ft_lstnew.o b/libft/ft_lstnew.o new file mode 100644 index 0000000000000000000000000000000000000000..e2584597e1a6746bedadef13d6b1e6e8a1f4add1 GIT binary patch literal 1176 zcmbtT&r2Io5S~p!jBV8*r35T=Z$0^H^r8nPt)%WD_FzdbMZ&tSQQRMrebKZK6haFj zm)`piw0}iGh4dd0Qs^PQa+*2@M(_1etAUnuV)nWc869E^=>XU z{Zfv!ges5Fj;zkDxqk!IgJ!^+rsLT`-8^?2(McGX#Z|V#ip#}~W~{DJE#h%v!1%Za zMk{YDJ(|gV!G}CWo)+Of{k)vde@<=BWmE4kgNW&Pi*yG5jHjt-P?{kUsAr1`AD@L> z1sAnN$D$xIXleZ&Colz1C#a`n;E30}hzITku!if|jJquk%n5zp4bTZf?y{XX)#ZrW z&M7d@JNIk$;URXdE-KvP+EK&yUGQzs3!TZ1%mEhh2DcB;e(=fuFKW0!ddeo>#c+k1 zrq3MpjJT|pR}!)8uaxy3KSY80s-qY5S>fZDEJY?Le%0qD;J}UHX$OXSBQv^QsNmmF?e^8+(uLg3W^ZY_!ImY zmV$+UL9n*46jG!+XO0~`&)7Mz_h#PA+u7Z@OKWQ*Wf;I_Kpws$W&s{zWFevpFoKmu zyZvUjTfJwiORRm}>cPa#47nYvXLkz2cH8Q8tnT%r(YCtpuVENswD$zXgQl;VX4!T8 zs(C6KL9Onaxh1hEatpcDW|Uoqsi+r#aj^@=S=N{x%?#h+S>}+ZMYc+xwejq2YJF@- zVFAT|n2r1Ze1!edX-NH|1u~N{KI(;>sVhnGLnV|vQy|K9&yzkneqBkixm{cclv6$i z;ku_@$vHg4`&OZ%N^YQn+Jywskgg--QK`~!JQ>S~GKfGmlyiW1?h*cj6>*PrpM7@p zoMj>x8-J9cnAT9DuApOnCr)SC(U?Ib{bGVY*YSLU=l+beAN%pr`*;xZleKxwA$Rg) zcF5gp&5A~b>p7weffkxOrdb%ZNiU&imx1nZLL-@}6B*-7)F Oh5H&wM|0+Vxc?`;PF}+R literal 0 HcmV?d00001 diff --git a/libft/ft_memchr.o b/libft/ft_memchr.o new file mode 100644 index 0000000000000000000000000000000000000000..be0211d9a66e2c9548a86785cb80bf568f7d84a5 GIT binary patch literal 1072 zcmb_ayGz4B7{9c&R#02T!Pn4D5In3diVrFh&7clSCy^Rs>Z?g5y-F2CK@>w5{}Z>) zf`j@GNXIS?1&6wIi{BS>_8L3-!R7Av`YyTLmAtkRkR-xOB8#MnI7>)fAd@bgBwgT4 zDfWkAU)Jryr(&n7%8OhFP#mBF|LqgwSmE%t)*I`|#}t zgj#x5rTSqyW2uJTj8ToyJhPa(2lKgs^S{&X0V5A$>4 zGM=MYod7UDDUz^$^zfLE=lk<{7<9fCt?wcb)_(88PyV#!-vQ^|dYET~EH3?53iXiB zgYeYbXwcIz*8zj)IX@0uaLvJEx`y#v{QNn=bN=_=27~|IF%$EQy9l5V;(z9S`2OFv C338JF literal 0 HcmV?d00001 diff --git a/libft/ft_memcmp.o b/libft/ft_memcmp.o new file mode 100644 index 0000000000000000000000000000000000000000..f6e27034a9f9da89609bfbbfea95d5a07b5dbd45 GIT binary patch literal 1136 zcmb_bL2DC16n>M$wnB7MsZi8IZlcg3(Th1KDP`>(S`lSWB5}Lj)?#*3l1ZtBU?D_Y za}oc8;K74lJO?~9S5M6`7ooYe_rUsII%BrW9(^$T-uu4qz1e*;`_5c@oMH^LF?a;i zOrrpW)HE(n!ZKV&r6qztB50k8pm`z!YbcJ)0nwt}8iLWuVt8bZ2^qEML6PX1r=q() zFn(s|Fg_7o3*&`cu~+*2!8|rP*Uv=*6b(gt#6+oYeC{Fj(LDajjLs$MG_OVN9ut8% z7<~!DaN0V9t=CoS?EIa6V2-=y_~kFKHk!U{=AEkTZ|C>idSj>N=Zp7vfftvGrRIda z4-43xj2%1!wx44+v$J!ba4@$Jqeb?E9?MsA?^7#RW>Vi!K|r#tBAkJoX$EeL>LiL3xi1C@qZ^v-GzxFqf*Kt(3m;@$hAD&~o7tRhbUH>536yx}nB0dw- zQ2Jf%zoqu)f=Yy2)^>9w$i?hw~M)AQGWu8V)x3lzlPoob#c;VVkeD5Z1Oef0i+ E0S|495C8xG literal 0 HcmV?d00001 diff --git a/libft/ft_memcpy.o b/libft/ft_memcpy.o new file mode 100644 index 0000000000000000000000000000000000000000..6fec3945f78a669c581ff0d804f20b09eb70ef99 GIT binary patch literal 1096 zcmb_bOD_Xa6h6~>RJ=+o1dHy7#Er5cLW&G`fd%PGq{bMJ=uD-Z3KEZ`AeG5OxxLP|>M=R~L{}agpNi8TGxpH0-kq ze^_t}C~}{Jr%8>7Alw7ZZ9`v-T4wM!s;Evl7V(HqMe` z$?2k3oupwHeSQMvd>xe2xH8z$8hgYS9zvZKMTvgqyW+Qz#m<(iE;OXJ<^q)Q``A*~Y02OwXC7VIi<`w!xOy(qjc%(~p2< zvnOUo+ugo!A?M3HfJKRezRw^D;IMbr??3+Y?NFZ6FGD{cdPanC On+OI``p$A6IsXUs>3O99 literal 0 HcmV?d00001 diff --git a/libft/ft_memmove.o b/libft/ft_memmove.o new file mode 100644 index 0000000000000000000000000000000000000000..02381d8dd41547ff94787b56344d172410cbf6ea GIT binary patch literal 1144 zcmb_bziZn-6n?Vv!+|z7#X}*5XzP?CZkL2Wa4BkUNHP=zU4o-Hm!#B^iY=Qo5LytJ zs#*HKbjjF|Axk0o6SNfM&DpfM@7Z^;a%jwh^Ly`m-}jw$I(@UY-W3c3R2Z-c(@voP zYlUfDAD4AlK&H*3e>^%%dDI>9$WHjR6^}6Zxs~z_Ygq1YB6~mzgc2TI^6+xRqwR!; zDU|z5lfjUmZzn&irLhdlAJx*}FWL-tCi96`xPhJWih20Q;E@&MHc2_m7{ybgn2c`7 z2$lEJboUDE{jL{u&1TE-j?A8DcRu-^S$oA+S#71Z-W^Y015`vO*UB4%QwMENe;<$0xc3hE} zuqLoh&<>n^%wJu~j}SI`6mxuT<>eFFOuv)V)0)$Gb=j+PQsas$WS+-N`c(~2W&cvc z)&44zpQ^Le&vD2aR2U{Fi%S^22_{{x!blobE~ literal 0 HcmV?d00001 diff --git a/libft/ft_memset.o b/libft/ft_memset.o new file mode 100644 index 0000000000000000000000000000000000000000..936618d9a85e3fa0d2231efe074b37dbf56e401c GIT binary patch literal 1040 zcmb`F&o2W(6vyATXeE9$;vhKGNg^>(E<{L0R`*aMq$iPDYy61rR@$kQL`WoJQwRTx zi=%LGi&aYZ-?wwdM15dng%~9(pv&OR4&Vn`lLp_RvgN&_z1Fa k+RI})!_f$J{|YEy@ce7o5Ij41-lcIvX7bTHt98`=-;uOuivR!s literal 0 HcmV?d00001 diff --git a/libft/ft_putchar_fd.o b/libft/ft_putchar_fd.o new file mode 100644 index 0000000000000000000000000000000000000000..786101f83fd99b1b1fee865a6bbdab008793650b GIT binary patch literal 1128 zcmbtSJ4*vW5S~kdFH{au5EMxx+PD~Pw2>20uMi6%Vk6;lxfn5biI=??1yK+rK}3I# ztrq?f!NSHag>cSXc6B{t;{*o%71r>sll>A{;gk}3>g$T>@2eAbjp^Nqt0jmCweA0^FO?u6tAk)zOg zJSs}Um{Cd8McFSorf_QLooXn$%$L*(D#%sUT_E4R2v`zQ3i*C%FQd}!|9hg5{3rdN uW-Rk1KaE^+E3BZn#Pfx!$d~V>e1fz)7J!FJ{O#m>76A<*DUbFf-v1MRCuM&C literal 0 HcmV?d00001 diff --git a/libft/ft_putendl_fd.o b/libft/ft_putendl_fd.o new file mode 100644 index 0000000000000000000000000000000000000000..fedf7874a789548c592476c263b5ca75870a00a3 GIT binary patch literal 1208 zcmb_byGjE=6rD{pK8Ui2qM$_z#mXVkMjMHWx`ikRDMMU08x7e58XLh+ z5P!l#Kfs?5ENlb|3nAXS-Z8@xI}gmBx#ylcduM0%Vts2PrfEz=6RZD<}yn`m|ei)QG5Wj(_N+=>)K?pum2hvn*t37g5zUlSig#`4JFE8!1xbT zK<{Di?QZEfQ#MD29bmnSIS<;1;tzWOZS@cTIIYnG+zaEY{ex*mk1KkLbnHm&syEJf z&2~&K>|?>W<-4x!!Nl{0%{RAmb9G@_6~-Os$Ss(~B7E5cs<00WrJCv5tRxE6K-5L8 zP%2Vj9hypHdqt;{qljCKLya)^flplIf4~{6f%}f)o-SW2l8D~P1msaeR*|JZo{P*y z&k}3#OrqGM7o{mN0F37#@74tANno@}AIZ$4$*dHJY1yy_r7;*%BTGm(YM{)c-bKiP zR#oo^+Ha`_^D1QjQp2CD+y3z%L&$yN{_z{jda2KV7T;?7K$kFnaYyyCFRVvI`)`0I SJ)waf&&1cnScmr{`u=aI_;|(u literal 0 HcmV?d00001 diff --git a/libft/ft_putnbr_fd.o b/libft/ft_putnbr_fd.o new file mode 100644 index 0000000000000000000000000000000000000000..82110de3db6855f6f9fc38c61ecfd227c93547c5 GIT binary patch literal 1464 zcmbtT&ubG=5PqBVhtz6=SSYBNgW{oN$<~WSC=prRLlF@IUL6LOWt9{AD9{Y%VxiA zb`NGC=|o`|bmtbr%a{kfj@b?Ovn}()+VxMyvV)ruz58|!Ykd86)c)M@dr`%qXfzRi z$hN+;%wy0WkM&mgDfQ@MMu>dTccq^$Rc&`8z2kU|&AOX5R`jfHWQbTXI=_chkk1LvZ&uMWeig9f m`k)T(1&on#L);hY(c;^x0>+$(K%e_W+@l;*?34TF^?w5=uead< literal 0 HcmV?d00001 diff --git a/libft/ft_putstr_fd.o b/libft/ft_putstr_fd.o new file mode 100644 index 0000000000000000000000000000000000000000..b731fc013eacf94860cac4811f7dbd98396817d9 GIT binary patch literal 1208 zcmbtT&ubGw6n>ke^#@ggR1hk-c=6P+(MwBFB4u?BrH4X}vTTz{E$(i@W;U%#R452b zF8vdVC;tTTsQw{6w2*@rp@$rV_}=zSJ1*(T2eaS2?|pCP&CJ^m-um;Bu?>F4Vj(D{a>!k2IDL}9eSskcPxkASZ3Zx4hQ2AiH8H^(vi%*=dRrU z>Aw5{jjc4+soM;Lc-!r(q_@+F-P$9uBx;Mbl{Ak&&i4YCXLR0fg0ok37Ur&8J-|Zm zB2R;Cl|IjIRzH>2Zp`*kK>j7>BVU2vlWE~HSchf7CgLrN&-X&^HjXN5Yhl4XI8WL8H;zBr;6;VW-1^O6$V19Jq@DSi6RwiXluWxlTgJV;*M70#YSVXr-SBe z5MkJl{GipsYu<+4WJfDrLA~Ihot%EJZHxc3gT8s;nr!4Y~ zo9}%gR_w`Hj1xy_Tb&*AJ|m&LD)r<}<799NT#T-y7QGIZ zHefd99f;yW++)>T><6;3+9&evMKDpVraQ=CHj{eJ0U!=@?de>3h#X5LndhkJ|3pa3h;w{l13UE@G98%LmQ zFD9MOCX-3n0?Ix*NF<3xkD)P>9y{kCutjZlvYo?!LiW8xACx#Wm@oB!d#ds4^4h+< zlx6eJwn5SK+Vr$XU2f_@3Kx5nJNeU0cjfms9m%an{5V{hNE#lIvB%LK9R)pJ03*o7 zN^zZ^p>#N{?QhCUFB5U!DNNX-<50G-%4XkMn&ud*)@q+!mqo`c-q^XzM$z;boasU* zDTuAeOD&8g;-~$dTqsR7nl4=Fc?{d59vV4s;{om$)?+ky2M!P%*CPoc3k-v@!O@O7 zKJGi(s?`AJ{Ag+n!w*e29q#vm`S$1#;^2+2N&1WJ*W@F7g-&s?m%);?(DIX0&&s)m z1N9z;%y#_+7_uo1r{n*cjeoedPx4nA6}^!zmI{??>6==uzE!QHGtVf?O6GEArNOk% zl0_^GNc#9KB5kLnM;GRkpTkS=7-0Ay-Nv`*#S5uVV=tYbi{FyKgy~k9mXHsS3w=yO zHPgSx_1NiD|7M`S&Gma{^t*xn8?HCc=vz$BRS&Q)0ZEWQ@#}Dgu+|v-?O-oJtY+X% zco4T^h!Vnb0nfmLxXbNX4`=`s2RusK0HmTIoUylA_|t%2gg9^TP;3T(;TwmzAU1nA z=p0A@$4~3uaL-6ja8tzRLiqFlfqxOg!*RMH99K)kPlJqvYW$)J%5p*AVy^E;a52A~ z2rl~mE`r;g)9zr7eA3uddg$dZRRjP`6pr zv_h?hVzCOZKuObetwxkeRo9ePU(a8z>xJTnL@AYSme&g#8}MRW<9W2};9V$d1Y-mN zZdGd=>`*9`szsDodZkE|x?a-@SAl<2M*ct0w-6&fBTfY`7w9LS1;2bfgEN{T#?1pf z%cZSI@aS%$FYZ#5w)y4bo+IIo;8nq^&Itb@A}zp!G4LxErXP9Ur@|n}qJF_&3t?f? zdy%?@PWXv)#rMC#*GRxb`2P|hz98xs@D>QO`gdpak24njqW^aRi(i>kf$hK(&~<(x c;$ComNYVPg2P|4U+O>I6E*^l;Z&v<)0q?K~QUCw| literal 0 HcmV?d00001 diff --git a/libft/ft_strchr.o b/libft/ft_strchr.o new file mode 100644 index 0000000000000000000000000000000000000000..c5583ffe7e37edc766beeeeab56453afdf2dce1a GIT binary patch literal 1240 zcmbtT%}X0m5TDKZjjd5C6f871+k=lpFM5#_NxKITT8Ma&xUSC++}+6LMYJ?11Pe

SN5vj7{Z zo}Z80JdB~TXodGyy_L1XT05+^tVXT7S{US3{`{R1nc0TSyPUL#JQXgxF(f!F#mnKH_QQ zregZ&49I=_ho0{-fcZfjPn|A4pidy)#KC+9eFB{*eyTweL?B&TD0!klIAzb1zJgs< zs;I!(56JVRr#<9c>4WggN{TOQ#kq>IokI|=d+e3$ogIAmJ-wdXFYN}lCwof?2Lvvl z>}|BC9@+ngi%ZZwlepE*`6H1?_UsVmi6a|FUI+XgIG6l(R7-E21oadl+chwXmfoFP z>8<9+(UO#PnuaUw%rc>^UiRhRqpoHyF1?NiF+ZtY@75p1dxGRQx@J*ZHhg}LzoOIc z{=f7_d{4SRy)oA_zk-~(+9{(s$MJ%uuIF=6Jt291g&b=l0Z&?ZsbdPMPm=pT1O8`- AGXMYp literal 0 HcmV?d00001 diff --git a/libft/ft_strdup.o b/libft/ft_strdup.o new file mode 100644 index 0000000000000000000000000000000000000000..5c511ad03b2d3e2e0de9eee45ec3fc8120e1d140 GIT binary patch literal 1312 zcmb_b&ubGw6n>keb(O{ji6AJrh#(#^BzmzR5|OoYhzdfym9X7xYjJl|lTB%bU?D25 zx%5xai+_irSnx0K&_gc%DC{BLauC+{)|qBl)>|LUd~d$@y*D#&XP=vmyE#n*X&T&u z*-EkiZ*w!hp15^5g~}!mzw=>K<>6qmZ$=d1qrv1CIiYzlG7p9yG;UA%$DfdpJT%9A zI2gm?%OZ*Q%_(UQAJ9Y|ADI(w--~u{>ah6YvckM6>lhqU@O4=qnGu!_&FJuJ9LF;7 zrJz%VF>W(Oobuu4>dGf*uJ-+)Z`iKouNzxVx3|&pjoLLoz)9z)O(6na{ zLEA2A=NC@sd)SZ*$k8BsPt)zwrB}H-#rfPjR1lGED@YgMcbpZ?gVIzXIE#2j;gh|P zyNIJCG%7s$4}VUG3WzlRV2{Wu3O}dthT!Q$>ZuBIz`BlWvB235fY}|-bNm3-f>tl+ zw)>mHa~&U;-w7PHe7{-g1(y8;nCotNEvwzeZm)|f&g0fv*YX_jEZ6PWvpUQMh7|*A z6>-NSJQmx)D*22`m&7G^QnB>gpT{_HgsRoWLVh0^OMfHErT(Ywo7ku-0w)paNb)Jk z@3(*)Nu>_m#C{08B2a=Td-M-q#en3bhOn4LW@sD#xJ~sJfjWMqH=Mg}_u1P><4!0-V{&;cy$z`zMq8S2sb)T8;0f=6fV50B2$564~K zfMh+IYkx5Cw{Sz49~k&sS%J)#mLLL%89cgOe|RMOzG<-G04h_0hX$tlZ?PfSSx`aPXNuP8MqQ7<(kKCLJ*Hx*f- zUNVCoP*X`_5|FOU1<@3PaG(jySWM}FrjK+qIizF*mI3iWm<>&x1C$R7Cz!MVi~*(D zfiy_J0h;(mC|?~-9A-a^2AKzABP+du%t2zKtF?#dFF=VqpcqWQ1(IG66Fo^;0mWF* z)PT4JP>Up>av*)6ECbUI6W0NXG5h?_2T~0{3`hR*BzjR1S&`@*S`R|-Byqdl*0%dml1-?>YGGB3 zx%8$7{{a67L5hm$agR9$MA(3bc*{Xp-Q;;MgL?SoI zUrSIzG&wbAQ;nPe&pPe?puta#cKtE!wj>F}v#Iz)9`&s6W;t1q=Y-Pk6oWp(U^zP1LJu)))qj~nYv-8M1I&@Ia~Qn^%v zsF2pvS3y6qQU9+vkRbJIP1Akmn|wAU$po)FEwf-CL!B0l8{&S%TK0}G7VjV{k9d7? zf5*WAk$7QedB7ZK%u(UCP&>R)`~}m(F^fTd5r$xCzqffX$9E-RJG|X#ig!Hz>XalC z(Z9gBzr6i_;0eV(asPP6B3|(8z~trF1+@obDhE7X^o8*#*===z2_NRbKOuMA=Qf)7 IPO|m?0Ofw%+yDRo literal 0 HcmV?d00001 diff --git a/libft/ft_strlcat.o b/libft/ft_strlcat.o new file mode 100644 index 0000000000000000000000000000000000000000..fffbf9292cb42690752c93653127f7e8ec109700 GIT binary patch literal 1424 zcmb_b&ubGw6rN3DjncYNDkzHNCJ0>`y|fAv(bYLLQib5jhHbKK#mz>NO^HIVutc*B zs24&11OE!UplFZlEf*mdArTMpmV>aqw>z^P*7W9s+4sHg{hXPd=jzJsgd`Cz61h$e zEY1>=Ngm*Q0Q2NHL>8&@gWA7VsnZ@)r#YlfaX{_%n8=+o5C(7na1P;Db%Keb@1fC0 zgZA3vVE`P}17pYySM==Do;sk{R8M|+GDuQgngqsCC!^OujDiZi0#v~6Kc$>Ym%nw@ zJ=s1T#t&()(3d}^()NVNZ(VThs(T+KxpM^5uLwcA^J(ZdhIp?Vz&^EI30n1m_89g? zuYBL-gs0qv$@O4qLN$4EjI%% zb|>@r0g;~FCsHdTotr(HeghYA9ynYm7w}?koXEUL+?<<9o|PaZ;HP~a0GT4c{b{}= zN&G|OIh_*tpcimiSQ%Jxxy6VSXk35bJW%c(!mk~|XBm$ZiBqMBQr8VlvGkTjlya?F z)lG|RSfz$lH_BQBb(1J&&C-=ScZ&-RODjJnieYS5OIoD@r@hI_=v$?Yx>nVN3QCzM zP|VWSK|igc{tr@t8p2bFD!yl%vmz!0@wYYuG;*j#$uooB3-`tE26OQ~;?eIX6oDy3IxhHJgD7wq?mm($ve11;j z{-*7JhZW@e#QozL^L)-<1unVb*Ff#SisT*3=i9)16mEwWAqIf>?C5h@V2cH!iT_Ew F|6dgn(=`A9 literal 0 HcmV?d00001 diff --git a/libft/ft_strlcpy.o b/libft/ft_strlcpy.o new file mode 100644 index 0000000000000000000000000000000000000000..e25b437a106995bba9b9c0160e421c102c8b8836 GIT binary patch literal 1328 zcmb_b&x_Mg5T3Mgt+JZB?4qED+yrq$tCy{cR3!QiyB>t%NlG@&u40ldZMt-Yq7YU# z+lvTZ{0lt#7f4}6uX>Qpu@|8g5B1iA5NFc&+!*4`fyvB#^Ucirm1p|uotz|r5D9L= zQ6x}+cex|K8oO0EiOd=czA^tti3Pn03pyhf)Q0Sn9ukH5y&)*O3*`2Dqfv|n`gHsX zy>T4%*Fx6E3je!Q9Ph&cmTEaj_Y+)(>B~q zb=zvSA2(gKd_^m1<>hjv6KAhtFM!4P3m`qc4^p=%ou5Bmc!>vi0dZ22uk^Wfy7(e@ z`_x?SGcpLsmInyS@H5KF<{@zjoIrQAkig?vh^eSW)U;gYfQ**(7oHEv!9Q@7<1{%r zU4{*>-u7CyxwQjY%d!p4v$`H=X47#j*Ar>W1MqE$IqfAs^D=LmUun=7D?f7TtoOJRDmUVH?qJC?%E97 zO1=f^Q|0w56eL8fUqB3g3!8&pps;#mY> Uqmy1c<+_~MY5S>fZDEJY?Li~Vqg5Z*96AR@;Vy*}lNx^w2-)%A>>1G_Wty?MKPyLXYvtwl5qWN5Gq-$=3m4+^OVv$`*-R~wxA@YlkBQvV-y68xVOpYHe#_eMc%&NMs?QtmcLY>zf+XLoRxy`cc z`MEkbtpi|=bL1AxQVBo30<2~`CbRbn<(lc*-!^6e!v(lm#C+mX{+HOqRia&1+7j<= zg*4?i2o%CJ`a*rWz%omj?oo{x0`ezS66>bGGa+8?FY^TIvQ}H~RG`%1-lb3f;g7dN z?p}D(ikHgpKSg>^sE42~HX0Wi`Fe3kzvO3;i{|_)rY4TBkoPYM=?kBK8ymuBC(jE_ Q7`wszc}Milaviz<2k8u8Z2$lO literal 0 HcmV?d00001 diff --git a/libft/ft_strmapi.o b/libft/ft_strmapi.o new file mode 100644 index 0000000000000000000000000000000000000000..81a145aea8cfee35ae84cedb0fe7265396b3c831 GIT binary patch literal 1360 zcmbtT&x_Mg5T3MUt-5QwvI~NOy?NT$s)t=!v?9@W*vhg{JcyKRHv0pUbZOI4h3Z08 zHsrGYLq$~VwHKj(K!g@N)LRcioJrryh7eBj5S^&}-pAVh)(aPA2d zV3<0$%Yj*jOUSG;=O^p^Dl(@#Wln26P&|sVUUv$)_m}797;+z$$Q&p$icUU}<94TG z@|ZJVy@AxHV>zIVu)rvu^#Tc#Aj4IrOsjY&n^`=hNHtt#>~=loRxnWYa{YVD{_yk* z!XqM{u4G-s>wT6S#hdhf-xq=JnJndwn4`>4&sgtU@#R;j?zSwuRnQF8Iw-XDM)Rm{ z6-syHqFh=lZM1^uUFrl@f*nA5vjb8mFI``}kUhgmZXiyJ?!d;)p(ANXy=uSV(wy&?9H*T|rz^#?DBWIKYVBY1)1)KRpn zbOz*xZm6=YcWjWgx@qc`4f}SjX*Uer0@&KdkLHR8uFOrW!_Fi)6?e$XM1^cTvAKN&l}{Sb*k?%MKs%Z7dM~R~9f%80n~# zxg+jd#NywMa_Ro#lI7>qV<)+Yiy-lot`Uf`h>L0n9$_S_ywO{8H{3ZK{_{66BCwEz z#%2%~Kw( z_w=v%8H@)!v@o747~RsZ_vVS-xtAz1y6wL}%)yNb(?fZmw}%=p9qXUENPRF*zG!;q z67s`YRn+ckJTQC1Fp8qHp@%sfx;`0tn4i6K9GIif9Bq69YqRBxR?(^2{!Ve%Z8Trh z{GzeM7MZbNlv-of&3KLu^Cpv~u}XFlTMZXr&G><2wouNB^99$cNue8&m` z(v2gWgFjIkn}yi&WkCV`^%y>$g;-JYq`07B!rc?VoSNskzJP5}X^MvLcy(ZYO}OmQ zV{4%)Z09AgYIWDE*jrn;fE{2Bw`w!@d1bp{du~j}9AMZ&*qi8IdF20tS=b|+(q|wq zrJLZAca?HFQ;E8=%+;P0O?!;nG$y29jDr|ok%Mk0a0!n!M9t$-SiE#84NR$BnPBw` z?+&qLsb7va#W;DTN{HnWHI)98`kRs?9epfHukgEwW!It_y0>`FOzmF*N|*dw8(5J1 U?WC#8!e^AAQA+Pw^-=Tx0ec0OOaK4? literal 0 HcmV?d00001 diff --git a/libft/ft_strnstr.o b/libft/ft_strnstr.o new file mode 100644 index 0000000000000000000000000000000000000000..bfbe0b766b8ae60fe6488b15c7cd2b8c5c0d358c GIT binary patch literal 1344 zcmb_cL2nX46rN?V#iZ?GgNdddxOvb{x_Xf`sTebL4#k7X9vj@!Z8fq>14~mijU*IP z%Eg$N_!ImUWD^hE0B;<*7}*=%=tX>QcL%n}(U%PK-uJ%my?L{{d|*4<5lJG#B(g=O zkw9UWr+(UV)8slZHD3S8>!(9rFAsQK>+=@tVVYM@heWB}^4&hT%jmY)2(#{E=)oIo zpfpK!M3l1?OhU{z*)X6s7!+kAHvv=^MZA&esSe-F^v_vGsowM@Lxh!PG=_D)IFPzv zoo|v-y9Rl;gQOPg!iM!dGM6)5rMVRI`ZYB06LHl^{WxcBrMB%82T;``sZRBhVCL+8 zs07NVnN>g2<1*{Q0Da{%9HV`~+LL44@EKiRbtD+7>mH5AW4}MP@ef}MSVO4O^G3fd z3j4C2d-(@s!5xBpwELZCdu7WmCv$n-I!qoL#nS77l~f}<&{TCfPU3bsL?J=fMtww`-KXg+^zX7&AjnEjB@ zqLJ6B@hW>z)J-F#qd7uBZtHunzcq3H52itl(5Eq}_%#^Dm>|A`R~$BsaV>;F@Y6vo z?n$Ka9>cZ>0qQrxAoxzu=hOyedV${qOx_t6V5`8In7Drd2;J;hyFi#dJ8F^v_!0v!)Zud$ HbwvNa_wUq< literal 0 HcmV?d00001 diff --git a/libft/ft_strrchr.o b/libft/ft_strrchr.o new file mode 100644 index 0000000000000000000000000000000000000000..aa9ce75dd6a55f817cd92eebf58edd5af27cdb3b GIT binary patch literal 1280 zcmb_aL5tH+5S}z;?aHpHq9EuYClz5ss~1;ADiY0M>p>`eNdJy7F`rh^#a`c0jnfd0MdGlW0TXW}ONl`#RfqSru1PgFj zTKSF4ZNO<%wyfx<70zl_G@eI;nH7)czbI`*=CKvyip(S&&p>;3me|;wTWZEGrb8sA znKm3JpdH;6g1DJzlX4|)&a}yo?eG7TCfIN>y|a`iR`@xk9i|`BG^OU+1Xg96q9K)3 zDEMYB(9jqQEBsn}_61tI1D_3a$Fu!?edq@L7d>CE-!N)MeXG7b$g(%FcGo@uDsxM~m=@KKIX5k4g_V*GeBzK}0d0B3*{xX;D@M>9V;%M_VlrUqJ4h zq|atRPRv_IU&ZwYFNmO{PoN#-T~sgv*Ru`gju;qDuiJHf279dCXF=c`1l;vp9}K_8 zT;tK>)>fa{&Py;nZ`f_yoeo~!K5ye5wD$tL>q;FA2Mlb+>|M04yJY_ZI@p8Gm&ZCk z9Lpv0Z+i{%#F3TJ;DNYLk<0%Bs--*58n3@afdnzXpe%HX&Ohh%;+%ATx?@o<_}j>-J82Ki jA+8ft_(0+qR8J7`G6L|>$R-$>J775>S$Jbw`G

S*cue!su081jy+~5$VMPB6W+>xyAg#dw7B8f#ZX+k3Tn;i*GZxmgX}*AOk_V zbO7hbpCB!oC7C1m0+8YnO33OAerX0@2YyoMAFdhLnHl*vfTQHt^A`>VTQ)vU7PNTbkaGZLMn)S#24HX4+)iuD6}dwrz!$ZK*rl5=>n) zS=hFA4I-N@Ta)kHudTH0hWeDqy52GBjjb&>@+O<2?bNrehM@^{vPxtaWH&ZJKQ~bS zx46(j_{8FVpV{U=#3VA3-{?GGWT-`{GKZfhk0tL6*5X+vWsS{$!UD%YBjQ*1EaQuy zu}7KtT%BSIy~qL649EX9cY$*zre05jDY<&Yp0VY|Evl@3Ehdq{*UxbijI{lKWDWT~ wasT*^c|GTkfMqv=7N}S7#PW&N^WIpGlH8ULEV*{f>$1c?Iw0ucJxR|02j7y^761SM literal 0 HcmV?d00001 diff --git a/libft/ft_substr.o b/libft/ft_substr.o new file mode 100644 index 0000000000000000000000000000000000000000..d811f99805a5a7d06ecaa5bde146442323d10687 GIT binary patch literal 1600 zcmbu8O=uHA6oB70u|{d#qE!S1_a+s(GxJHpd=w%tbWNLp+&-5Z{~3q~kU{`C#_F`QFdWo0)xWP2cO&G?1df zZ8(}q3Q&n0*$HkY;4DU_Sn!?shchfFHG|?I3sQBqZ`CM*`K2c4YlCF&TP;Ej18cLg zRcC=!W#v-yCs7vcBCE2As{Zx@&84H9JY*wPjICp>I_U2V^p-7L#j13JI@uMTeF^>B zw0#!*7NxCL<1>MB35)D&Z1)F9&jD6F2=DL}1~+hEMzR*Ku*qb7-P+Op%N$uv+EXN1 z)3>8BzXkfo3VJuJoh?mYJ4LBC{*Buhj$v;HRBWA_HRe||Y@pWIY`5Fe_bnR31u-tL zTBuvh-p0kjtnKwBNs zt_+-xeZZ5rikt??ES=1qb3^a@?hf`x9%&fDd9TkB!YKS|_wq%c?--s%GIWdrTswhZ zM1EeW!}o^l;R*2xgO5K|1SkBq5Rt2f|COJUD7e=38_M7 zMU1p62{DoPDt+NMLb-HDVc8Ogy(%1MP!p0bmVQT)0UT6gj3$bF5*xj)Ffs-1>Jf#h zp?fk=g*{@YJM5YIHYlYk^2ceSh}^$KQ)u++-w@|7`=tKqjAg#$6UZXd?HsB%IJz<} c@`VD*CkeOp5?OffJW#+bKI!C9t?>GP0emw6djJ3c literal 0 HcmV?d00001 diff --git a/libft/ft_tolower.o b/libft/ft_tolower.o new file mode 100644 index 0000000000000000000000000000000000000000..9fde8fe5784afbb5152326a35d0b549157037a0b GIT binary patch literal 1016 zcmb_bJ4*vW5S~jkD)6fS?c%f`axo z{tQdOKj9y+u(V4d#F@*kuBUbm?0qxe%(t_*b9bIEu0{+4lo^nLuSl@~4;q;b=q!w2 zWvS44>9o4-RyQ|sJ&g(UwkB@I(Ywlb+mB`^|Na{5N9bPV-^))>sy1BFFl)Bu?wL*Q z*AG0`OfIqomP{nmjUc-eG=Zr;fN{17#!1|m866tF#k0&JPm64s9=Y-OWn^V6=3xQF ze^>$e0eI{EmX1Q?2OURdQsaYO$eFT|6yH=#@Dl;7<~a^`1?-B7@NDmx`@mdJaJIHy zO4Nl_I|OFiO{Ze*?BM(F0rR1fVsAJzW@fg@T7 literal 0 HcmV?d00001 diff --git a/libft/ft_toupper.o b/libft/ft_toupper.o new file mode 100644 index 0000000000000000000000000000000000000000..374dad94e7da4daa7644870bf6e21386a1cffcdb GIT binary patch literal 1016 zcmb_bJxc>Y5S>fn7ibd1LeSzm3(1nGMbdcPmSqkYAjA3PU zz5Cof?OmMqtkm^1CeS-c-6YYwD)%m4%x<~=Iy{Kby(;&&AECP2_C(vX9m{K&9Uim} ze9z1+uq?}Ea)ox7T@0JR)BwOZ*#hGzZOn|1jNal|W|5~wwnUHRWco6;GBNC90mXmV zI`Rp4d;cvRhu9A~jm)IRhrN(9WhE)TshHqL0+{W)F82iNiJI`+%_a|kdA{ImZKIlL z3ClhN<~SXE> z{xCx^EgG$EB^juDQaQRu-9|7VeO4#Y7c!oU@T$MU8O$qRFTK+P&5za=2m0o>*&%l? zHF=2&qTf^j6A6{nFfSX?uRun+A&C?#ejfdJ<=sa($MtFI{uQD6M$f;E1<|vU=1B^7 NB$AHitoBj;KL83%T6O>c literal 0 HcmV?d00001 diff --git a/libft/libft.a b/libft/libft.a new file mode 100644 index 0000000000000000000000000000000000000000..bdc99144f57b78e649223774de9e71b6347911c1 GIT binary patch literal 56580 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 literal 0 HcmV?d00001 diff --git a/map.ber b/map.ber index 63f1a56..e278b22 100644 --- a/map.ber +++ b/map.ber @@ -1,5 +1,14 @@ 1111111111111 -100100000C1E1 -100P010011101 -10C0110000001 +1CC1CCCCCC1C1 +1CCPC1CC111C1 +1CCC11CCCCCC1 +1CC1CCCCCC1E1 +1CCCC1CC111C1 +1CC1CCCCCC1C1 +1CCCC1CC111C1 +1CCC11CCCCCC1 +1CCC11CCCCCC1 +1CC1CCCCCC111 +1CCCC1CC111C1 +1CCC11CCCCCC1 1111111111111 \ No newline at end of file diff --git a/map.txt.ber b/map.txt.ber index 63f1a56..ce20e32 100644 --- a/map.txt.ber +++ b/map.txt.ber @@ -2,4 +2,7 @@ 100100000C1E1 100P010011101 10C0110000001 +100100000C1E1 +100P010011101 +10C0110000001 1111111111111 \ No newline at end of file diff --git a/map_error/ft_check_file.c b/map_error/ft_check_file.c new file mode 100644 index 0000000..369832d --- /dev/null +++ b/map_error/ft_check_file.c @@ -0,0 +1,47 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_check_file.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/01/26 14:29:02 by adjoly #+# #+# */ +/* Updated: 2024/01/26 16:10:23 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../so_long.h" + +char ft_check_file(char *file_name) +{ + int fd; + + fd = open(file_name, O_RDONLY); + if (fd < 1) + { + close(fd); + return (1); + } + close(fd); + return (0); +} + +char ft_valid_file_ext(char *file_name) +{ + unsigned short file_len; + + file_len = ft_strlen(file_name) - 1; + if (file_len <= 3) + return (1); + else if (file_name[file_len] == 'r' && file_name[file_len - 1] == 'e' \ + && file_name[file_len - 2] == 'b' && file_name[file_len - 3] == '.') + return (0); + return (1); +} + +char ft_is_empty(char **map) +{ + if (map[0][0] == '\0') + return (1); + return (0); +} diff --git a/map_error/ft_check_file.o b/map_error/ft_check_file.o new file mode 100644 index 0000000000000000000000000000000000000000..f4dea71b9e6b153c96ca54c1a7e1ab4965d889f0 GIT binary patch literal 3528 zcmb_eU1%It6h1Svcan6QolUB?wYFKL|I$g*`e4nPZqc>dZ7V87YPD?lXEwXKI}>&% zu@R$%H9`zxB8YEV1%0(3QV^_QRjLI+A4GkSf(Q+SQeUK?5YM@L?__4Or9ODz?z!hX zfA^ky=iGfIee6+HQ9zOcBd{V#6yS2t$~?uVDTt%xXlC}0Olv8TnVr6onVY^b^w)W~ zM*7+GQfqoiG2ZAyVQzYfgWsf=mBqC|0E~<26G_;rMmqVx+ruvti7f^ntBKB~$#it+I@ng8`N5sS3u-)__X$ zRHiW_(!nB47IE<8E9)+s#=xrt!#uACuSFW`fqR42P4FTpi;=c7-}I?VN}sYVwvK7B z`1(z;KBZp=P)!8;_0$F}_F!~4x?|&!bq6;BXbe;V9a#quxj!JXt)Rt5qR}XTZU7m; zuQ(_fKsP^6s`_dgL7gh$<2X^CB1yq@V@`Epye)l=ETS&dxYYL@G0*E$6ol92fY)Z> zWpl5A9|B(Hir4Od*Y2Omj?s^<=%nIv7U8T*)hQ~B7A91|M;X z6LrgWn}ba!S99z!2>3v;l5Y?+nXgq#JWS3y;}TMB=B)a-I|URwXXon{luJ;xQAt3} zvSGq*R>y3slxS9*hD+=EuUoi-c8jFE_#`N2;>xDAUET9|X!jsSgNV)z4#ncHsSo$+ zY6dOZx+LL9bV4io^Pc`$!jb4KJbjg`VHu$a4B@Y$D1XO#iP1g6p?GD5V2!Y@WCA_j z-Ovn$tzGju>(aA~&9ff;A*SQBN3SqVPwG#z?zfoAC(2O+i}e>H;cM9rsIHxh2uXjKH5%rd6b^d>jFt zCO*gjh=K-PVTj8bto~?UM@_tg^?AhleR=tvK#X=lcwB6UpEY6y9G&897xs@MC*pSp z`6(Qo?C&HaBx*I-ec+$vHti-5iE!*{9zIMUQW(#-VUAOmm2t?IXbldH&)Pq-GK9C= zTpRBfHWH`(5Z%>gJPz+9LcZIFQ=F8Lw+K#U^R6?_@4E$lK;SZONyvvo_}fAr4dL$z zS=K@3mFM7u>|YS_bO@L6=R){LLVibZ8DHLu4@35|LjEL#)4eD9qRn_cscsD+UkTwK z2>Hhl{;`k~f>VwCbxwtFS%=dhT&{ma;BsF=gs9#V=+S1$Dol*!@`Xafngp|9)$*n* z8hNO-n??HEg=Zk3WUk;Rq9e=LVq;;6z(OPQ0f1UrEN+CJS_kNIo%VnEZ89MUgV(^T=TL3 zpAmMFg>9d>h5s+Y@OJw@hW?$_e@?9bs)$4Dr~VUO{~?ioFLFO!5Ff>teh}w!{gOW* zu(1D>IMf}t@u$CbGM3-;T&GLX!It_9`j3m{dLg7g{ZaRm+`q)$$4RI9ofU=|VMz6( z9xMIj`BUHPwEhhus1{O&M3_haPWdm3L^2QMr?)4Z|0TqA$)6~k X|0l%4wIjQPc&rk_ff!w>aQ=S*OFy?+ literal 0 HcmV?d00001 diff --git a/map_error/ft_check_map_content.c b/map_error/ft_check_map_content.c new file mode 100644 index 0000000..61374e9 --- /dev/null +++ b/map_error/ft_check_map_content.c @@ -0,0 +1,80 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_check_map_content.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/01/26 01:31:27 by adjoly #+# #+# */ +/* Updated: 2024/01/26 16:10:32 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../so_long.h" + +char ft_check_reselement(t_elemcount *count) +{ + if (count->p_count != 1) + return (1); + else if (count->e_count != 1) + return (2); + else if (count->c_count < 1) + return (3); + return (0); +} + +char ft_check_element(char **map, t_coords *p_coords, t_elemcount *count) +{ + int y; + int x; + + y = -1; + count->c_count = 0; + count->e_count = 0; + count->p_count = 0; + while (map[++y]) + { + x = -1; + while (map[y][++x]) + { + if (map[y][x] == 'P') + { + count->p_count++; + p_coords->x = x; + p_coords->y = y; + } + else if (map[y][x] == 'E') + count->e_count++; + else if (map[y][x] == 'C') + count->c_count++; + } + } + return (ft_check_reselement(count)); +} + +void ft_check_map_content(char **map, t_coords *p_coords) +{ + char check_result; + t_elemcount *count; + + count = malloc(sizeof(t_elemcount *)); + check_result = ft_check_element(map, p_coords, count); + if (check_result == 1) + { + free(count); + free(p_coords); + ft_send_error("Invalid number of player\n", map); + } + if (check_result == 2) + { + free(count); + free(p_coords); + ft_send_error("Invalid number of exit\n", map); + } + if (check_result == 3) + { + free(count); + free(p_coords); + ft_send_error("Invalid number of collectible\n", map); + } +} diff --git a/map_error/ft_check_map_content.o b/map_error/ft_check_map_content.o new file mode 100644 index 0000000000000000000000000000000000000000..7679310478a2afbaa3cc66317045d9400f5754d7 GIT binary patch literal 5328 zcmbtYYiu0V6}~gGcXqrR@Ay%0Fpn&cBtNKU;}D1gZZJx=jGY9MAfq5kH|yE4ca!ms z*@tC=QX;JlSSz6f303`*@&~m-0)dcF6eJ#kHUT80{;A*>u9Q++ZH4=zm8-UL&$)B& z?)Z9F6!j>x_nhyX^PT&eJJ)$Gee}nwq7WepIY^q8Knc0f)zn9rIzqZ3a@=0}qrG%) z&90}{?AnlGE_8tRx9JUK^<#JlEC4)zw{1+)&IKkJnZcfUm+6`~U?p-%oEm_3@-- z?pQ#am^*@cwZ9~x=DNL9U9*?QSFWb7Z-79p75nOlfstHioep$F5nit!yI%W9Svq#z zc0RRh!`Fzp@HM!urk6R%y6u3o9=TROw#*`zA@cmN0fBFG4iN$EviW|*sI4D27x}nW z?7Cq?p1ouM0aRQ=1qea0BddkB6lrtuhQJ9Fc2~e*cdhPin{mio#1XOq)@@$ZHky;T zIsju@)!F2nTUmivn9~pK+9yevR&&Q;vSmI$!0BUw_EH*p53^i{S+0*SGw{Xqx3DPR z*47nsaVIN%E^t8PT98(+uG=4AB@_k)8S3}W(7s1TFs9MsY}PB}lEv!ugj-7blgSw` zJMWfaWUI%WD^yzHj_-M{Qz=Y%Zj311%FaYD)e>EOHz&H49-R=?0~gEtYPQKE8aw3m>`zD*{TlQ2cUi)e|1@pzn&s7Wx(xDlFwmynKLMN7ovScH&R zC&Z5SqA>&}c?Dk52%BPqy{_AsF8{owLVpG5fTBE(mSW;NuBjJi0xOCXjkqzecw9e^ zn`3ePkB77RPX|^$@F7P;y_jRxEf)jpG_!6+i%`^2zJQ1G?}t7F-1|3i??-N6^D$mI zfV}|gG_&q!y@iE<2~?unz-9CyKZtfO9wubFwkL+|VSu&0q^aLyH1&O5#CVkFsTQM) z8qp^KiDJ2^3qQsT572fpVne%~5#V^VI|E{--xVQ@fkw#qM73C{CLJ$ZoJ!8RrE1P992hJ+B_>)YYFtMBp1n90WIZ!>^?k z48YucsY225syR2b@RmiI3l&-ySbQKaS8_Rb(#qp&$=4eU4SU$pcvCe~p?a)FZ_vjm z{L}O)8ox;UL5-iQDkXp|$}% z(LgnT8`~6bb^V)mAp_qXvX6%-`ZuZ$8vqxfo%{|Q5%RZOqC-B!f z{+Prg_HS0=S>QIiL4YoJ{>kxkQv83oU6*iC_ZJe5_YRa_1x6f z4x$W6xERl%Ox*oAce%pug=M#x3vQmgOi;N{ob-uR^ee9Q@FU{`#Jj$t1H7 z+iLt@#*qd7uY&X7_;HTq@jnF^a_)gAEGPKKYCtL|Owpzwsa5{Z_=4^Zlk!-EME(mQ z9dRMA$s2+@M4pIy4-~*=q-{ce&GY9(AaBL^1^g~3t>!Pu_pi+ZasF^hMZVZSuLCCc z2~(0${Dr@xq>jn4uR%wCb|>o literal 0 HcmV?d00001 diff --git a/map_error/ft_check_map_error.c b/map_error/ft_check_map_error.c new file mode 100644 index 0000000..83dac94 --- /dev/null +++ b/map_error/ft_check_map_error.c @@ -0,0 +1,103 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_check_map_error.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/01/17 10:17:52 by adjoly #+# #+# */ +/* Updated: 2024/01/26 16:10:46 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../so_long.h" + +char ft_checkcol(char **map, char c, unsigned short col) +{ + unsigned short i; + + i = 0; + while (map[i] && i < USHRT_MAX) + { + if (map[i][col] != c) + return (1); + i++; + } + return (0); +} + +char ft_is_rectangular(char **map) +{ + size_t len_map; + + len_map = ft_strlen(*map); + while (*map) + { + if (ft_strlen(*map) != len_map) + return (1); + map++; + } + return (0); +} + +char ft_valid_char(char **map) +{ + size_t y; + size_t x; + + y = 0; + while (map[y]) + { + x = 0; + while (map[y][x]) + { + if (ft_check_charset(map[y][x], "01CEP") == 1) + return (1); + x++; + } + y++; + } + return (0); +} + +char ft_checkline(char *map_line, char c) +{ + unsigned short i; + + i = 0; + while (*map_line && i < USHRT_MAX) + { + if (*map_line != c) + return (1); + map_line++; + i++; + } + return (0); +} + +void ft_check_map_error(char **map) +{ + t_coords *p_coords; + + p_coords = malloc(sizeof(t_coords)); + if (!p_coords) + ft_send_error("Memory allocation failed\n", map); + if (ft_is_empty(map) == 1) + { + free(p_coords); + ft_send_error("Map is empty", map); + } + if (ft_valid_char(map) == 1) + { + free(p_coords); + ft_send_error("Invalid character in map\n", map); + } + if (ft_is_rectangular(map) == 1) + { + free(p_coords); + ft_send_error("Map is not rectengular\n", map); + } + ft_check_map_content(map, p_coords); + ft_check_map_state(map, p_coords); + free(p_coords); +} diff --git a/map_error/ft_check_map_error.o b/map_error/ft_check_map_error.o new file mode 100644 index 0000000000000000000000000000000000000000..050ae892424f269dbdf20c6db55c80b826ecd2ff GIT binary patch literal 6264 zcmc&&eQaA-6~E8V_xUAm?0mFMv$m_tw)T%Ic2o98KSG;oGj-ghOh6$MY>s0;Cte*p z^G8Xmg%#XZ%`!x*PKb{U1qp5aqhc^%psi$KD>MR$jUgoV2T~=pscD0n2{bZ53g_H+ z?(_4lBO(6bD1P^z-}$`f-gn=t)zfW}gSQ}^_jZM9m znR>hL+y}9#$)$4xw=+}G#mu$nO~zu=153f5MQ={M(K8pT_Wquoi!KCD2f-N8Ppqs! z=eaompN=kE(t>9=NEY_OBQ_lc!-1QzY41F=i@{m18Jr!sy=Ojnx(VdJj;?46>!6dF zj^4~v=QN0UbKz?%D=Q#j!P)4_qi+VcoCXCZ@{3g$Lzo@qfp}~xdPDHl-7I)| zCn9d?zUU1lmaRNzg5lD_8?IQf>ebLH@vcSfSi)UqtMA;Bn9S&Hn8-yt$>6NnGgtix=J1v?hl{m2y!CYSmNSQY>@=2wvyiJY zZCgo387;vSF47b(E?jhFhb5(aVE$Smq2+WP35J9{38KFkKJu|n}gD4EL@Qps|*kPl^& z*_@SbW&_FbP_`7Z#>UGhSbzR_GM7z@hmK=A~@`ZA!Xn`a@QpqKY z%}i_4?hABqJ*98;p6v0Ja-_8}z_l|33fruKtb#U5x3Rc?jxGL=Hoz}j{_561tYV^B4psh9?Lr1AgCRo9PG+G{0+<;CLJD{4_*5(ngDzr^Xn)D@`P=~^nC{q^96$S`*62m zroOcq+iL*p_pn<3Ua#$md)d+9O1@kPrEm^uH_-7FvFOwUeJ_+C;0i zagEPB55>oA4Sz`ZGO&Yz*0Y`mS`5!c(6D8_hy#h0>&R1%{EN1j;UcctUv}hAk{lOk zO@7vqKSy$0d^P!PA>RwHs+XMwfu?Ey3bbH@O9_6OGtVqiDHS8R>~JKPJ3iLkvrF{F z!im@mCX&ska+S2@S}x%*8~_?E8E{=Hr_)v@Jc_S1trB2hu_Zh$8>jfO=zA*P1BNw>mmB+Ytn6r0zXY(&W8s}?zdGnxg zn0uh#Zp`pDXnnoBbCCPuXv2+~m3a@uo8?Va-U3>lIOoO>cypBpfNPHPwm8@0ybGLc z2B0g>Lve1#dAB*pAvuom^;fv}F-Y%Auj>9mk%@T*e7?(@M|cw$bzJ7_Gkil_zw#80 z;wtOqCJe&|A{Y?_um{5Z7r6H|?)hm#_;`u8z-au&cR}$mH;h3Zfy8w%YB$~kKF&M8 z$_;ciD$uRQBcfevyf36(bzogm!=o}mis0J_WW`k;%I)Qm?w1}qhv zu*S3tWM1|GoFVTdy|$az33d9q)Pcb0%-KKdL^^{Pr~&D$_*i!)80emArKLHsMe)rqp_is1?BE5qkkcuB8zu1WPS!gka-!UZA z$61qpid09$;V|Oh(}YVu;$sK$XI=W3uk`c03lF&PmtDBegi2QGN>AU^k@51qf zApIY7;dsWAc-)1%G@1_>V zOQjOXj#Y5H;~>enS(|0DP7;5W@T1g9T;AqV3O+~t6AJzZ;wPz0iFbzf|;}A^t4|m;V2(;2#oyOTm|k{|B`)uH3gc0zfkVZ`&;E zQ1E{ezE#0xog)e^>$#6`Y;fL(X!83NeOa&1D7YMNQo(iN#}vFmd45^JuM$3`;I|1s zui&!2GYZ~C{EG@M=kX;4m-T;5!R36-EBG4XLzEYm%l*FeDfkTWLkceQIi=uo-e(kC z&dWu@F%5UzU|YM{(HihI`RVj;-;Tp+Yq&C!NDdDdt>Y|Qv~tOC*_tTVpBz(#JY0{< zESxHg;nkuh#p^=J0*URXR2EkW<(h)(B`cq{?=cjA_1lM?h3zn#&lH4txd=B4CoWz+ z!fwVBFsqDLX|UnpRp|Xop>S65K$FpNHTWe;4txd6wcP zBtR|dBFPp{kg_iX^!OXu%Y9qQRNWU=v44gJ^_F6wu8_@4qmNm1y{kl}SQzy?dI#{Ul( Chw97# literal 0 HcmV?d00001 diff --git a/map_error/ft_check_map_state.c b/map_error/ft_check_map_state.c new file mode 100644 index 0000000..6d26195 --- /dev/null +++ b/map_error/ft_check_map_state.c @@ -0,0 +1,79 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_check_map_state.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/01/26 14:36:23 by adjoly #+# #+# */ +/* Updated: 2024/01/26 16:10:55 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../so_long.h" + +void ft_flood(int x, int y, char **map) +{ + if (map[y][x] != '1') + { + map[y][x] = '1'; + ft_flood(x - 1, y, map); + ft_flood(x + 1, y, map); + ft_flood(x, y - 1, map); + ft_flood(x, y + 1, map); + } +} + +char ft_floodfill(char **map, t_coords *p_coords) +{ + size_t x; + size_t y; + + ft_flood(p_coords->x, p_coords->y, map); + y = 0; + while (map[y]) + { + x = 0; + while (map[y][x]) + { + if (map[y][x] == 'C' || map[y][x] == 'E') + return (1); + x++; + } + y++; + } + return (0); +} + +char ft_is_closed(char **map) +{ + unsigned short size_map; + unsigned short size_line; + unsigned short i; + unsigned short res; + + i = 0; + size_map = ft_mapsize(map); + size_line = ft_strlen(map[0]); + res = ft_checkcol(map, '1', 0); + res += ft_checkcol(map, '1', size_line - 1); + res += ft_checkline(map[0], '1'); + res += ft_checkline(map[size_map - 1], '1'); + if (res > 0) + return (1); + return (0); +} + +void ft_check_map_state(char **map, t_coords *p_coords) +{ + if (ft_is_closed(map) == 1) + { + free(p_coords); + ft_send_error("Map is not closed\n", map); + } + if (ft_floodfill(map, p_coords) == 1) + { + free(p_coords); + ft_send_error("Map is cannot be finished\n", map); + } +} diff --git a/map_error/ft_check_map_state.o b/map_error/ft_check_map_state.o new file mode 100644 index 0000000000000000000000000000000000000000..7933c994026f5ea62db7828c411cb2e2452ab1dc GIT binary patch literal 5720 zcmbuDeQaA-6~OQF^L=sb#4jJCq)WTH>)I8jKF8fAbzp6oGK1?bLm)B=Dmae)9D8-_ z$RBMwEoz0cq2Os+VTerv5ita!0>u8I0z_5~)MW4nus={ifFd!r1eFrThawRvoO9o~ z_REcfCUGUdd(ZElbMCoc@15jg?9mT-G>yrku?Ja8l9aK5zE*o!G>2I)XpY6_{~WL1 z?3th4oUd)f=f~FLjo5lTJ-QKZc$cBxG#9|4nOvbz^LO z6@4RFQVA&3Z)t8FB-dLcUjJFor+=EY%mZ^GK=Z&OOvX19pPyZi&(~HVfYrtc@tpQH zoyC`8H_%3e*BHGKuSb`eIrlk4OR<%0T{x}A=*p$24>UgRHliM9!XxI~{#`p`=F^?f zc|EqJtsQZ+R^s(*T6{jXvi60ott|)yf)L=wS{4APGIKGu1(O_dPmG~e@1lqf>l@5`uDJqUXDQ_TLT%>P1M`E^Rf7O#H)Q1X z4b6OdpIAPcavV?5t3X5%dT0RHSrVA;yE76;X*4w*%2z_gQZ>}adbPvBey#_5-a8oV)%py^JQlz{V|YLhejxC{z}EnTNp1e#X42 z&dGk%;`eRSGVWq}@WDVJz*vXL(9X99D#tHlo&A~~3+T$o`rtZ1?l+zjmbC71XNz;yW23v3qC$076xK8nKX__rOYAf$UqdO}F|k>reh zKT53`;}j|4k>(snC|W1>5sa3>w!%Xb758?efOTL%9cSU;JBKPzJcsdgGoR<6A8TAW z&mq=o-{ob#uamBB31=NXr}D6|iCVE*gEN;ZPKM6e%X7uOyvgkAgA)n_>B4m0iFn*mN>oDwQ)81_n+8^qmF{ z6RH&}`N^W4386_P|D>Iy3XPkcm0YPzypS*2EYHez1(xnzEe5*{ml=xo^cI$u2>1LvC`adu1 z-w$`n%bo!ZP1F7p?8XZB9e!GK2VHwT(reu2s?)$oG+#e zwT#W$Yz*u?xTX!Za(KWi)lA0DLR-f;JDZnWH#KhfeFu4u;fr!3%5@{hyN!2vmvM>* zLGF+8JwOuxKDiT^pwa8r*akG?Q=IumdBFc~{vIR22P}SPf*+1@Pl9{FU1uGJN}$Az z?{R+}{3p0S!Fv-ppwC!=KB)76BgkezQ_0) z?=-61SQgFOp$|rbb?8I}oqjaL#hQe-jvT7r{||0J$G~T?&j$;sgLD)oigmy777Pz& z34Z4`g&|VVjJG@n91Yx{_T`^|z3lH>?RxdrYiwJ$-gDfUUdkI({#4}FEOx}%8?4tjjUHBi#4^*Ovy9=!}{Lue`pmZmp{WkGSw1(oY0(%aA z?c%g{;iJ3oj{?VnpE&%eZbD9m1>?b@@|uHpa7-z&sQRxtcn23>LDCOGEyw*9%@h6L z{3QRei{mFq^55;kH(VS)Pg4IN?H~Gg^O}p}sgU}gckvDve}Om-Bi=tyWBIB}-vn9u zx#HrOs7U^*i@W{5uK0({NR&5R`fmT?8w(mZC!CusGATmtz8&(<9?6f8!5*rSOP`2t zcX9L+Bl!-haUCc$LGIawKR{fLnTNg?LiY$NPrmtW)8~Ld3H`@&&4; zpEAkv+)6I}d`Z#&KFKdDT*mo|!eyL4Aui*Q_xKlz{v65p{=uTg^R|PV{7sVorSMIX zbsP|i^kb0Rt8gcEW^6xktZ*O4X*2Ip^yT~Neuc|*8&SAiw~r|NA_fQLafN@=!E9RL zuMt15@E;PtsBpP24TZ~n`HI5-Kz?3UxZI~J3jZtVhp5Koq9qe#Sm6sKk1JfBhf4~V z>;FaKIK10`psPFB)9HslnyidHQJYMrCML@EIcAmZLdvSzGgW4#OH-H^ON~lZq`wur zm~j$pQg-a~#cT=lF3>92#bySUE)}pX(rJ-JTkr>>ZGHH$v15>tr_VAAv$_@xgxSC=(d~xI(_J7$PdmR*I1qZAz&R^o6L!;gL<#55EjEkp}d*P9i z_VWBJ0#jo`lW|O5pjb*^sxH2-+l{|WO(geZJGPlhj2z*ymw)baldu~CEP literal 0 HcmV?d00001 diff --git a/map_error/ft_check_map_utils.c b/map_error/ft_check_map_utils.c new file mode 100644 index 0000000..4dcbf43 --- /dev/null +++ b/map_error/ft_check_map_utils.c @@ -0,0 +1,36 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_check_map_utils.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/01/26 15:28:38 by adjoly #+# #+# */ +/* Updated: 2024/01/26 16:12:43 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../so_long.h" + +void ft_send_error(char *msg, char **map) +{ + ft_putstr_fd("Error\n", 1); + ft_putstr_fd(msg, 1); + if (map) + ft_freemap(map); + exit(EXIT_SUCCESS); +} + +char ft_check_charset(char c, char *charset) +{ + unsigned short i; + + i = 0; + while (charset[i] && i < USHRT_MAX) + { + if (c == charset[i]) + return (0); + i++; + } + return (1); +} diff --git a/map_error/ft_check_map_utils.o b/map_error/ft_check_map_utils.o new file mode 100644 index 0000000000000000000000000000000000000000..9659ddd57977aecc7c79c9bd61357886d7de7a4e GIT binary patch literal 3272 zcmbVOU1%It6h1SvGrRfQ$xpRO>(7Ee6{NG>Dq=LPtL^BfHc|_b`cRkI-Pz5W-I=g6 z8xtW~NUDidFb~CoN^249LmyPost++BsQBQc&==nX113a#Nl{$SnYnj>EYd;LbVc zJ3sf{bLXC!SM}phih=-~1UL*WjiUgIv6h_n#5DAw=Xhr6m(2Wcy_u!Ct;|w=GxIg~ zTcI?+l9o9)w-wOl=QcrI=ii8@)YsJo6%(k}^o>J}1`6-3BKU^Benn8v%4k_TNahtxb8ZZS$0@jP_NaY^4;JKtzD&>~<|$A$nT8AJw*4gf^LKBEKVB|o^$OSv1Q_~EXuE`X>C6bGN-h~NN- zdB@Q0$>GO!1Vj#wp&&d*nxIPJ@{BKigbcMQU%N`o&x^tm4i+(Z31#$q1sMoj^P>hS zhb%5zo^8)3#Bl%k5TcimMak{~Q4z*-b<3?M@)g4>C8o`qQ?{){>Y#Q&OYKh$*FEb4 zP&KBqCRH|BbhG&hGe4OnsP2|4j+Td{RdkXQcGYx}M&U)fGMhYV=j&C|a-F1OXDhZ< z0t|FatKg?0%}XuV3S!N;OOxQIS{^Npo;TDO6mrsH) z(<|)lj>g``lNm(pHqQb;2LO-9dtVce^iVkxI3C79M5S)p#088d0N_I$5qJonf*|}E z?;%D9jzee`313jYyQRcaj9GSRs=HJs||(E<}2FpaAzF){pBs!ED}npnMWX zJAb+;?eL?BQyxy#}@SK(I13FkQp+7rMjkIwWv7^nTVssV8SP4Hoc^LfimKN7;< zV*0Zoe3|K|8Rzrz^PCL%zr^&}5PqKNuZQq=n9l8dofjGYLCAlR>7Ryh?w4RV)h1Y< zkr2+;&+EYV#oVB?BMMr<%+*U-BbTe0)1cMNilMpYj0;-cu2NG3bEfRJdIWEQEY5Lj zJDX*(W}4I){cQdOWvgg|X4$T(J@w4^e#bTPlb}^9)77j|C}1ZqZF8@bEt3J}M7CHn zswT}dRd;d5Y_ZT#SK!pN6_C$@E&sCG`ob}R~bQyqxXV$Hu{bb{fvX=r{9(! z4Y7r?Z8S}M{Xx#`$x rKga3+Q99nRk)6TOqzf#bmyzO$!t?)xSh#lNmtc!ZumEC|GCco3ljM8f literal 0 HcmV?d00001 diff --git a/move_character/ft_move_character.c b/move_character/ft_move_character.c new file mode 100644 index 0000000..b2822e3 --- /dev/null +++ b/move_character/ft_move_character.c @@ -0,0 +1,37 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_move_character.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/01/07 19:13:01 by adjoly #+# #+# */ +/* Updated: 2024/01/26 16:10:05 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../so_long.h" + +void ft_printmov(t_window *win) +{ + win->mov_count++; + ft_printf("Mouvement : %d\n", win->mov_count); +} + +int ft_key_event(int key, void *param) +{ + t_window *win; + + win = (t_window *)param; + if (key == 41) + ft_exit(win); + if (key == 26 || key == 82) + ft_move_up(win); + else if (key == 22 || key == 81) + ft_move_down(win); + else if (key == 4 || key == 80) + ft_move_left(win); + else if (key == 7 || key == 79) + ft_move_right(win); + return (0); +} diff --git a/move_character/ft_move_character.o b/move_character/ft_move_character.o new file mode 100644 index 0000000000000000000000000000000000000000..5042ad8c24a0b75d6e1aa2c6cffce63553051355 GIT binary patch literal 4624 zcmbuCU5pb|6oAjnbh_Ow+m>DamuOXxA7#3WB=RRz0qr7+5-}Jg8b8dI`x)>90GIP%P z&bjCQ_TK594V&)NH4S9ZU=560k^+3)Ij*OLnue(uxivHPb7u5xA~Ux8QfB`Kd@{Y6 z(T}yv7)oK+dNapl-FM(LshQD}iR~xi*RBUyKRLGha%QY~9;=+sjBPkQy8H5?_}+Gk z-M{;^sDx-v{K*bPsBMYwjRl=&YCfOQinw2m==UQ+t%&>7i0l1`wpPSur3+^;0LEW^ z$8jLZ?I-SWn?rWRu6oIp$@zs2(57nhW8J0^OU&$vP1U->0D2tyy8(0+C4!YEfWNi~T_fev>~a zq2KHeO6W_H5aCu}6?Nr7vW$4Ueqh+w7L%ZzE6PcHbIf$=F2+4Z4ntbBm(il+QT@Q6 zux5%JuyvqW^_t1NldG1JLw3DUcB{$0rB<)ix1?`HQ+RKIiaTUy^Mkp1F7Mg(RME>$ zBvu|$)nX$x=vM4TDp%OyIwPs|ZoWyIxRGkOS;wuGpyCX}&TFohBX%9~uH)Ew zuRP$`U=No)*qL)2DAh4l0b8R;PrMsh>{-Fxi6$#J%32-sV_rc05ql(S58-$KHK^fS zRPeOjv|U?38%}6FQ`#cW;-;C4j2F+u}@#u86Ls_G|9J`I2Kyy zmR~<60@h%T5IlnpP1F92b&{aHh>tdLky4fgsb-^|a>@fK#~G?D>02svvG^%}(NpDW z-f0$WWyt|}4Xr`S-0%toyNJ3DG&K|3!OdV`2SNsJM3kc7@59tPj+%+^Ml%^cYR*Tg zZ#1=Vq}zl;=CqDeW*AXN_--Mi;gV?x`yo+fX3<0|#xx#&*_@8{+@cxXh<-no=rp7~ z|3atwvBvgorXDut{iH{5x?~?Gmp>p5!38=={!t7X|0KoW^H6me{z0H(oUYdIeS*(` zz$M8Z+6##ZQND2_iZ1L=ntfugpuP{E$>O(Mg|EK~-*FXw_$r*HmHH!#*xP7OKdF$P zwuvl#tb|a~s4rjfOEJLd#FczB!0E=3{Ph5D5Ae?doK8*|FK%D7sa?DmTRe<96^bRF zEb?|EE{=G1bg`6Nj&nwU%bbMf1UTjCXZsqKG(Y3B2e6E}%-_ZPR?e&B?abFH@pxE? zvRUDevi-2an{1a9{y5tWg}=)79)-Wf_I`zb!S)LZ|Ca4T3Ljxxe)`GrzR3JjC7w=1 zDqs0RtRv0yQ*3{)@Tb{6rSLJfFDm>b+kYthUAE;q$bK5UE(w;B|HbjM6#gCac?$oL zd9T9HGGDFm3(PYL|Bd-p<|KmqEw9A)uw7BO+&?4CNl>0NK2)Ak;uo;}yuz2UeNf@c z**>gr*=|y_;e_G+veu+7y3&wZ0O=<6l(rwnd^sRzD&@5$h0|Rw?2&}s8*dm*pyGOT?4k#pvEkKQ*JiWEnf=Df)uP+-;pa#dtg7qT z)?N2*UDEJ!`A5K_t2>)36!2TEM4_U;#R*xQa@A&F4`z$_sbaU1wm#$Vp0=^IWMz)#0P1N*Hv=Ggd{qM1K ZQ&HRh9ho|J6nBIx4srz&ZTP6|{|$ekDINd- literal 0 HcmV?d00001 diff --git a/move_character/ft_move_down.c b/move_character/ft_move_down.c new file mode 100644 index 0000000..f5a4920 --- /dev/null +++ b/move_character/ft_move_down.c @@ -0,0 +1,45 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_move_down.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/01/26 15:50:27 by adjoly #+# #+# */ +/* Updated: 2024/01/26 17:45:28 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../so_long.h" + +void ft_move_down(t_window *win) +{ + if (win->p_coords->y == win->e_coords->y + && win->e_coords->x == win->p_coords->x + && win->map[win->p_coords->y + 1][win->p_coords->x] != '1') + { + ft_putimg(win->p_coords->x, win->p_coords->y, win, 'E'); + ft_putimg(win->p_coords->x, win->p_coords->y + 1, win, 'P'); + ft_printmov(win); + } + else if (win->map[win->p_coords->y + 1][win->p_coords->x] == 'C') + { + ft_putimg(win->p_coords->x, win->p_coords->y, win, '0'); + win->map[win->p_coords->y + 1][win->p_coords->x] = '0'; + ft_putimg(win->p_coords->x, win->p_coords->y + 1, win, 'P'); + win->c_count--; + ft_printmov(win); + } + else if (win->map[win->p_coords->y + 1][win->p_coords->x] == 'E' + && win->c_count == 0) + { + ft_printmov(win); + ft_exit(win); + } + else if (win->map[win->p_coords->y + 1][win->p_coords->x] != '1') + { + ft_putimg(win->p_coords->x, win->p_coords->y, win, '0'); + ft_putimg(win->p_coords->x, win->p_coords->y + 1, win, 'P'); + ft_printmov(win); + } +} diff --git a/move_character/ft_move_down.o b/move_character/ft_move_down.o new file mode 100644 index 0000000000000000000000000000000000000000..9becc33237e39c78583ecb03dc7f15e4a31d8792 GIT binary patch literal 4872 zcmb`KTZ|J`7=Zto&KbItZObmg0xDH*E4b5L(Xg-;7Xc|F5~Hrb1J-UkyIY;Mn|2Dj zBt*@+MBEs~#3(+9i7%R%nD}CpM8z8zH8J|458k3CczN*lfYFHmf99Nadh7-?o@9Fd z|2zNfoHKJ~de63G@5nta`8UVFKtD!VYt=D-_)r8HlW2eBEMz5CdI+9i0G145(uZvGdIU%uX#7 zjYP-?U`{)PqB}ZC=|`169c?R+ZHh!thZ^2S2Gs&#{xr?wvifse$8sbjMZ29eEf&&` zPWaL;>Wo|QhuuLUHhnYB0$@;IKZp8LcTbx_^>TSR@xguw8y}#j@e%&C;RU8bRu9du6 zBIjmHqlx`arCKPL5`9-$y;fgO--a3=T?fVTekYR~%T}^EFwybLG#@_~|-gJfx> znj9+^ooX_hzpLy{CbyPzwW3qy0OQ6C zLdkAL%iJ$+YknQv**-^yg6lyhr&2b%T)w+_RL9kRyg(W-j+yfcDw2y;Ul70O#ErZIEw z2^KMJc9G4Nq}Vc>EwWk2yq1~f2#fgGs^g@@F`F&0*`+p1q?nmvD?PTxW*B9?hZY-I z`(3O9wRW2=OR*LBYqLHKi^M$MJYw0b7t^NLH7Od8;dlr=b#pI^>}7EjG0$R~Ew|aq z6pN(T8jmGysx0M^+HQ_D2b8HWP#C@E*=)YemfGwRjGtncdu%l?FwG40e50Fq$I0Dp(LamKfS=E`7{Ys{ zexEcAhs2TI1W^h3=ah<(|MS>SqE-AKmH>3ZcLehCX9^k3p_TpkEc^-N)ad0y2koEd z{PqSxY$|`x$DD^zmiBAJ;;Huc&ccrccreZnv+&;noKAk3_g1m=YTiS$@WTNf%*)>< z7UVWMDfFtsW&C>-en{vu3O_9L#})pZ(4SHGi$Z@v z;U5eAgu*`)x*V7Dy-)D375k@!{=LFweZMIDVWIz}@W+H65$h-O9u<6{!rvGC5{17a zc#pzm+^ZGNgq~9PS0YYY;b#QDP2s-@ey75J7u;32oPR=$(>)u!Z{_-tTadSfO?vl^ zSMWmx-{)ZEo#EPOCObS_aZsx`Zr1Xg2@kAXxk#T*WX(TRgk{yM2s7WaP#P&Wz0JWY zl|9GWzH6wb>Sc3x^K>HP1Au%%A5-QI$c-EOfclZu0)!u4p|s{T*t z0mRlT;!yo`4y*OAM@BJw@d~yNMNs-j6KqnIJ)QTh{C^dP{_3E!uq7n@?+nPqWm}?d zs2Grb((Wk~kd2GwmKYMkzrRj=LC#;|V<@y*zp%LfZhjWe+`*ZBDeceB>IVKz8_6V G&Hp#n3es=@ literal 0 HcmV?d00001 diff --git a/move_character/ft_move_left.c b/move_character/ft_move_left.c new file mode 100644 index 0000000..0e1267f --- /dev/null +++ b/move_character/ft_move_left.c @@ -0,0 +1,45 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_move_left.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/01/26 15:50:22 by adjoly #+# #+# */ +/* Updated: 2024/01/26 17:45:10 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../so_long.h" + +void ft_move_left(t_window *win) +{ + if (win->p_coords->y == win->e_coords->y + && win->e_coords->x == win->p_coords->x + && win->map[win->p_coords->y][win->p_coords->x - 1] != '1') + { + ft_putimg(win->p_coords->x, win->p_coords->y, win, 'E'); + ft_putimg(win->p_coords->x - 1, win->p_coords->y, win, 'P'); + ft_printmov(win); + } + else if (win->map[win->p_coords->y][win->p_coords->x - 1] == 'C') + { + ft_putimg(win->p_coords->x, win->p_coords->y, win, '0'); + win->map[win->p_coords->y][win->p_coords->x - 1] = '0'; + ft_putimg(win->p_coords->x - 1, win->p_coords->y, win, 'P'); + win->c_count--; + ft_printmov(win); + } + else if (win->map[win->p_coords->y][win->p_coords->x - 1] == 'E' + && win->c_count == 0) + { + ft_printmov(win); + ft_exit(win); + } + else if (win->map[win->p_coords->y][win->p_coords->x - 1] != '1') + { + ft_putimg(win->p_coords->x, win->p_coords->y, win, '0'); + ft_putimg(win->p_coords->x - 1, win->p_coords->y, win, 'P'); + ft_printmov(win); + } +} diff --git a/move_character/ft_move_left.o b/move_character/ft_move_left.o new file mode 100644 index 0000000000000000000000000000000000000000..b62b2c1fc29f827c409f6ddb18c70030989c3c36 GIT binary patch literal 4872 zcmb`KOKclO7=ZuX^=zHGvE2mP^g(OXS7^yPX+cdJw@p<7?otW@LfbPvvT3j#8k(d4;aEfN=VCv^(Q+_-;@kA(5ApPgqvz7o19(L=Uy7X@iTbIoE_6Jc?KiY>#JMd(6Bsuj=P+F3nwok z&at9hv8j`RWX&q-Zsg%Bbiv4Phr-=*UUR9QqNY33ldqjmpTK@v&gSPvVHeElukS!? zYOQpd9PfnK)MBoRh>g(yY3ugO(0G^3WugAn)?sWoTmMN`ewRed@}&ET{EJQ2>AfaYXu{^ zyPcF?RQc1&r)zOf*CAhp0i_^DvHsl@MTwX=I zzZb%x570C85&pE`1*R7I96QFB83la}FD0yB%H8IZ+bX{lF0T&xek{b6^L4!;*mP_bv)8(3VvB&QtSOmalXNy6qhgeC&lHi1i;`>t>o1bIX7DxNgQ%2 z)k3+H=-Fs>TRmMpTWWlC6BNsboJ?*sTgm1;r;;4@GMu>1uxI5USsJb;N6SU0n#|^J zFS`@TtID}r(J6V=WVM`e%cT(ry1?N=35xDG6tiPMQDH2TE0-(zDvU#+|x*>dD`QKLH- zc1GjJ^S;WUy9VaD@+3X^lq1&a$*jk%)+iau7%oN+~p~Y6#dOK^w!B(5C zOtIDYYqK5D>DQl0h z4cu^_@#4=u z_SEE#5T_inwFyD;wL)JM;7l50zcj!p&Q(HRA$ppgD26)xl7sqmvhpH}#Bp+BndXNCT>!e0>j^9ui1=%*C^ znb769obTO&f34U*CG_tUF6;YQ;SUJ?PlZ1s^oUqLnfD>V7b*OG!7owx%Yt_)T*kdZ z;Y{c$g?}aDq!oTf@S7F>tKhdO{5Qc}h0FOT#5mov!TVOOAGrm2OW34$?^p#tRPcQc zR^Az^jbySzLlpAY(pI-P$DMJEjiFH1o=LYTzw}j!-3#=Chb1tU)%C;2mt+! zr+uWel3It~K`ZuZO*Hg{*mVAPMA%ZN+TPrRk=;JAC=-fs=yYULP4@FS=M-yyPl|7yJ&HR56hyJ>tv#=#3{cj7%#AREmZm1ZLe$ws< z6p)PtpD`Ls2>)JbD0(@6iBF=?Z2iLG{*(Jm>qko}{UyI2nOYMf*e~)=DTS%F_o8jH z{D~&{=^d=*KZ4BIbH0q-U3k@7uke@87S&Hp&HpMgr9^J`rAYK6*L**klA8Z7Y^Bq_ literal 0 HcmV?d00001 diff --git a/move_character/ft_move_right.c b/move_character/ft_move_right.c new file mode 100644 index 0000000..e0be753 --- /dev/null +++ b/move_character/ft_move_right.c @@ -0,0 +1,45 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_move_right.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/01/26 15:50:32 by adjoly #+# #+# */ +/* Updated: 2024/01/26 17:44:49 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../so_long.h" + +void ft_move_right(t_window *win) +{ + if (win->p_coords->y == win->e_coords->y + && win->e_coords->x == win->p_coords->x + && win->map[win->p_coords->y][win->p_coords->x + 1] != '1') + { + ft_putimg(win->p_coords->x, win->p_coords->y, win, 'E'); + ft_putimg(win->p_coords->x + 1, win->p_coords->y, win, 'P'); + ft_printmov(win); + } + else if (win->map[win->p_coords->y][win->p_coords->x + 1] == 'C') + { + ft_putimg(win->p_coords->x, win->p_coords->y, win, '0'); + win->map[win->p_coords->y][win->p_coords->x + 1] = '0'; + ft_putimg(win->p_coords->x + 1, win->p_coords->y, win, 'P'); + win->c_count--; + ft_printmov(win); + } + else if (win->map[win->p_coords->y][win->p_coords->x + 1] == 'E' + && win->c_count == 0) + { + ft_printmov(win); + ft_exit(win); + } + else if (win->map[win->p_coords->y][win->p_coords->x + 1] != '1') + { + ft_putimg(win->p_coords->x, win->p_coords->y, win, '0'); + ft_putimg(win->p_coords->x + 1, win->p_coords->y, win, 'P'); + ft_printmov(win); + } +} diff --git a/move_character/ft_move_right.o b/move_character/ft_move_right.o new file mode 100644 index 0000000000000000000000000000000000000000..7070425a8fcfaafaf031a82f61201306cf5ae4a4 GIT binary patch literal 4872 zcmb_fTWl0n82)Ew&veVO7g~gJ5tneQU}syikz7UKNuMndl8WVj{6E*SnphgV|M*ROX=X9s1TPemrnf?F& z`>*GmnRCuQynF90x~7374R%07lPEwq-jMsb*bfQx9LSvbE;I3SB6H%{h0N4$eEK`4 z`a_wi+fm$;?AsZNPri!&!j_yuiJLn5wD{!H4NF4enfx9M51p0zRO`eUEt5YNe=`)G zxX=@S^xj5LM<(AZt7h_}7&ma?)NZtYkB_X`F$EKEVTS4crakXycpkgJLw#&bnswCOsKaOIvYFoxg}ddr=F>f8&2(la&RoizKt3f$^IM~_%hvSgcXxbp zy$qTd>xB5^Qm%@Ojnw~X=?=)$_?FCPqONG^FgN@#{gat^H*xPf+9GXTteqLL#L^Y9 zMOvE)pj!yGnf)C`Y!GRCJF1$`ZFC9JRJVGAg1jo%8F*M|H!7Gf*;Jm5@QJX1?J z)QJe&B4FL(nL70iJktl1{Mx{vHu{6&_$Gf)T)xg96qmb_00V>dvR6;$-CTJ%dDyAe zij{J*XS3C9^>p=Yt8?oXC{+$S+5AYZn#+4mH8tdAIZ`bSk9bxdQstpqYNS$fYN=e| zP{kcj-CW7nOHSFVrD~O|TPY92j2JjlEJMj1gHmo3C@+j=^OZ`qP=hfjmOU7Ungl#4 zUruPHrC1t=>x!4w)aO}iM25~HQYN1HkO>S9a@q$S;Vy2RW@6m zX4lwksm%=YMrN8rEaJn~G@O!f+-8eyhGDCZv-LLXw%KNjnQ6AwLyzq&dWf~5F>14G z(rhjM+N=lDB4VE8mX$VJWwB_Qtx2;^o2{|g4cs0_yMd9qd5}d8vIL4)XPHf{tUt~+ zalfq=i=je|UP1`(u1^vi* zYsY@gdsw{4Vs#H#S5B_>Z2mGrA^7#uYzuBtjZJxm*$`X$ z3=kE=-=|a<@!8vc3cV7uJOQ>M))uJCzbV9M2+jN-oCALjaUwc=Xruk>l230Fh@|2l z`Y^}CC`8hmmv#4xFI262Y!3Xf03NK%PZP|$03ZJ8 zBPWt8LO9is)FuRpuNV4~0M4W{^5p@X^3bJ|XqC_Sx{1~}vS|){o4{q=qR@9K_z|Jg z4T?zm%VRa`!_#=XnBQRqe@N&x1(*3BR&c4)PEI82KJKgVtl$!VMd&Xn`0GM{O~F4C z`e_CKO6Z>|_=M2EQScXq{-c7^)trcK!bGyqr+gLu7F^E!Sfuff-_hj&gKROs}5>a$IV%uGvR367|J=@SI{3%P@^5Q6fz4Thh=k1bH4vTs;$3pdq-QNx$=S z2q5`?LjdS+Jgp<`l|&srgD7&fCo+8{7JW?kNv8S^ph3mR_Z~4R5NlRH*`z+5!D@XvmyEraD##weXPSCNy!^JPe +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/01/26 15:50:35 by adjoly #+# #+# */ +/* Updated: 2024/01/26 17:46:12 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../so_long.h" + +void ft_move_up(t_window *win) +{ + if (win->map[win->p_coords->y - 1][win->p_coords->x] == 'C') + { + ft_putimg(win->p_coords->x, win->p_coords->y, win, '0'); + win->map[win->p_coords->y - 1][win->p_coords->x] = '0'; + ft_putimg(win->p_coords->x, win->p_coords->y - 1, win, 'P'); + win->c_count--; + ft_printmov(win); + } + else if (win->map[win->p_coords->y - 1][win->p_coords->x] == 'C') + { + ft_putimg(win->p_coords->x, win->p_coords->y, win, '0'); + win->map[win->p_coords->y - 1][win->p_coords->x] = '0'; + ft_putimg(win->p_coords->x, win->p_coords->y - 1, win, 'P'); + win->c_count--; + ft_printmov(win); + } + else if (win->map[win->p_coords->y - 1][win->p_coords->x] == 'E' + && win->c_count == 0) + { + ft_printmov(win); + ft_exit(win); + } + else if (win->map[win->p_coords->y - 1][win->p_coords->x] != '1') + { + ft_putimg(win->p_coords->x, win->p_coords->y, win, '0'); + ft_putimg(win->p_coords->x, win->p_coords->y - 1, win, 'P'); + ft_printmov(win); + } +} diff --git a/move_character/ft_move_up.o b/move_character/ft_move_up.o new file mode 100644 index 0000000000000000000000000000000000000000..ddc3fb4630a77282a6a47ac70ff4a7357adab4df GIT binary patch literal 4856 zcmd6qU1%It6oAkC+{vcf>~51%Q`_ole-f*i-B_iqt~Iq*w_{tR8f_nR-Rw@1)!E&+ zJKH9OQZcqzqTmlAf)GLKqdo|t6a=Z-_#pm)=!3pkp%oump%7H8=iIqBJGpKoq7Pn} zIp=(He(ulAotdLMci*LJ8px)>HfUOs0?fvm`T$o4Ac3BP*%LozCx1?4PaK)ePVK~F zAd#KggK}5*)Gl-Kyp}C|lASVVB+M4tj`u?R*cIFq^V6KD7o^vsm%Ts!)c$7BqLw}EwBS<8rNi8Ce(sc= z{4nv*X>FOdKGwyISmKIRv1MAP1)$pqJFS6kBX&#l)@aYl+gAb@40Hi@bpe=hAi-9k z2;2ayF3pHVqZ9+s)&WLrR~H#u(2T^fZu>f9+oDmlp@FxNNqvC`f2NjlT|J%Du{#oy zp*=vB7B}?g#{+FI3G+TYv4=^;rf#!_Mj3dYk&~X|As&KClHM=BF5Geu<}cJiyY-?@=&5&8X<>c~>I(H9Twyg{=*` z!u54#5XVfmn$H8yw9PZMMa*6#Y?Hvc%`^4tJv`GHN`75vP#c3maejR;D6ZcS42tW0 zNr1tjM#XO=3tql5l04|v>ZNKW*?*&*w)^|~w>J3IO;D~LbaRE#d@Wz_-CAnc&vDWi zvkQ=_4A)bm)v{Yp<%^G2y@}MF)k34}R{VOZUd?&c$_O+A;83XoWp5nH`7xl3FqSJ+ ztF>Ys#-UX4VFKzB_)@{zflC1u>@QH#WTR3qja1xXlEUhx!*0%}jtZAjc?8D1{DfPB zLe=x!f?pc)TyV!rJ{-z>9*op5RS~O^r_ayz9QLkQJ%pxE7CApS`>>o&*tEm@KpRhJ ztCqG!p2O8zjf@UzbkD-}SmL<8qr);@)6oSEA~WG>yr5~?Z?O&%w8(g9^XFY%2HS>I zqh3pSrJ9A5YZP4wtpP3?CKqdCkJ2Mm_lre$7`1xWHgLc{*?vz5OQktx}mN0_scf_yE-t`-4RPA*W!(ef;Z*BRF2J7&@o-)K{=mFT@Ze89N@{XNh*J&OI)x(n24SxV zaVDKnUK!$)=MG_CB_s_`bd8hi7vNh3mvx7Qy+h%T3!A=~s7e17Vjgn=p5q;Yk0`t$ z?7G5b{-X+?5cZV9pA`1X3O_0A*A@Pzu-{VnXTm#PT8&ib$7nyOB z_)k79fskVQ=V%f&VsgKd7Y2kP-vg4X?}Al$A-s=CzZw2rEq^!w=$C}nkM>Av-GP7( zlxm;o(vM=X`HzS2C87H6Yr)9xAu%ZvN`PX*9`tS1|Ig_G!D{Z=r~Av; neYuL_2|VUnTExp|i~3JZtxxX_rHkC}8&OE^hZILcQtST-metma literal 0 HcmV?d00001 diff --git a/print_map.o b/print_map.o new file mode 100644 index 0000000000000000000000000000000000000000..5740422052d191c1736b5fdd87c44f4afe69c30d GIT binary patch literal 6792 zcmd5=eQX>@6`$R`S)YBj&mW27G{ju zXWd6)M~a&2VyI(^l2#y41u}>~pn^&WsY0m~5>k=CA5}p>CHNx-5ygfG87W0ZEtvOa z-<;RuyDAa?Fw)Mv_nY5)^XARW?asXrKJt{VX-pQ49bn6vL>aR?mgNB<4zN~W4%$<< z?eg6gd+O}sjqn2Y+z8*p#-0u@+S7aNE2v4c2)X4! z$bknSKTs5%cKPj=6W3|}ftPM#2JETQf;}}j_fq(d|4R5yc`@vt{2Wdlav>%>XHO3V zrf{GImu`CifUZ4GGlu=h1pSyZ+iSC?;4j!99h|x;(mxq-#;M^3T`r>W zYB$bc_BOkGO@p=AHvbdwEO)0^4Vlo{70bP|rdwF29b!^vA%7)^W)S@0@mr3} zf2Gmu?3!DGsrF)Yu#4{B&8s!tz^1={H&54e1G{GHeNPIAu3aGZgUDq0D(va--2A8h zv$O=jtnC1^^K}T6-|jteJys|ri-ll3m&qjK#q>}nX^mx5jNs&Wy6DzZ`CKWRa3f=x z*hDh#Moz~v8KG;f+ScZFZZx;7+tA#qwV90Reu&htpr_3o=ro%5`u6#{*FUkIF%M@t z0nfBE#vfgwntq08T?aId6=U9Z&1m-d&;?`lP0VP1rX7_%pf+p)^?=WZ8@WdZ@0cOx zg)PKbBUY=*b)e`*1qP<}Y1A~oN53@gNOgd6{ZdhAtv`3PF`>1g#wzw-U$*b6*mwOB zP|zF;sf`HxF7yq3__M*Zt_v%?ZH5_8H2oEC{pZ}?`YATY+ddo#B0VX*g-~N=Bh+>4 zP=ul%^kOrhKVFY5?pVE_Ez5hoLdG%leJw)1gmS2JS>7KIGJ4k!Y+II}=oRuG5g*vY z%t;VToKXV~Wojm7r|vsYVbQmWNWA*P!V2@KZ+0RP@)nO{$31nwB@@FEp6a~jEPDEz z^kfN7+w^YXNz7@xYfd|yISG8HGbbVMa^@uDo&fx64wbUSQXrm*WmADu$$TN5%Le*( zTfJ6aPhWpY^ghDI^66|bIvN|Z;w+dQE(Aw%qsc-rmiR(0GZ8$LiPsW`*>bWVFaebEk-c<2vV-xz0Vq!_M&ZGUu4XXvi#zx)6ov z61mf$k^p^Chzsfo7Qf%Di6v)ioQ7#P9-8I;E*<;70teK?MxaB}v=5q_ut7KQXch~W3i)6r zJrvAjPL1~T?H01w1wm)^gXwHMQ%WS+ip2+eT4QSjJr#(8YRQ8ac{$w z67MbX$IJ+SD8zN|MP3)-oe{p>Ji;vi+bdvegzq#D^IibgR>1Ze;C6HWYI6)pkRKZ;WuLyDh#QYGL~v_k)>kzO}+bs=9{`ksqixS$qrB&gi}w zIkY;Z{VS#vtl>0-Nmrbj#*yP(GmXdp!rA-W)9_EOmqn!YW?78Z0-=1HZyYuTe#mv> zDhqLL{)#u0c{5C>A;MwFj0mK9hBpELIrfXX4eAizXr}lkfV)F{7pw)O*9RK7Ts=V! z>1~?ftcZvGp2C1|gSi_<;WGCa z{^O9g>}9SQYmVzC96mf2)yg{nde}dfs`VMpxmwj_&`VzJFc^Nft}X@>Z;MqO25VY{ zodu-LJuXH56yY;;$i;6CUeT@O*e^s}4vE^0A-mG=W&Euam&|_`>75F`mh^yv%k#WT!DT#q6#PYs7odLZ zCW=4?RGj!H6n^{XI-PFzS7?zU-#Y{|gI;R*FR;6iJ7I(PdUzz}=6#;*zw8F9 za6eN8LzCNN-{;<}Rk-*bt2X};O4K>(L=|(a&VL{I?1k1{I*9m~GC8Tr7W0O(YJXV# zk-?b!E|b2coow-aDP_sQHc$3$3}uyz??=GKlr*t%vKRkEPTI@;^DV&Cn9yW_#=oc>4wd^2;8q*Im(GtI2gk>+dv$z#-x)`ia?qTEr&4UP dm&2ny7IpkT1E%H>flkw|1YPBUGV?_ literal 0 HcmV?d00001 diff --git a/printf/ft_printf.o b/printf/ft_printf.o new file mode 100644 index 0000000000000000000000000000000000000000..5eaa2e27c9127bb12a82283ea9c71bc276f62965 GIT binary patch literal 3968 zcmbVOO>7fK6duPRF@IebwJPc#rWI=37ApqY1_`yHbm<%tpp~rlK$JL+15p#(a@G(k zqB?c9&9b<)R7DCxs5yWHhe%P?96%(v5Xn)+!KygGEtjgXl!H+v@FA-E-t5eJvL-$B zNuF=^oA=)L=4WU9joNXv!Q~>tT;xMidlD=m`E9j+JL|TSt>77=#-B8^>Z8VJnPx`I zMA3J{@Ey!S7nmb7w>Ckuf=`CJR%!!uIy49eYCS`w60KulZMl*}Pu6xR^ zG=vC!uQ9q-P%Fq}M%T6|nE>>_H$*opk6w=rOnY*nM#R>I^$oOP~j3%VcEPA`{vGo~S%|qh$iOPgprADe; zP*>rZC<|&eQ`w{FJK*8Y9%#gLOTBI}Jgn$lFhWhWObvC}gcV%LR9ckpUuA6PvKd;T zk-OA=*qgcQF`fsfhozVJ7&SlhP@_m;gc{gYA3`Gdwb@F4!^&HQL=?TdrnH1g4`ih! zGxWfrlov`%^-6hA%A1h8VrzYCYYiyl+d<0`?o;%WHQ`wlzAX#SnxWec;p;+pwqE!; z2w#_G*leq&)(K6a&{bJz$_!m~2<3#(RJ~9RgmRM5B{*Hyj1r38Uz<@Hg)TCoU5xEa zo1u&Ah4hhXwOV?a57%k2VQO-y?cQ!%azxR`Y)SnzWCK-Q17yN@x~Q3D{3Nmt`5u&i zt>#o;0eV0M77(LQ|B{w|fOu;GzEt${wQ5d4C{}Y4P_BmYlgK)%p+Jdh(5b!}^nhwC zcy=|QPfGvUz^y{Z7W3e<{yrI7oyK+b&-eUOtt$Sx1cRA0gKIekSEdn*%Cj+>RvTBiLvtIT{y)@hDr3UpB+8bM8N(JJZp|S}@8&qlev+$ADzt0ha;$w$A?z z$^Sy5hh|enaqqa*`-XbIB#RzEQR|AdM3sd@9(GAt&bCOYA14R%G%*SL_KYp!(dfF@ z5*rxwlhzT^8r--4zO`EDyF4;k->26lFcjd)$JY-{%9KoM_y{Gpx0=J0dg?;4J5Z)(uM z!x}q;JlHfg_V{Ic{3P;VH{j!9kGrqB(E)Rx$3d_bxG-zuZ#J+5Y^1)q4OAm}T&*7= z#7!_!y}2R6X~%)s0scOiD;ld2@JIL|U*sXIHsJ6gMP3+N6L`SA^$JqLw>RK_-hlsT z13n2n>ZSqFrddnKi-6D4y|e-UI*-HY;&upomv?Zw_=RMz37kT#2Tk}lS&sz&xu7}y zzp!ZAe=~pX;fVhDZ%5?+RpMpcM-snP@^9k%G^B43Cbe^?-3BG?l x+!5CgQ;K-8eq+G7JF0PjH2iEU@_2DyU_6?${vvSB+R?9t3!UHr2w106|6hSw7WV)E literal 0 HcmV?d00001 diff --git a/printf/ft_putchar.o b/printf/ft_putchar.o new file mode 100644 index 0000000000000000000000000000000000000000..e31b0fe8b4ad72b16b780769693dd12e8882895a GIT binary patch literal 1136 zcmb_aJxc>Y5S>ecUqm@XK~Uj38(k7@w2_Ek5rT!1QsQ|zli=MYT=q2DC;haf!XSuDtfaQYRkCvu55s5p~aACeTOX=LZ=RDml!bLc1*_Y8V6>TUDx(F9P(Tx z;8xM}fq7+av(4@7T$P*F5irL&c5`Mvk5enaiC^Nj*upO64t>+Lm1<@It8$;42gs)` z@jqc7_lfq{>y&;oqSB)FSIBL@4=vJ&RiuO?=PYBLv!+^_Zzs~C(S!&LBGbI(n~-`O zHA+q3QsD?^MitQ(+qT(IG&S{Bbrf6HOKA%Y)GF#*pxB*ASQIQto?rTFX!N@OzGx)x wN%yB2%X+EPy`!11jC6skjhd*J=cRgr^jjW45sl8XQ|v_~)C5xM{2b}6bcFkiYQ3dTz%08B~niBA&M08sNs@a+G27kmrWampl~2L zLLnc(44@I?d*zO)UPhd`XU>?X&Wyg0BsJHMIV?99&HQzLylqG=#S zgPSn2BnogTIy$F=w$lu z&Aibuwa>oM(RVK!J>Tf=&!DFj9KA+&Zoy-L-Su{pP2*^gYo~TJAVLG*S-d3LkLotz8Isc@U!xtB>)xs`te ztW?@6XRSg3hqVUV?gqC-275hQbgi;IBC|ZODtEb+L;biMXtz?ZxJ9teWYeOy|4|Q- z6n;mUH)yugx@DD(vpcu~Ps{&~Sy!XPaJ6^9C&1OBF3=Y0`)P2tP_CA@-% zaqrg_3FSM{`_1B#e2HH{ESm0DP(8ynl$U}p>mojhT7MBS850DEttkTA!X}gIRPX-_ Dw6Mn( literal 0 HcmV?d00001 diff --git a/printf/ft_putnbrbase.o b/printf/ft_putnbrbase.o new file mode 100644 index 0000000000000000000000000000000000000000..b8ef8dcf8189a1d590a28c022cc959b8bf21d597 GIT binary patch literal 1760 zcmb`G&1(}u6u@VbG=5NR5Cx$g_99;Fnp7`R(THpvq@tZJJfS~YkCKb)Nl0I!qdCHzB8kDCz{iY zyFJ)vzHYl+?+aBvzQMCz;S|Jq?`To)P-WfIJ6p4Whu&+{cY~a9y#rR<4vl|H<%56o zgL?CQOVmrfMn5RH4X2C>rmK`C*ZXuv?@TmLF{9g~zTVG#@;=jT7s~q{S$CV&-QK#) zVkCc0F23#QZ7lvDGWrm~$|t#kYdNl3EF0E>x@6k*#j2%drnR(|naZ4Yne`-I=parY z%KfWESxzaF3Y_n`=j=Ag*tyry8 zOv@o9Ctq_Nt6&$5x|y%xzV6s%(;}KxbxiHzmE2U_F^YGHRxU49^2Yo;ys8Cq*IsnY z-=lec^LD;u8=@|GL+fJOwr5R=1PkAub>X}%Zg89(=!09=c5ggyaWtYz14Q82={6tJ57 zhA_`2kH3K%Nkshu8L)`D|0?glxEJ0Zdo1F`{m%i5&kgYRT7fZ?bsjHrV?0XuT91H* SYe&B{hfi<=f^nEKeEu&^RXm^o literal 0 HcmV?d00001 diff --git a/printf/ft_putstr.o b/printf/ft_putstr.o new file mode 100644 index 0000000000000000000000000000000000000000..410f795906b80cb4f611d37dadba860fc4581f4f GIT binary patch literal 1384 zcmbtSPiqrF6n~r8KWMc<6a)qLBBqCq-Fm5@5-Fp5s2&PA*09}dYUyS-Y-Vc}f`zCM z;-P*EKSK{HD6Lm-egUC{J;Zw;zBidMLz1)}+Fz{>&rXj9g8^C{-tY3h+x~8Ed@Dw2 z7%l*mH`7R@wjX-Ymc1J!&Fwg{on^MfoJHqeDo^hMT%qC!>-9QVdj;$I+|29&R=R;4 zEy73I9$hND&#hjZ&V4`+A|_)U>2vUBFzGZ8#t;pMJVuP;DiW6sf7t_a4{#O6ozbRg z6KF_zsSP*0q6Af#!qvx#5gJ2URyKKC@zkl=?G&&i2t6i(Jps&*>-8WKP!p9#Dw-kz z7R4f9Po9+*o5J&VfQ8|1z2a4?IQT7inQV(dWe8qWYKd15M#0PnhB<_{iSkul$|SCO z!Xw&Yj_T=u#B&Tb=c02hs7tmqp(M@G1pQXxNSY`qL%)wc8-F8;J^RW4KU5)C1)fJq zE$J_IP4N**a$Q!o7C)6TqX{KdS{Xys94_LP$T09r>9-Az)baS624}iX{OA*W>3*2A zVg4zZM-^HzlcKKgujy4(Ce5#)66!h8{AdH1La62^*LVuFQy}tkN^Mx literal 0 HcmV?d00001 diff --git a/printf/ft_strlen.o b/printf/ft_strlen.o new file mode 100644 index 0000000000000000000000000000000000000000..0bbb64d68366066fa8c98a0b4d25754df39a605e GIT binary patch literal 1016 zcmb<-^>JfjWMqH=Mg}_u1P><4z_0^J&;cy$z`zMq8S2sb)T6WZ$8py$AW@HQ*B>6q zzF!(_I2ia__<$nau3wrDFm}3rdHLY~|NkDzu3usgGlV9U=9QExBKa;>f@O`twupd91_s8eAO^+?0Y+&ac8&=^x5xm+K^O!~L4+fpKpT@Y zFIxdn0f>(SxC6ym7(V{TCe6&igdr>d6cIua2ipY{Q-G=j=|It?SCU#$!l0L&pPQSS zSHh515?@?Wl#`mrpqH0llB(zK7phxal9-&$pqGA3;bm;j|g`atmvGY4ir05JGl3;+NC literal 0 HcmV?d00001 diff --git a/printf/libftprintf.a b/printf/libftprintf.a new file mode 100644 index 0000000000000000000000000000000000000000..93ec406797912ba2722f65c872a30462ed0944b2 GIT binary patch literal 11374 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 literal 0 HcmV?d00001 diff --git a/so_long b/so_long new file mode 100755 index 0000000000000000000000000000000000000000..6e58acdabe70680b622cc33cc73b70c72750d0b1 GIT binary patch literal 47896 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 literal 0 HcmV?d00001 diff --git a/so_long.h b/so_long.h index ce032b3..75107ac 100644 --- a/so_long.h +++ b/so_long.h @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/01/06 16:19:42 by adjoly #+# #+# */ -/* Updated: 2024/01/24 12:15:45 by adjoly ### ########.fr */ +/* Updated: 2024/01/26 16:15:23 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,6 +17,7 @@ # include "libft/libft.h" # include "get_next_line/get_next_line.h" # include "printf/ft_printf.h" + # include # include # include @@ -44,6 +45,13 @@ typedef struct s_img void *ground; } t_img; +typedef struct s_elemcount +{ + size_t p_count; + size_t c_count; + size_t e_count; +} t_elemcount; + typedef struct s_window { void *mlx; @@ -67,12 +75,55 @@ void ft_exit(t_window *win); void ft_printmap(char **map, t_window *win); void ft_putimg(size_t x, size_t y, t_window *win, char c); -void ft_check_map_error(char **map); void ft_alloc_img(t_window *win); -char ft_valid_file_ext(char *file_name); -void ft_send_error(char *msg, char **map); -void ft_check_map_error(char **map); size_t ft_mapsize(char **map); +// - Move Character - + +// move character +void ft_printmov(t_window *win); +int ft_key_event(int key, void *param); + +// move up +void ft_move_up(t_window *win); + +// move down +void ft_move_down(t_window *win); + +// move left +void ft_move_left(t_window *win); + +// move right +void ft_move_right(t_window *win); + +// - Check Error - + +// check file +char ft_check_file(char *file_name); +char ft_valid_file_ext(char *file_name); +char ft_is_empty(char **map); + +//check map content +char ft_check_reselement(t_elemcount *count); +char ft_check_element(char **map, t_coords *p_coords, t_elemcount *count); +void ft_check_map_content(char **map, t_coords *p_coords); + +// check map error +char ft_checkcol(char **map, char c, unsigned short col); +char ft_is_rectangular(char **map); +char ft_valid_char(char **map); +char ft_checkline(char *map_line, char c); +void ft_check_map_error(char **map); + +// check map state +void ft_flood(int x, int y, char **map); +char ft_floodfill(char **map, t_coords *p_coords); +char ft_is_closed(char **map); +void ft_check_map_state(char **map, t_coords *p_coords); + +// check map utils +void ft_send_error(char *msg, char **map); +char ft_check_charset(char c, char *charset); + #endif \ No newline at end of file