Archived
1
0

so_long fixed

This commit is contained in:
Adam Joly
2024-01-30 08:28:45 +01:00
parent 15b156df0c
commit e1a6240d81
10 changed files with 67 additions and 70 deletions

4
main.c
View File

@ -6,7 +6,7 @@
/* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */ /* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/01/06 16:18:56 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); map = ft_read_map(av[1], map);
if (!map) if (!map)
exit(EXIT_SUCCESS); ft_send_error("Map is empty or map read failed\n", map);
if (!map[0]) if (!map[0])
ft_send_error("Map is empty\n", map); ft_send_error("Map is empty\n", map);
ft_check_map_error(map); ft_check_map_error(map);

View File

@ -6,7 +6,7 @@
/* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */ /* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/01/26 14:29:02 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); 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) void ft_read_file_to_end(int fd)
{ {
char *gnl; char *gnl;

View File

@ -6,12 +6,11 @@
/* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */ /* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/01/26 01:31:27 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 "../so_long.h"
#include <stdlib.h>
char ft_check_reselement(t_elemcount *count) char ft_check_reselement(t_elemcount *count)
{ {

View File

@ -6,13 +6,11 @@
/* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */ /* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/01/17 10:17:52 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 "../so_long.h"
#include <stddef.h>
#include <unistd.h>
char ft_checkcol(char **map, char c, unsigned short col) 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)); p_coords = malloc(sizeof(t_coords));
if (!p_coords) if (!p_coords)
ft_send_error("Memory allocation failed\n", map); 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) if (ft_valid_char(map) == 1)
{ {
free(p_coords); free(p_coords);

View File

@ -1,7 +1,5 @@
1111111111111 111
1C01000000101 1C1
100PC10C11101 1E1
100C110000001 1P1
1001C000000E1 111
1000110000001
1111111111111

View File

@ -6,7 +6,7 @@
/* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */ /* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/01/26 15:50:27 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) void ft_move_down(t_window *win)
{ {
if (win->map[win->p_coords->y + 1][win->p_coords->x] == 'C')
{
if (win->p_coords->y == win->e_coords->y 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->e_coords->x == win->p_coords->x
&& win->map[win->p_coords->y + 1][win->p_coords->x] != '1') && win->map[win->p_coords->y + 1][win->p_coords->x] != '1')
ft_move_down2(win, 'E', 'P'); ft_move_down2(win, 'E', 'P');
@ -31,14 +43,6 @@ void ft_move_down(t_window *win)
ft_printmov(win); ft_printmov(win);
ft_exit(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') else if (win->map[win->p_coords->y + 1][win->p_coords->x] != '1')
ft_move_down2(win, '0', 'P'); ft_move_down2(win, '0', 'P');
} }

View File

@ -6,7 +6,7 @@
/* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */ /* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/01/26 15:50:22 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) void ft_move_left(t_window *win)
{ {
if (win->map[win->p_coords->y][win->p_coords->x - 1] == 'C')
{
if (win->p_coords->y == win->e_coords->y 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->e_coords->x == win->p_coords->x
&& win->map[win->p_coords->y][win->p_coords->x - 1] != '1') && win->map[win->p_coords->y][win->p_coords->x - 1] != '1')
ft_move_left2(win, 'E', 'P'); ft_move_left2(win, 'E', 'P');
@ -31,14 +43,6 @@ void ft_move_left(t_window *win)
ft_printmov(win); ft_printmov(win);
ft_exit(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') else if (win->map[win->p_coords->y][win->p_coords->x - 1] != '1')
ft_move_left2(win, '0', 'P'); ft_move_left2(win, '0', 'P');
} }

View File

@ -6,7 +6,7 @@
/* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */ /* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/01/26 15:50:32 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) void ft_move_right(t_window *win)
{ {
if (win->map[win->p_coords->y][win->p_coords->x + 1] == 'C')
{
if (win->p_coords->y == win->e_coords->y 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->e_coords->x == win->p_coords->x
&& win->map[win->p_coords->y][win->p_coords->x + 1] != '1') && win->map[win->p_coords->y][win->p_coords->x + 1] != '1')
ft_move_right2(win, 'E', 'P'); ft_move_right2(win, 'E', 'P');
@ -31,14 +43,6 @@ void ft_move_right(t_window *win)
ft_printmov(win); ft_printmov(win);
ft_exit(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') else if (win->map[win->p_coords->y][win->p_coords->x + 1] != '1')
ft_move_right2(win, '0', 'P'); ft_move_right2(win, '0', 'P');
} }

View File

@ -6,7 +6,7 @@
/* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */ /* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/01/26 15:50:35 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) void ft_move_up(t_window *win)
{ {
if (win->map[win->p_coords->y - 1][win->p_coords->x] == 'C')
{
if (win->p_coords->y == win->e_coords->y 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->e_coords->x == win->p_coords->x
&& win->map[win->p_coords->y - 1][win->p_coords->x] != '1') && win->map[win->p_coords->y - 1][win->p_coords->x] != '1')
ft_move_up2(win, 'E', 'P'); ft_move_up2(win, 'E', 'P');
@ -31,14 +43,6 @@ void ft_move_up(t_window *win)
ft_printmov(win); ft_printmov(win);
ft_exit(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') else if (win->map[win->p_coords->y - 1][win->p_coords->x] != '1')
ft_move_up2(win, '0', 'P'); ft_move_up2(win, '0', 'P');
} }

View File

@ -6,7 +6,7 @@
/* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */ /* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/01/06 16:19:42 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_img *img;
} t_window; } t_window;
// - Main -
// - Utils - // - Utils -
void ft_freeimg(t_window *win); void ft_freeimg(t_window *win);