so_long fixed
This commit is contained in:
4
main.c
4
main.c
@ -6,7 +6,7 @@
|
||||
/* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* 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);
|
||||
|
@ -6,7 +6,7 @@
|
||||
/* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* 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;
|
||||
|
@ -6,12 +6,11 @@
|
||||
/* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* 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 <stdlib.h>
|
||||
|
||||
char ft_check_reselement(t_elemcount *count)
|
||||
{
|
||||
|
@ -6,13 +6,11 @@
|
||||
/* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* 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 <stddef.h>
|
||||
#include <unistd.h>
|
||||
|
||||
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);
|
||||
|
12
maps/map.ber
12
maps/map.ber
@ -1,7 +1,5 @@
|
||||
1111111111111
|
||||
1C01000000101
|
||||
100PC10C11101
|
||||
100C110000001
|
||||
1001C000000E1
|
||||
1000110000001
|
||||
1111111111111
|
||||
111
|
||||
1C1
|
||||
1E1
|
||||
1P1
|
||||
111
|
||||
|
@ -6,7 +6,7 @@
|
||||
/* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* 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');
|
||||
}
|
||||
|
@ -6,7 +6,7 @@
|
||||
/* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* 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');
|
||||
}
|
||||
|
@ -6,7 +6,7 @@
|
||||
/* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* 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');
|
||||
}
|
||||
|
@ -6,7 +6,7 @@
|
||||
/* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* 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');
|
||||
}
|
||||
|
@ -6,7 +6,7 @@
|
||||
/* By: adjoly <adjoly@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* 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);
|
||||
|
Reference in New Issue
Block a user