From e7b1209541325a7c06be5d6eca8bd20f3f9134e6 Mon Sep 17 00:00:00 2001 From: Maelys Date: Wed, 11 Sep 2024 16:00:35 +0200 Subject: [PATCH] =?UTF-8?q?=E3=80=8C=F0=9F=9A=A7=E3=80=8D=20test:=20testin?= =?UTF-8?q?g=20things,=20might=20broke.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- empty.cub | 35 +++++++++++++++++++ empty_2.cub | 0 includes/cub3d.h | 8 ++++- includes/mess_err.h | 3 +- map.cub | 9 +++++ src/cub3d.c | 29 +++------------- src/parsing/check_arg.c | 2 +- src/parsing/check_map.c | 74 ++++++++++++++++++++++++++++++++++++++++ src/parsing/memo_parsing | 5 +++ src/utils/parse_utils.c | 26 ++++++++++++++ 10 files changed, 163 insertions(+), 28 deletions(-) create mode 100644 empty.cub create mode 100644 empty_2.cub create mode 100644 map.cub create mode 100644 src/utils/parse_utils.c diff --git a/empty.cub b/empty.cub new file mode 100644 index 0000000..2d1e695 --- /dev/null +++ b/empty.cub @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/empty_2.cub b/empty_2.cub new file mode 100644 index 0000000..e69de29 diff --git a/includes/cub3d.h b/includes/cub3d.h index ab90609..edf2deb 100644 --- a/includes/cub3d.h +++ b/includes/cub3d.h @@ -6,7 +6,7 @@ /* By: madumerg +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/09/04 17:01:05 by madumerg #+# #+# */ -/* Updated: 2024/09/07 17:48:56 by madumerg ### ########.fr */ +/* Updated: 2024/09/11 14:54:17 by madumerg ### ########.fr */ /* */ /* ************************************************************************** */ @@ -19,10 +19,16 @@ # include # include # include +# include int check_format_file(char *file); int check_err_arg(int argc, char **argv); +char **parse_map(char *map); int err_mess(char *str); +int verif_all_map(char **map); +int verif_char(char c); +int check_char_map(char **map); +void convert_white_s(char *str); #endif diff --git a/includes/mess_err.h b/includes/mess_err.h index 5dc0585..0ffd9a1 100644 --- a/includes/mess_err.h +++ b/includes/mess_err.h @@ -6,7 +6,7 @@ /* By: madumerg +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/09/04 21:59:56 by madumerg #+# #+# */ -/* Updated: 2024/09/07 19:13:20 by madumerg ### ########.fr */ +/* Updated: 2024/09/11 14:18:39 by madumerg ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,5 +20,6 @@ #define NOT_CLOSE "The map isn't closed" #define ERR_PLAYER "Incorrect number of players" +#define WRONG_CHAR "Invalid character in the map" //for permission diff --git a/map.cub b/map.cub new file mode 100644 index 0000000..be1f05c --- /dev/null +++ b/map.cub @@ -0,0 +1,9 @@ +111111111111111111111111 +1 000000000000111111111111 +11111111 1111110111111111000000000001 +1000000000000000 00000000000000000001 +100000000000000000000000 000001111111 +1111111111111111111111111111111 + 11111 + 10001 + 11111 diff --git a/src/cub3d.c b/src/cub3d.c index 6c11405..91172c7 100644 --- a/src/cub3d.c +++ b/src/cub3d.c @@ -6,39 +6,18 @@ /* By: madumerg +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/09/04 16:58:27 by madumerg #+# #+# */ -/* Updated: 2024/09/11 11:10:39 by adjoly ### ########.fr */ +/* Updated: 2024/09/11 14:53:49 by madumerg ### ########.fr */ /* */ /* ************************************************************************** */ #include "cub3d.h" -char **ft_parse_map(char *map) -{ - int fd; - char **parse_map; - char *save; - char *join; - - fd = open(map, O_RDONLY); - save = get_next_line(fd); - join = ft_calloc(1, 1); - if (!join) - return (NULL); - while (save != NULL) - { - join = ft_strjoin(join, save); - free(save); - save = get_next_line(fd); - } - parse_map = ft_split(join, '\n'); - free(join); - close(fd); - return (parse_map); -} - int main(int ac, char **av) { if (check_err_arg(ac, av) == 1) return (1); + char **map = parse_map(av[1]); + if (verif_all_map(map) == 1) + return (1); return (0); } diff --git a/src/parsing/check_arg.c b/src/parsing/check_arg.c index fcd69c3..adea941 100644 --- a/src/parsing/check_arg.c +++ b/src/parsing/check_arg.c @@ -6,7 +6,7 @@ /* By: madumerg +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/09/04 21:33:35 by madumerg #+# #+# */ -/* Updated: 2024/09/11 11:11:05 by adjoly ### ########.fr */ +/* Updated: 2024/09/11 11:19:25 by madumerg ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/src/parsing/check_map.c b/src/parsing/check_map.c index e69de29..9b543b8 100644 --- a/src/parsing/check_map.c +++ b/src/parsing/check_map.c @@ -0,0 +1,74 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* check_map.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: madumerg +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/09/11 11:24:13 by madumerg #+# #+# */ +/* Updated: 2024/09/11 15:24:53 by madumerg ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "cub3d.h" + +int verif_all_map(char **map) +{ + if (check_char_map(map) == 1) + return (err_mess(WRONG_CHAR)); + return (0); +} + +int verif_char(char c) +{ + if (c != '1' && c != '0' && c != 'N' && c != 'S' && c != 'W' && c != 'E' && c != ' ') + return (1); + return (0); +} + +int check_char_map(char **map) +{ + int y; + int x; + + y = 0; + while (map[y]) + { + x = 0; + convert_white_s(map[y]); + while (map[y][x]) + { + if (verif_char(map[y][x]) == 1) + return (1); + x++; + } + y++; + } + return (0); +} + +char **parse_map(char *map) +{ + int fd; + char **parse_map; + char *save; + char *join; + + fd = open(map, O_RDONLY); + save = get_next_line(fd); + join = ft_calloc(1, 1); + if (!join) + return (NULL); + while (save != NULL) + { + join = ft_strjoin(join, save); + free(save); + save = get_next_line(fd); + } + parse_map = ft_split(join, '\n'); + free(join); + close(fd); + return (parse_map); +} + + diff --git a/src/parsing/memo_parsing b/src/parsing/memo_parsing index 41fa973..415f036 100644 --- a/src/parsing/memo_parsing +++ b/src/parsing/memo_parsing @@ -12,7 +12,12 @@ //envoyer de 4 a 5 inclus dans check rgb format //envoyer de 6 a jusqu a la fin dans check map + // convertir tt les whites spaces en simple espace + struct typedef s_pars { } t_pars; + + //faire struct de coor + utiliser la ft pour couleur diff --git a/src/utils/parse_utils.c b/src/utils/parse_utils.c new file mode 100644 index 0000000..e60c690 --- /dev/null +++ b/src/utils/parse_utils.c @@ -0,0 +1,26 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* parse_utils.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: madumerg +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/09/11 14:20:54 by madumerg #+# #+# */ +/* Updated: 2024/09/11 14:31:27 by madumerg ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "cub3d.h" + +void convert_white_s(char *str) +{ + int i; + + i = 0; + while (str[i]) + { + if (str[i] >= 9 && str[i] <= 13) + str[i] = 32; + i++; + } +}