1
0

🏗️」 wip: parsing map

This commit is contained in:
Maelys
2024-09-12 13:01:04 +02:00
parent 2ec96bf194
commit 172dadff75
7 changed files with 98 additions and 57 deletions

View File

@ -18,6 +18,7 @@ SRCS = src/utils/mess_error.c \
src/utils/parse_utils.c \
src/parsing/check_map.c \
src/parsing/check_arg.c \
src/parsing/principal_pars.c \
src/cub3d.c
OBJS = $(addprefix $(OBJSDIR), $(SRCS:.c=.o))

View File

@ -6,7 +6,7 @@
/* By: madumerg <madumerg@42angouleme.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/09/04 17:01:05 by madumerg #+# #+# */
/* Updated: 2024/09/11 14:54:17 by madumerg ### ########.fr */
/* Updated: 2024/09/12 12:54:48 by madumerg ### ########.fr */
/* */
/* ************************************************************************** */
@ -20,15 +20,7 @@
# include <unistd.h>
# include <fcntl.h>
# include <stdio.h>
# include "parsing.h"
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

37
includes/parsing.h Normal file
View File

@ -0,0 +1,37 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* parsing.h :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: madumerg <madumerg@42angouleme.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/09/12 12:49:16 by madumerg #+# #+# */
/* Updated: 2024/09/12 12:57:11 by madumerg ### ########.fr */
/* */
/* ************************************************************************** */
#ifndef PARSING_H
# define PARSING_H
//check_arg.c
int check_err_arg(int ac, char **av);
int check_format_file(char *file);
//check_map.c
int err_not_close(char after, char before, char down, char up);
int actual_char(char actual);
int check_map_close(char **map);
int count_player(char **map);
int check_char_map(char **map);
//principal_pars.c
int verif_all_map(char **map);
char **parse_map(char *map);
//mess_error.c in utils
int err_mess(char *str);
//parse_utils.c
void convert_white_s(char *str);
int verif_char(char c);
#endif

15
map.cub
View File

@ -1,9 +1,8 @@
111111111111111111111111
1 000000000000111111111111
11111111 1111110111111111000000000001
1000000000000000 00000000000000000001
100000000000000000000000 000001111111
1111111111111111111111111111111
11111
10001
11111
100S1
11111
11111
11111
11101
11111

View File

@ -6,7 +6,7 @@
/* By: madumerg <madumerg@42angouleme.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/09/04 21:33:35 by madumerg #+# #+# */
/* Updated: 2024/09/11 22:12:13 by madumerg ### ########.fr */
/* Updated: 2024/09/12 12:57:41 by madumerg ### ########.fr */
/* */
/* ************************************************************************** */

View File

@ -6,7 +6,7 @@
/* By: madumerg <madumerg@42angouleme.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/09/11 11:24:13 by madumerg #+# #+# */
/* Updated: 2024/09/11 22:14:44 by madumerg ### ########.fr */
/* Updated: 2024/09/12 12:57:24 by madumerg ### ########.fr */
/* */
/* ************************************************************************** */
@ -81,17 +81,6 @@ int count_player(char **map)
return (0);
}
int verif_all_map(char **map)
{
if (check_char_map(map) == 1)
return (err_mess(WRONG_CHAR));
if (count_player(map) == 1)
return (err_mess(ERR_PLAYER));
if (check_map_close(map) == 1)
return (err_mess(NOT_CLOSE));
return (0);
}
int check_char_map(char **map)
{
int y;
@ -101,7 +90,6 @@ int check_char_map(char **map)
while (map[y])
{
x = 0;
convert_white_s(map[y]);
while (map[y][x])
{
if (verif_char(map[y][x]) == 1)
@ -112,27 +100,3 @@ int check_char_map(char **map)
}
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);
}

View File

@ -0,0 +1,48 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* principal_pars.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: madumerg <madumerg@42angouleme.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/09/12 12:44:52 by madumerg #+# #+# */
/* Updated: 2024/09/12 12:54:54 by madumerg ### ########.fr */
/* */
/* ************************************************************************** */
#include "cub3d.h"
int verif_all_map(char **map)
{
if (check_char_map(map) == 1)
return (err_mess(WRONG_CHAR));
if (count_player(map) == 1)
return (err_mess(ERR_PLAYER));
if (check_map_close(map) == 1)
return (err_mess(NOT_CLOSE));
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);
}