ca marche
This commit is contained in:
parent
b5315e3a0a
commit
195f7bc66a
5
Makefile
5
Makefile
@ -1,4 +1,4 @@
|
|||||||
SRCS = asset.c color.c draw.c ft_freer.c main.c map.c parsing.c xpm.c
|
SRCS = asset.c color.c draw.c key.c main.c map.c parsing.c xpm.c
|
||||||
|
|
||||||
OBJS = ${SRCS:.c=.o}
|
OBJS = ${SRCS:.c=.o}
|
||||||
|
|
||||||
@ -30,6 +30,7 @@ fclean: clean
|
|||||||
make -C libftx fclean
|
make -C libftx fclean
|
||||||
make -C minilibx-linux clean
|
make -C minilibx-linux clean
|
||||||
|
|
||||||
re: fclean all
|
re: fclean
|
||||||
|
make all
|
||||||
|
|
||||||
.PHONY: all clean fclean re
|
.PHONY: all clean fclean re
|
||||||
|
17
color.c
17
color.c
@ -6,7 +6,7 @@
|
|||||||
/* By: cchauvet <cchauvet@student.42angouleme.fr +#+ +:+ +#+ */
|
/* By: cchauvet <cchauvet@student.42angouleme.fr +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2023/01/08 15:56:19 by cchauvet #+# #+# */
|
/* Created: 2023/01/08 15:56:19 by cchauvet #+# #+# */
|
||||||
/* Updated: 2023/01/08 17:51:40 by cchauvet ### ########.fr */
|
/* Updated: 2023/01/09 19:17:12 by cchauvet ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -16,19 +16,18 @@ static int ft_textures_set(t_data *data, char **colors)
|
|||||||
{
|
{
|
||||||
t_square square;
|
t_square square;
|
||||||
|
|
||||||
if (data->nb_color_swap + 5 > NB_COLORS)
|
square.size = CASE_SIZE;
|
||||||
data->nb_color_swap = 0;
|
square.color = colors[ft_random_generator(0, 100)];
|
||||||
square.color = colors[data->nb_color_swap++];
|
|
||||||
data->ecolor = name_generator(square);
|
data->ecolor = name_generator(square);
|
||||||
square.color = colors[data->nb_color_swap++];
|
square.color = colors[ft_random_generator(0, 100)];
|
||||||
data->pcolor = name_generator(square);
|
data->pcolor = name_generator(square);
|
||||||
square.color = colors[data->nb_color_swap++];
|
square.color = colors[ft_random_generator(0, 100)];
|
||||||
data->wcolor = name_generator(square);
|
data->wcolor = name_generator(square);
|
||||||
square.color = colors[data->nb_color_swap++];
|
square.color = colors[ft_random_generator(0, 100)];
|
||||||
data->ccolor = name_generator(square);
|
data->ccolor = name_generator(square);
|
||||||
square.color = colors[data->nb_color_swap++];
|
square.color = colors[ft_random_generator(0, 100)];
|
||||||
square.size = WINDOW_SIZE;
|
square.size = WINDOW_SIZE;
|
||||||
square.color = colors[data->nb_color_swap++];
|
square.color = colors[ft_random_generator(0, 100)];
|
||||||
data->bcolor = name_generator(square);
|
data->bcolor = name_generator(square);
|
||||||
if (data->bcolor == NULL || data->wcolor == NULL
|
if (data->bcolor == NULL || data->wcolor == NULL
|
||||||
|| data->pcolor == NULL || data->ecolor == NULL || data->ccolor == NULL)
|
|| data->pcolor == NULL || data->ecolor == NULL || data->ccolor == NULL)
|
||||||
|
Binary file not shown.
11
draw.c
11
draw.c
@ -6,7 +6,7 @@
|
|||||||
/* By: cchauvet <cchauvet@student.42angouleme.fr +#+ +:+ +#+ */
|
/* By: cchauvet <cchauvet@student.42angouleme.fr +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2022/12/13 15:49:23 by cchauvet #+# #+# */
|
/* Created: 2022/12/13 15:49:23 by cchauvet #+# #+# */
|
||||||
/* Updated: 2023/01/08 17:57:57 by cchauvet ### ########.fr */
|
/* Updated: 2023/01/09 20:13:40 by cchauvet ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -17,6 +17,7 @@ static void ft_draw_xpm(t_data *data, char *img_path, size_t x, size_t y)
|
|||||||
int bozo;
|
int bozo;
|
||||||
void *img;
|
void *img;
|
||||||
|
|
||||||
|
bozo = CASE_SIZE;
|
||||||
img = mlx_xpm_file_to_image(data->mlx, img_path, &bozo, &bozo);
|
img = mlx_xpm_file_to_image(data->mlx, img_path, &bozo, &bozo);
|
||||||
if (img == NULL)
|
if (img == NULL)
|
||||||
return ;
|
return ;
|
||||||
@ -37,14 +38,16 @@ static char *ft_char2xpm(t_data data, char c)
|
|||||||
return (NULL);
|
return (NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
int ft_draw_map(t_data *data, t_map *map)
|
int ft_draw_map(t_data *data)
|
||||||
{
|
{
|
||||||
size_t x;
|
size_t x;
|
||||||
size_t y;
|
size_t y;
|
||||||
char **patern;
|
char **patern;
|
||||||
char *path;
|
char *path;
|
||||||
|
|
||||||
patern = ft_get_player_map(*map);
|
ft_fill_pos(data);
|
||||||
|
ft_color_changer(data);
|
||||||
|
patern = ft_get_player_map(*data->map);
|
||||||
if (patern == NULL)
|
if (patern == NULL)
|
||||||
return (1);
|
return (1);
|
||||||
ft_draw_xpm(data, data->bcolor, 0, 0);
|
ft_draw_xpm(data, data->bcolor, 0, 0);
|
||||||
@ -61,6 +64,6 @@ int ft_draw_map(t_data *data, t_map *map)
|
|||||||
}
|
}
|
||||||
y++;
|
y++;
|
||||||
}
|
}
|
||||||
//ft_freer_tab_ultimate(1, patern);
|
ft_freer_tab_ultimate(1, patern);
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
57
key.c
Normal file
57
key.c
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* key.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: cchauvet <cchauvet@student.42angouleme.fr +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2023/01/09 18:35:27 by cchauvet #+# #+# */
|
||||||
|
/* Updated: 2023/01/09 20:38:31 by cchauvet ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
#include "solong.h"
|
||||||
|
|
||||||
|
static void ft_case_update(char *new_pos, char *player_pos)
|
||||||
|
{
|
||||||
|
*new_pos = 'P';
|
||||||
|
*player_pos = '0';
|
||||||
|
}
|
||||||
|
|
||||||
|
void ft_move(t_data *data, char direction)
|
||||||
|
{
|
||||||
|
size_t x;
|
||||||
|
size_t y;
|
||||||
|
char *new_pos;
|
||||||
|
|
||||||
|
x = data->map->player_pos[0];
|
||||||
|
y = data->map->player_pos[1];
|
||||||
|
if (direction == 'L')
|
||||||
|
new_pos = &data->map->patern[x - 1][y];
|
||||||
|
if (direction == 'U')
|
||||||
|
new_pos = &data->map->patern[x][y + 1];
|
||||||
|
if (direction == 'D')
|
||||||
|
new_pos = &data->map->patern[x][y - 1];
|
||||||
|
if (direction == 'R')
|
||||||
|
new_pos = &data->map->patern[x + 1][y];
|
||||||
|
if (*new_pos == 'C')
|
||||||
|
data->map->nb_collectable++;
|
||||||
|
if (*new_pos == '0' || *new_pos == 'C')
|
||||||
|
ft_case_update(new_pos, &data->map->patern[y][x]);
|
||||||
|
ft_draw_map(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
int ft_key(int keycode, t_data *data)
|
||||||
|
{
|
||||||
|
ft_printf("%d\n", keycode);
|
||||||
|
if (keycode == 65361)
|
||||||
|
ft_move(data, 'L');
|
||||||
|
else if (keycode == 65363)
|
||||||
|
ft_move(data, 'R');
|
||||||
|
else if (keycode == 65362)
|
||||||
|
ft_move(data, 'U');
|
||||||
|
else if (keycode == 65364)
|
||||||
|
ft_move(data, 'D');
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
|
|
@ -6,13 +6,13 @@
|
|||||||
# By: cchauvet <cchauvet@student.42angoulem +#+ +:+ +#+ #
|
# By: cchauvet <cchauvet@student.42angoulem +#+ +:+ +#+ #
|
||||||
# +#+#+#+#+#+ +#+ #
|
# +#+#+#+#+#+ +#+ #
|
||||||
# Created: 2022/09/27 08:39:27 by cchauvet #+# #+# #
|
# Created: 2022/09/27 08:39:27 by cchauvet #+# #+# #
|
||||||
# Updated: 2023/01/08 18:08:14 by cchauvet ### ########.fr #
|
# Updated: 2023/01/09 19:04:49 by cchauvet ### ########.fr #
|
||||||
# #
|
# #
|
||||||
# **************************************************************************** #
|
# **************************************************************************** #
|
||||||
|
|
||||||
CC = clang
|
CC = clang
|
||||||
|
|
||||||
SRCS = ft_freer.c ft_is_in.c ft_strchri.c ft_strcmp.c ft_strfjoin.c ft_strgen.c ft_strmerger.c ft_strndup.c ft_tabrealloc.c
|
SRCS = ft_freer.c ft_is_in.c ft_random_generator.c ft_strchri.c ft_strcmp.c ft_strfjoin.c ft_strgen.c ft_strmerger.c ft_strndup.c ft_tabrealloc.c
|
||||||
|
|
||||||
OBJS = $(SRCS:.c=.o)
|
OBJS = $(SRCS:.c=.o)
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
/* By: cchauvet <cchauvet@student.42angouleme.fr +#+ +:+ +#+ */
|
/* By: cchauvet <cchauvet@student.42angouleme.fr +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2023/01/04 14:03:10 by cchauvet #+# #+# */
|
/* Created: 2023/01/04 14:03:10 by cchauvet #+# #+# */
|
||||||
/* Updated: 2023/01/08 18:08:06 by cchauvet ### ########.fr */
|
/* Updated: 2023/01/09 19:05:08 by cchauvet ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -14,10 +14,14 @@
|
|||||||
# define EXTRA_H
|
# define EXTRA_H
|
||||||
# include <stdarg.h>
|
# include <stdarg.h>
|
||||||
# include <stdlib.h>
|
# include <stdlib.h>
|
||||||
|
# include <unistd.h>
|
||||||
|
# include <fcntl.h>
|
||||||
# include "../libft/libft.h"
|
# include "../libft/libft.h"
|
||||||
|
|
||||||
void ft_freer_tab_ultimate(size_t len, ...);
|
char *get_next_line(int fd);
|
||||||
void ft_freer_ultimate(size_t len, ...);
|
size_t ft_random_generator(size_t start, size_t stop);
|
||||||
|
void ft_freer_tab_ultimate(size_t len, ...);
|
||||||
|
void ft_freer_ultimate(size_t len, ...);
|
||||||
char *ft_strgen(char c, size_t len);
|
char *ft_strgen(char c, size_t len);
|
||||||
char *ft_strfjoin(char *s1, char *s2);
|
char *ft_strfjoin(char *s1, char *s2);
|
||||||
char *ft_strmerger(size_t arg_len, ...);
|
char *ft_strmerger(size_t arg_len, ...);
|
||||||
|
@ -6,15 +6,14 @@
|
|||||||
/* By: cchauvet <cchauvet@student.42angouleme.fr +#+ +:+ +#+ */
|
/* By: cchauvet <cchauvet@student.42angouleme.fr +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2023/01/08 15:01:40 by cchauvet #+# #+# */
|
/* Created: 2023/01/08 15:01:40 by cchauvet #+# #+# */
|
||||||
/* Updated: 2023/01/08 15:39:31 by cchauvet ### ########.fr */
|
/* Updated: 2023/01/09 17:57:52 by cchauvet ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
#include "solong.h"
|
#include "extra.h"
|
||||||
|
|
||||||
void ft_freer_ultimate(size_t len, ...)
|
void ft_freer_ultimate(size_t len, ...)
|
||||||
{
|
{
|
||||||
|
|
||||||
va_list va;
|
va_list va;
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
@ -32,9 +31,9 @@ void ft_freer_tab(char **tab)
|
|||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
i = 0;
|
|
||||||
if (tab == NULL)
|
if (tab == NULL)
|
||||||
return ;
|
return ;
|
||||||
|
i = 0;
|
||||||
while (tab[i] != NULL)
|
while (tab[i] != NULL)
|
||||||
{
|
{
|
||||||
free(tab[i]);
|
free(tab[i]);
|
||||||
|
38
libftx/extra/ft_random_generator.c
Normal file
38
libftx/extra/ft_random_generator.c
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* ft_random_generator.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: cchauvet <cchauvet@student.42angouleme.fr +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2023/01/09 18:43:27 by cchauvet #+# #+# */
|
||||||
|
/* Updated: 2023/01/09 20:09:33 by cchauvet ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
#include "extra.h"
|
||||||
|
|
||||||
|
size_t ft_random_generator(size_t start, size_t stop)
|
||||||
|
{
|
||||||
|
int fd;
|
||||||
|
char *line;
|
||||||
|
int sum;
|
||||||
|
size_t i;
|
||||||
|
|
||||||
|
fd = open("/dev/random", O_RDONLY);
|
||||||
|
if (fd == -1)
|
||||||
|
return (0);
|
||||||
|
line = ft_calloc(sizeof(char), 10001);
|
||||||
|
if (line == NULL)
|
||||||
|
return (0);
|
||||||
|
read(fd, line, 10000);
|
||||||
|
sum = 0;
|
||||||
|
i = 0;
|
||||||
|
while (i < ft_strlen(line))
|
||||||
|
{
|
||||||
|
sum += (unsigned int) line[i];
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
free(line);
|
||||||
|
return (sum % (stop - start));
|
||||||
|
}
|
@ -6,7 +6,7 @@
|
|||||||
/* By: cchauvet <cchauvet@student.42angouleme.fr +#+ +:+ +#+ */
|
/* By: cchauvet <cchauvet@student.42angouleme.fr +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2023/01/04 14:06:04 by cchauvet #+# #+# */
|
/* Created: 2023/01/04 14:06:04 by cchauvet #+# #+# */
|
||||||
/* Updated: 2023/01/08 11:13:17 by cchauvet ### ########.fr */
|
/* Updated: 2023/01/09 17:46:11 by cchauvet ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -18,7 +18,7 @@ char *ft_strfjoin(char *s1, char *s2)
|
|||||||
size_t y;
|
size_t y;
|
||||||
char *out;
|
char *out;
|
||||||
|
|
||||||
out = malloc((ft_strlen(s1) + ft_strlen(s2) + 1) * sizeof(char));
|
out = ft_calloc((ft_strlen(s1) + ft_strlen(s2) + 1), sizeof(char));
|
||||||
if (out == NULL)
|
if (out == NULL)
|
||||||
return (NULL);
|
return (NULL);
|
||||||
i = 0;
|
i = 0;
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
/* By: cchauvet <cchauvet@student.42angouleme.fr +#+ +:+ +#+ */
|
/* By: cchauvet <cchauvet@student.42angouleme.fr +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2023/01/08 12:32:52 by cchauvet #+# #+# */
|
/* Created: 2023/01/08 12:32:52 by cchauvet #+# #+# */
|
||||||
/* Updated: 2023/01/08 14:06:32 by cchauvet ### ########.fr */
|
/* Updated: 2023/01/09 18:04:31 by cchauvet ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -17,7 +17,7 @@ char *ft_strgen(char c, size_t len)
|
|||||||
char *out;
|
char *out;
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
out = malloc((len + 1) * sizeof(char));
|
out = ft_calloc((len + 1), sizeof(char));
|
||||||
if (out == NULL)
|
if (out == NULL)
|
||||||
return (NULL);
|
return (NULL);
|
||||||
i = 0;
|
i = 0;
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
/* By: cchauvet <cchauvet@student.42angouleme.fr +#+ +:+ +#+ */
|
/* By: cchauvet <cchauvet@student.42angouleme.fr +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2023/01/05 18:58:48 by cchauvet #+# #+# */
|
/* Created: 2023/01/05 18:58:48 by cchauvet #+# #+# */
|
||||||
/* Updated: 2023/01/05 18:58:59 by cchauvet ### ########.fr */
|
/* Updated: 2023/01/09 17:45:44 by cchauvet ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -17,7 +17,7 @@ char **ft_tabrealloc(char **tab, size_t current_size, size_t new_size)
|
|||||||
char **new;
|
char **new;
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
new = malloc(new_size * sizeof(char *));
|
new = ft_calloc(new_size, sizeof(char *));
|
||||||
if (new == NULL)
|
if (new == NULL)
|
||||||
return (NULL);
|
return (NULL);
|
||||||
i = 0;
|
i = 0;
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
/* By: cchauvet <cchauvet@student.42angoulem +#+ +:+ +#+ */
|
/* By: cchauvet <cchauvet@student.42angoulem +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2022/09/29 13:49:45 by cchauvet #+# #+# */
|
/* Created: 2022/09/29 13:49:45 by cchauvet #+# #+# */
|
||||||
/* Updated: 2022/09/29 18:07:15 by cchauvet ### ########.fr */
|
/* Updated: 2023/01/09 13:51:09 by cchauvet ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
/* By: cchauvet <cchauvet@student.42angoulem +#+ +:+ +#+ */
|
/* By: cchauvet <cchauvet@student.42angoulem +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2022/09/26 14:47:54 by cchauvet #+# #+# */
|
/* Created: 2022/09/26 14:47:54 by cchauvet #+# #+# */
|
||||||
/* Updated: 2023/01/08 18:07:49 by cchauvet ### ########.fr */
|
/* Updated: 2023/01/09 19:05:21 by cchauvet ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
int ft_printf(const char *format, ...);
|
int ft_printf(const char *format, ...);
|
||||||
char *get_next_line(int fd);
|
char *get_next_line(int fd);
|
||||||
|
size_t ft_random_generator(size_t start, size_t stop);
|
||||||
void ft_freer_tab_ultimate(size_t len, ...);
|
void ft_freer_tab_ultimate(size_t len, ...);
|
||||||
void ft_freer_ultimate(size_t len, ...);
|
void ft_freer_ultimate(size_t len, ...);
|
||||||
char *ft_strgen(char c, size_t len);
|
char *ft_strgen(char c, size_t len);
|
||||||
|
33
main.c
33
main.c
@ -6,7 +6,7 @@
|
|||||||
/* By: cchauvet <cchauvet@student.42angouleme.fr +#+ +:+ +#+ */
|
/* By: cchauvet <cchauvet@student.42angouleme.fr +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2022/12/12 17:20:17 by cchauvet #+# #+# */
|
/* Created: 2022/12/12 17:20:17 by cchauvet #+# #+# */
|
||||||
/* Updated: 2023/01/08 18:00:03 by cchauvet ### ########.fr */
|
/* Updated: 2023/01/09 20:39:28 by cchauvet ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -14,28 +14,31 @@
|
|||||||
|
|
||||||
int ft_initialised(char *path)
|
int ft_initialised(char *path)
|
||||||
{
|
{
|
||||||
t_data data;
|
t_data *data;
|
||||||
t_map *map;
|
t_map *map;
|
||||||
|
|
||||||
|
data = ft_calloc(1, sizeof(t_data));
|
||||||
|
if (data == NULL)
|
||||||
|
return (1);
|
||||||
map = ft_getmap(path);
|
map = ft_getmap(path);
|
||||||
if (map == NULL)
|
if (map == NULL)
|
||||||
{
|
{
|
||||||
ft_printf("Map error\n");
|
ft_printf("Map error\n");
|
||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
if (ft_color_changer(&data))
|
data->map = map;
|
||||||
{
|
data->mlx = mlx_init();
|
||||||
ft_printf("Memory error");
|
data->window = mlx_new_window(data->mlx, WINDOW_SIZE, WINDOW_SIZE, "solong");
|
||||||
ft_freer_tab_ultimate(1, map);
|
ft_draw_map(data);
|
||||||
return (1);
|
mlx_key_hook(data->window, ft_key, data);
|
||||||
}
|
mlx_loop(data->mlx);
|
||||||
data.mlx = mlx_init();
|
ft_freer_tab_ultimate(1, map->patern);
|
||||||
data.window = mlx_new_window(data.mlx, WINDOW_SIZE, WINDOW_SIZE, "");
|
mlx_destroy_window(data->mlx, data->window);
|
||||||
ft_draw_map(&data, map);
|
mlx_destroy_display(data->mlx);
|
||||||
mlx_loop(data.mlx);
|
free(data->mlx);
|
||||||
mlx_destroy_window(data.mlx, data.window);
|
ft_freer_ultimate(5, data->bcolor, data->pcolor, data->ccolor, data->wcolor, data->ecolor);
|
||||||
mlx_destroy_display(data.mlx);
|
free(data);
|
||||||
free(data.mlx);
|
free(map);
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
38
map.c
38
map.c
@ -6,7 +6,7 @@
|
|||||||
/* By: cchauvet <cchauvet@student.42angouleme.fr +#+ +:+ +#+ */
|
/* By: cchauvet <cchauvet@student.42angouleme.fr +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2023/01/05 13:51:49 by cchauvet #+# #+# */
|
/* Created: 2023/01/05 13:51:49 by cchauvet #+# #+# */
|
||||||
/* Updated: 2023/01/08 14:48:51 by cchauvet ### ########.fr */
|
/* Updated: 2023/01/09 19:56:25 by cchauvet ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -20,7 +20,7 @@ char **ft_readfile(char *path)
|
|||||||
|
|
||||||
fd = open(path, O_RDONLY);
|
fd = open(path, O_RDONLY);
|
||||||
nb_line = 1;
|
nb_line = 1;
|
||||||
map = malloc(sizeof(char *) * 2);
|
map = ft_calloc(sizeof(char *), 2);
|
||||||
if (map == NULL)
|
if (map == NULL)
|
||||||
return (NULL);
|
return (NULL);
|
||||||
map[0] = get_next_line(fd);
|
map[0] = get_next_line(fd);
|
||||||
@ -36,15 +36,40 @@ char **ft_readfile(char *path)
|
|||||||
return (map);
|
return (map);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ft_fill_pos(t_data *data)
|
||||||
|
{
|
||||||
|
size_t x;
|
||||||
|
size_t y;
|
||||||
|
|
||||||
|
y = 0;
|
||||||
|
while (data->map->patern[y] != NULL)
|
||||||
|
{
|
||||||
|
x = 0;
|
||||||
|
while (x < ft_strlen(data->map->patern[y]))
|
||||||
|
{
|
||||||
|
if (data->map->patern[y][x] == 'P')
|
||||||
|
{
|
||||||
|
data->map->player_pos[0] = x;
|
||||||
|
data->map->player_pos[1] = y;
|
||||||
|
}
|
||||||
|
if (data->map->patern[y][x] == 'E')
|
||||||
|
{
|
||||||
|
data->map->exit_pos[0] = x;
|
||||||
|
data->map->exit_pos[1] = y;
|
||||||
|
}
|
||||||
|
x++;
|
||||||
|
}
|
||||||
|
y++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
t_map *ft_getmap(char *path)
|
t_map *ft_getmap(char *path)
|
||||||
{
|
{
|
||||||
t_map *map;
|
t_map *map;
|
||||||
|
|
||||||
map = malloc(sizeof(t_map));
|
map = ft_calloc(sizeof(t_map), 1);
|
||||||
if (map == NULL)
|
if (map == NULL)
|
||||||
return (NULL);
|
return (NULL);
|
||||||
map->exit[2] = 0;
|
|
||||||
map->player_pos[2] = 0;
|
|
||||||
map->patern = ft_readfile(path);
|
map->patern = ft_readfile(path);
|
||||||
if (ft_map_is_correct(map) == 0)
|
if (ft_map_is_correct(map) == 0)
|
||||||
return (NULL);
|
return (NULL);
|
||||||
@ -90,7 +115,7 @@ char **ft_get_player_map(t_map map)
|
|||||||
size_t y;
|
size_t y;
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
player_map = malloc(RENDER_DISTANCE * 2 + 2);
|
player_map = ft_calloc(RENDER_DISTANCE * 2 + 2, sizeof(char *));
|
||||||
if (player_map == NULL)
|
if (player_map == NULL)
|
||||||
return (NULL);
|
return (NULL);
|
||||||
i = 0;
|
i = 0;
|
||||||
@ -100,6 +125,7 @@ char **ft_get_player_map(t_map map)
|
|||||||
player_map[y] = ft_strgen('0', RENDER_DISTANCE * 2 + 1);
|
player_map[y] = ft_strgen('0', RENDER_DISTANCE * 2 + 1);
|
||||||
if (map.player_pos[1] + y >= RENDER_DISTANCE && map.patern[i] != NULL)
|
if (map.player_pos[1] + y >= RENDER_DISTANCE && map.patern[i] != NULL)
|
||||||
{
|
{
|
||||||
|
free(player_map[y]);
|
||||||
player_map[y] = ft_get_line(map.patern[i], map.player_pos[0]);
|
player_map[y] = ft_get_line(map.patern[i], map.player_pos[0]);
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
37
parsing.c
37
parsing.c
@ -6,7 +6,7 @@
|
|||||||
/* By: cchauvet <cchauvet@student.42angouleme.fr +#+ +:+ +#+ */
|
/* By: cchauvet <cchauvet@student.42angouleme.fr +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2023/01/05 20:14:44 by cchauvet #+# #+# */
|
/* Created: 2023/01/05 20:14:44 by cchauvet #+# #+# */
|
||||||
/* Updated: 2023/01/08 12:18:52 by cchauvet ### ########.fr */
|
/* Updated: 2023/01/09 19:52:33 by cchauvet ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -59,29 +59,28 @@ int ft_test_map_content1(t_map *map)
|
|||||||
|
|
||||||
int ft_test_map_content2(t_map *map)
|
int ft_test_map_content2(t_map *map)
|
||||||
{
|
{
|
||||||
ssize_t cord[2];
|
size_t x;
|
||||||
|
size_t y;
|
||||||
|
size_t test1;
|
||||||
|
size_t test2;
|
||||||
|
|
||||||
cord[1] = -1;
|
test1 = 0;
|
||||||
while ((size_t) ++cord[1] < map->y_len)
|
test2 = 0;
|
||||||
|
y = 0;
|
||||||
|
while (y < map->y_len)
|
||||||
{
|
{
|
||||||
cord[0] = -1;
|
x = 0;
|
||||||
while ((size_t) ++cord[0] < map->x_len)
|
while (x < map->x_len)
|
||||||
{
|
{
|
||||||
if (map->patern[cord[1]][cord[0]] == 'E')
|
if (map->patern[y][x] == 'E')
|
||||||
{
|
test1++;
|
||||||
map->exit[0] = cord[0];
|
else if (map->patern[y][x] == 'P')
|
||||||
map->exit[1] = cord[1];
|
test2++;
|
||||||
map->exit[2]++;
|
x++;
|
||||||
}
|
|
||||||
else if (map->patern[cord[1]][cord[0]] == 'P')
|
|
||||||
{
|
|
||||||
map->player_pos[0] = cord[0];
|
|
||||||
map->player_pos[1] = cord[1];
|
|
||||||
map->player_pos[2]++;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
y++;
|
||||||
}
|
}
|
||||||
if (map->player_pos[2] == 1 && map->exit[2] == 1)
|
if (test1 == 1 && test2 == 1)
|
||||||
return (1);
|
return (1);
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
13
solong.h
13
solong.h
@ -6,7 +6,7 @@
|
|||||||
/* By: cchauvet <cchauvet@student.42angouleme.fr +#+ +:+ +#+ */
|
/* By: cchauvet <cchauvet@student.42angouleme.fr +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2023/01/04 16:20:03 by cchauvet #+# #+# */
|
/* Created: 2023/01/04 16:20:03 by cchauvet #+# #+# */
|
||||||
/* Updated: 2023/01/08 18:07:30 by cchauvet ### ########.fr */
|
/* Updated: 2023/01/09 20:36:28 by cchauvet ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -37,8 +37,8 @@ typedef struct s_map
|
|||||||
size_t y_len;
|
size_t y_len;
|
||||||
size_t nb_collectable;
|
size_t nb_collectable;
|
||||||
char **patern;
|
char **patern;
|
||||||
size_t player_pos[3];
|
size_t player_pos[2];
|
||||||
size_t exit[3];
|
size_t exit_pos[2];
|
||||||
} t_map;
|
} t_map;
|
||||||
|
|
||||||
typedef struct s_data
|
typedef struct s_data
|
||||||
@ -50,10 +50,11 @@ typedef struct s_data
|
|||||||
char *ccolor;
|
char *ccolor;
|
||||||
char *wcolor;
|
char *wcolor;
|
||||||
char *ecolor;
|
char *ecolor;
|
||||||
size_t size;
|
t_map *map;
|
||||||
size_t nb_color_swap;
|
|
||||||
} t_data;
|
} t_data;
|
||||||
|
|
||||||
|
int ft_key(int key, t_data *data);
|
||||||
|
void ft_fill_pos(t_data *data);
|
||||||
char *name_generator(t_square square);
|
char *name_generator(t_square square);
|
||||||
t_map *ft_getmap(char *path);
|
t_map *ft_getmap(char *path);
|
||||||
char *ft_gen_xpm_file(t_square);
|
char *ft_gen_xpm_file(t_square);
|
||||||
@ -62,7 +63,7 @@ char **ft_readfile(char *path);
|
|||||||
int ft_map_is_correct(t_map *map);
|
int ft_map_is_correct(t_map *map);
|
||||||
int ft_gen_assets(void);
|
int ft_gen_assets(void);
|
||||||
char **ft_get_player_map(t_map map);
|
char **ft_get_player_map(t_map map);
|
||||||
int ft_draw_map(t_data *data, t_map *map);
|
int ft_draw_map(t_data *data);
|
||||||
char *name_generator(t_square square);
|
char *name_generator(t_square square);
|
||||||
int ft_color_changer(t_data *data);
|
int ft_color_changer(t_data *data);
|
||||||
#endif
|
#endif
|
||||||
|
24
xpm.c
24
xpm.c
@ -6,37 +6,37 @@
|
|||||||
/* By: cchauvet <cchauvet@student.42angouleme.fr +#+ +:+ +#+ */
|
/* By: cchauvet <cchauvet@student.42angouleme.fr +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2023/01/04 13:53:03 by cchauvet #+# #+# */
|
/* Created: 2023/01/04 13:53:03 by cchauvet #+# #+# */
|
||||||
/* Updated: 2023/01/08 17:06:34 by cchauvet ### ########.fr */
|
/* Updated: 2023/01/09 13:14:06 by cchauvet ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
#include "solong.h"
|
#include "solong.h"
|
||||||
|
|
||||||
static char *ft_square(void)
|
static char *ft_square(size_t size)
|
||||||
{
|
{
|
||||||
char *map;
|
char *map;
|
||||||
size_t x;
|
size_t x;
|
||||||
size_t y;
|
size_t y;
|
||||||
|
|
||||||
map = malloc(((CASE_SIZE + 4) * CASE_SIZE) * sizeof(char));
|
map = malloc(((size + 4) * size) * sizeof(char));
|
||||||
if (map == NULL)
|
if (map == NULL)
|
||||||
return (map);
|
return (map);
|
||||||
y = 0;
|
y = 0;
|
||||||
while (y < CASE_SIZE)
|
while (y < size)
|
||||||
{
|
{
|
||||||
map[(CASE_SIZE + 4) * y] = '"';
|
map[(size + 4) * y] = '"';
|
||||||
x = 0;
|
x = 0;
|
||||||
while (x < CASE_SIZE)
|
while (x < size)
|
||||||
{
|
{
|
||||||
map[y * (CASE_SIZE + 4) + x + 1] = 'a';
|
map[y * (size + 4) + x + 1] = 'a';
|
||||||
x++;
|
x++;
|
||||||
}
|
}
|
||||||
map[(CASE_SIZE + 4) * y + CASE_SIZE + 1] = '"';
|
map[(size + 4) * y + size + 1] = '"';
|
||||||
map[(CASE_SIZE + 4) * y + CASE_SIZE + 2] = ',';
|
map[(size + 4) * y + size + 2] = ',';
|
||||||
map[(CASE_SIZE + 4) * y + CASE_SIZE + 3] = '\n';
|
map[(size + 4) * y + size + 3] = '\n';
|
||||||
y++;
|
y++;
|
||||||
}
|
}
|
||||||
map[(CASE_SIZE + 4) * CASE_SIZE - 2] = '\0';
|
map[(size + 4) * size - 2] = '\0';
|
||||||
return (map);
|
return (map);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -78,7 +78,7 @@ static char *ft_gen_xpm_content(t_square square)
|
|||||||
free(content);
|
free(content);
|
||||||
if (temp == NULL)
|
if (temp == NULL)
|
||||||
return (NULL);
|
return (NULL);
|
||||||
map = ft_square();
|
map = ft_square(square.size);
|
||||||
if (map == NULL)
|
if (map == NULL)
|
||||||
{
|
{
|
||||||
free(temp);
|
free(temp);
|
||||||
|
Loading…
Reference in New Issue
Block a user