From e1a6240d8124ce30b71978ad8fa78868158f94e4 Mon Sep 17 00:00:00 2001 From: Adam Joly Date: Tue, 30 Jan 2024 08:28:45 +0100 Subject: [PATCH] so_long fixed --- main.c | 4 ++-- map_error/ft_check_file.c | 9 +-------- map_error/ft_check_map_content.c | 3 +-- map_error/ft_check_map_error.c | 9 +-------- maps/map.ber | 12 +++++------- move_character/ft_move_down.c | 24 ++++++++++++++---------- move_character/ft_move_left.c | 24 ++++++++++++++---------- move_character/ft_move_right.c | 24 ++++++++++++++---------- move_character/ft_move_up.c | 24 ++++++++++++++---------- so_long.h | 4 +--- 10 files changed, 67 insertions(+), 70 deletions(-) diff --git a/main.c b/main.c index 70ce639..f10241d 100644 --- a/main.c +++ b/main.c @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/01/06 16:18:56 by adjoly #+# #+# */ -/* Updated: 2024/01/28 18:28:06 by adjoly ### ########.fr */ +/* Updated: 2024/01/30 08:15:11 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -38,7 +38,7 @@ char **ft_map_setup(char **map, char **av) { map = ft_read_map(av[1], map); if (!map) - exit(EXIT_SUCCESS); + ft_send_error("Map is empty or map read failed\n", map); if (!map[0]) ft_send_error("Map is empty\n", map); ft_check_map_error(map); diff --git a/map_error/ft_check_file.c b/map_error/ft_check_file.c index b4bae65..71edd85 100644 --- a/map_error/ft_check_file.c +++ b/map_error/ft_check_file.c @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/01/26 14:29:02 by adjoly #+# #+# */ -/* Updated: 2024/01/28 18:22:49 by adjoly ### ########.fr */ +/* Updated: 2024/01/30 08:15:50 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -39,13 +39,6 @@ char ft_valid_file_ext(char *file_name) return (1); } -char ft_is_empty(char **map) -{ - if (map[0][0] == '\0') - return (1); - return (0); -} - void ft_read_file_to_end(int fd) { char *gnl; diff --git a/map_error/ft_check_map_content.c b/map_error/ft_check_map_content.c index 6268081..156023a 100644 --- a/map_error/ft_check_map_content.c +++ b/map_error/ft_check_map_content.c @@ -6,12 +6,11 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/01/26 01:31:27 by adjoly #+# #+# */ -/* Updated: 2024/01/27 13:58:18 by adjoly ### ########.fr */ +/* Updated: 2024/01/30 08:16:46 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ #include "../so_long.h" -#include char ft_check_reselement(t_elemcount *count) { diff --git a/map_error/ft_check_map_error.c b/map_error/ft_check_map_error.c index b790182..33198c6 100644 --- a/map_error/ft_check_map_error.c +++ b/map_error/ft_check_map_error.c @@ -6,13 +6,11 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/01/17 10:17:52 by adjoly #+# #+# */ -/* Updated: 2024/01/28 15:18:38 by adjoly ### ########.fr */ +/* Updated: 2024/01/30 08:15:43 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ #include "../so_long.h" -#include -#include char ft_checkcol(char **map, char c, unsigned short col) { @@ -84,11 +82,6 @@ void ft_check_map_error(char **map) 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); diff --git a/maps/map.ber b/maps/map.ber index df36352..7d312ab 100644 --- a/maps/map.ber +++ b/maps/map.ber @@ -1,7 +1,5 @@ -1111111111111 -1C01000000101 -100PC10C11101 -100C110000001 -1001C000000E1 -1000110000001 -1111111111111 \ No newline at end of file +111 +1C1 +1E1 +1P1 +111 diff --git a/move_character/ft_move_down.c b/move_character/ft_move_down.c index 051782d..43424c3 100644 --- a/move_character/ft_move_down.c +++ b/move_character/ft_move_down.c @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/01/26 15:50:27 by adjoly #+# #+# */ -/* Updated: 2024/01/27 16:50:29 by adjoly ### ########.fr */ +/* Updated: 2024/01/30 08:26:30 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -21,7 +21,19 @@ void ft_move_down2(t_window *win, char c, char nxt) void ft_move_down(t_window *win) { - if (win->p_coords->y == win->e_coords->y + if (win->map[win->p_coords->y + 1][win->p_coords->x] == 'C') + { + if (win->p_coords->y == win->e_coords->y + && win->p_coords->x == win->e_coords->x) + ft_putimg(win->p_coords->x, win->p_coords->y, win, 'E'); + else + 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->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_move_down2(win, 'E', 'P'); @@ -31,14 +43,6 @@ void ft_move_down(t_window *win) ft_printmov(win); ft_exit(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] != '1') ft_move_down2(win, '0', 'P'); } diff --git a/move_character/ft_move_left.c b/move_character/ft_move_left.c index f5dd219..5ca740b 100644 --- a/move_character/ft_move_left.c +++ b/move_character/ft_move_left.c @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/01/26 15:50:22 by adjoly #+# #+# */ -/* Updated: 2024/01/27 16:50:32 by adjoly ### ########.fr */ +/* Updated: 2024/01/30 08:26:13 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -21,7 +21,19 @@ void ft_move_left2(t_window *win, char c, char nxt) void ft_move_left(t_window *win) { - if (win->p_coords->y == win->e_coords->y + if (win->map[win->p_coords->y][win->p_coords->x - 1] == 'C') + { + if (win->p_coords->y == win->e_coords->y + && win->p_coords->x == win->e_coords->x) + ft_putimg(win->p_coords->x, win->p_coords->y, win, 'E'); + else + 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->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_move_left2(win, 'E', 'P'); @@ -31,14 +43,6 @@ void ft_move_left(t_window *win) ft_printmov(win); ft_exit(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] != '1') ft_move_left2(win, '0', 'P'); } diff --git a/move_character/ft_move_right.c b/move_character/ft_move_right.c index 496f230..abed777 100644 --- a/move_character/ft_move_right.c +++ b/move_character/ft_move_right.c @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/01/26 15:50:32 by adjoly #+# #+# */ -/* Updated: 2024/01/27 16:50:36 by adjoly ### ########.fr */ +/* Updated: 2024/01/30 08:25:36 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -21,7 +21,19 @@ void ft_move_right2(t_window *win, char c, char nxt) void ft_move_right(t_window *win) { - if (win->p_coords->y == win->e_coords->y + if (win->map[win->p_coords->y][win->p_coords->x + 1] == 'C') + { + if (win->p_coords->y == win->e_coords->y + && win->p_coords->x == win->e_coords->x) + ft_putimg(win->p_coords->x, win->p_coords->y, win, 'E'); + else + 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->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_move_right2(win, 'E', 'P'); @@ -31,14 +43,6 @@ void ft_move_right(t_window *win) ft_printmov(win); ft_exit(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] != '1') ft_move_right2(win, '0', 'P'); } diff --git a/move_character/ft_move_up.c b/move_character/ft_move_up.c index 48245a7..7be88cc 100644 --- a/move_character/ft_move_up.c +++ b/move_character/ft_move_up.c @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/01/26 15:50:35 by adjoly #+# #+# */ -/* Updated: 2024/01/27 16:50:24 by adjoly ### ########.fr */ +/* Updated: 2024/01/30 08:25:58 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -21,7 +21,19 @@ void ft_move_up2(t_window *win, char c, char nxt) void ft_move_up(t_window *win) { - if (win->p_coords->y == win->e_coords->y + if (win->map[win->p_coords->y - 1][win->p_coords->x] == 'C') + { + if (win->p_coords->y == win->e_coords->y + && win->p_coords->x == win->e_coords->x) + ft_putimg(win->p_coords->x, win->p_coords->y, win, 'E'); + else + 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->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_move_up2(win, 'E', 'P'); @@ -31,14 +43,6 @@ void ft_move_up(t_window *win) ft_printmov(win); ft_exit(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] != '1') ft_move_up2(win, '0', 'P'); } diff --git a/so_long.h b/so_long.h index dbf59dd..945d8ac 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/28 18:24:35 by adjoly ### ########.fr */ +/* Updated: 2024/01/30 08:08:38 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -65,8 +65,6 @@ typedef struct s_window t_img *img; } t_window; -// - Main - - // - Utils - void ft_freeimg(t_window *win);