「🏗️」 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/utils/parse_utils.c \
|
||||||
src/parsing/check_map.c \
|
src/parsing/check_map.c \
|
||||||
src/parsing/check_arg.c \
|
src/parsing/check_arg.c \
|
||||||
|
src/parsing/principal_pars.c \
|
||||||
src/cub3d.c
|
src/cub3d.c
|
||||||
|
|
||||||
OBJS = $(addprefix $(OBJSDIR), $(SRCS:.c=.o))
|
OBJS = $(addprefix $(OBJSDIR), $(SRCS:.c=.o))
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
/* By: madumerg <madumerg@42angouleme.fr> +#+ +:+ +#+ */
|
/* By: madumerg <madumerg@42angouleme.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2024/09/04 17:01:05 by madumerg #+# #+# */
|
/* 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 <unistd.h>
|
||||||
# include <fcntl.h>
|
# include <fcntl.h>
|
||||||
# include <stdio.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
|
#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
|
17
map.cub
17
map.cub
@ -1,9 +1,8 @@
|
|||||||
111111111111111111111111
|
11111
|
||||||
1 000000000000111111111111
|
100S1
|
||||||
11111111 1111110111111111000000000001
|
11111
|
||||||
1000000000000000 00000000000000000001
|
|
||||||
100000000000000000000000 000001111111
|
11111
|
||||||
1111111111111111111111111111111
|
11111
|
||||||
11111
|
11101
|
||||||
10001
|
11111
|
||||||
11111
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
/* By: madumerg <madumerg@42angouleme.fr> +#+ +:+ +#+ */
|
/* By: madumerg <madumerg@42angouleme.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2024/09/04 21:33:35 by madumerg #+# #+# */
|
/* 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> +#+ +:+ +#+ */
|
/* By: madumerg <madumerg@42angouleme.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2024/09/11 11:24:13 by madumerg #+# #+# */
|
/* 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);
|
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 check_char_map(char **map)
|
||||||
{
|
{
|
||||||
int y;
|
int y;
|
||||||
@ -101,7 +90,6 @@ int check_char_map(char **map)
|
|||||||
while (map[y])
|
while (map[y])
|
||||||
{
|
{
|
||||||
x = 0;
|
x = 0;
|
||||||
convert_white_s(map[y]);
|
|
||||||
while (map[y][x])
|
while (map[y][x])
|
||||||
{
|
{
|
||||||
if (verif_char(map[y][x]) == 1)
|
if (verif_char(map[y][x]) == 1)
|
||||||
@ -112,27 +100,3 @@ int check_char_map(char **map)
|
|||||||
}
|
}
|
||||||
return (0);
|
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