「🏗️」 wip: parsing map
This commit is contained in:
1
Makefile
1
Makefile
@ -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))
|
||||
|
@ -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
37
includes/parsing.h
Normal 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
15
map.cub
@ -1,9 +1,8 @@
|
||||
111111111111111111111111
|
||||
1 000000000000111111111111
|
||||
11111111 1111110111111111000000000001
|
||||
1000000000000000 00000000000000000001
|
||||
100000000000000000000000 000001111111
|
||||
1111111111111111111111111111111
|
||||
11111
|
||||
10001
|
||||
11111
|
||||
100S1
|
||||
11111
|
||||
|
||||
11111
|
||||
11111
|
||||
11101
|
||||
11111
|
||||
|
@ -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 */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
48
src/parsing/principal_pars.c
Normal file
48
src/parsing/principal_pars.c
Normal 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);
|
||||
}
|
Reference in New Issue
Block a user