so_long fixed
This commit is contained in:
4
main.c
4
main.c
@ -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);
|
||||||
|
@ -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;
|
||||||
|
@ -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)
|
||||||
{
|
{
|
||||||
|
@ -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);
|
||||||
|
12
maps/map.ber
12
maps/map.ber
@ -1,7 +1,5 @@
|
|||||||
1111111111111
|
111
|
||||||
1C01000000101
|
1C1
|
||||||
100PC10C11101
|
1E1
|
||||||
100C110000001
|
1P1
|
||||||
1001C000000E1
|
111
|
||||||
1000110000001
|
|
||||||
1111111111111
|
|
||||||
|
@ -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 */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -20,8 +20,20 @@ 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');
|
||||||
}
|
}
|
||||||
|
@ -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 */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -20,8 +20,20 @@ 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');
|
||||||
}
|
}
|
||||||
|
@ -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 */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -20,8 +20,20 @@ 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');
|
||||||
}
|
}
|
||||||
|
@ -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 */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -20,8 +20,20 @@ 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');
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
|
Reference in New Issue
Block a user