mirror of
https://github.com/LucasCodeur/alcu.git
synced 2026-04-28 17:44:34 +02:00
end of project
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -52,9 +52,11 @@ $(LIBFT):
|
||||
|
||||
clean:
|
||||
rm -rf $(P_OBJ)
|
||||
$(MAKE) -C $(P_LIBFT) clean
|
||||
|
||||
fclean: clean
|
||||
rm -f $(NAME)
|
||||
$(MAKE) -C $(P_LIBFT) fclean
|
||||
|
||||
re: fclean all
|
||||
|
||||
|
||||
@@ -1,716 +0,0 @@
|
||||
[
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-MMD",
|
||||
"-Iinc/",
|
||||
"-Ilibft/",
|
||||
"-c",
|
||||
"src/main.c",
|
||||
"-o",
|
||||
".obj/main.o"
|
||||
],
|
||||
"file": "src/main.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-MMD",
|
||||
"-Iinc/",
|
||||
"-Ilibft/",
|
||||
"-c",
|
||||
"src/fill_array.c",
|
||||
"-o",
|
||||
".obj/fill_array.o"
|
||||
],
|
||||
"file": "src/fill_array.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-MMD",
|
||||
"-Iinc/",
|
||||
"-Ilibft/",
|
||||
"-c",
|
||||
"src/check_input.c",
|
||||
"-o",
|
||||
".obj/check_input.o"
|
||||
],
|
||||
"file": "src/check_input.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-MMD",
|
||||
"-Iinc/",
|
||||
"-Ilibft/",
|
||||
"-c",
|
||||
"src/get_next_line.c",
|
||||
"-o",
|
||||
".obj/get_next_line.o"
|
||||
],
|
||||
"file": "src/get_next_line.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-MMD",
|
||||
"-Iinc/",
|
||||
"-Ilibft/",
|
||||
"-c",
|
||||
"src/print_board.c",
|
||||
"-o",
|
||||
".obj/print_board.o"
|
||||
],
|
||||
"file": "src/print_board.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-MMD",
|
||||
"-Iinc/",
|
||||
"-Ilibft/",
|
||||
"-c",
|
||||
"src/ai.c",
|
||||
"-o",
|
||||
".obj/ai.o"
|
||||
],
|
||||
"file": "src/ai.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-MMD",
|
||||
"-Iinc/",
|
||||
"-Ilibft/",
|
||||
"-c",
|
||||
"src/game.c",
|
||||
"-o",
|
||||
".obj/game.o"
|
||||
],
|
||||
"file": "src/game.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-MMD",
|
||||
"-Iinc/",
|
||||
"-Ilibft/",
|
||||
"-c",
|
||||
"src/vector.c",
|
||||
"-o",
|
||||
".obj/vector.o"
|
||||
],
|
||||
"file": "src/vector.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_isdigit.o",
|
||||
"-c",
|
||||
"ft_isdigit.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_isdigit.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_isalpha.o",
|
||||
"-c",
|
||||
"ft_isalpha.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_isalpha.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_isalnum.o",
|
||||
"-c",
|
||||
"ft_isalnum.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_isalnum.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_isascii.o",
|
||||
"-c",
|
||||
"ft_isascii.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_isascii.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_isprint.o",
|
||||
"-c",
|
||||
"ft_isprint.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_isprint.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_strlen.o",
|
||||
"-c",
|
||||
"ft_strlen.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_strlen.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_memset.o",
|
||||
"-c",
|
||||
"ft_memset.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_memset.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_bzero.o",
|
||||
"-c",
|
||||
"ft_bzero.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_bzero.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_memcpy.o",
|
||||
"-c",
|
||||
"ft_memcpy.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_memcpy.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_memmove.o",
|
||||
"-c",
|
||||
"ft_memmove.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_memmove.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_strlcpy.o",
|
||||
"-c",
|
||||
"ft_strlcpy.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_strlcpy.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_strlcat.o",
|
||||
"-c",
|
||||
"ft_strlcat.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_strlcat.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_toupper.o",
|
||||
"-c",
|
||||
"ft_toupper.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_toupper.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_tolower.o",
|
||||
"-c",
|
||||
"ft_tolower.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_tolower.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_strchr.o",
|
||||
"-c",
|
||||
"ft_strchr.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_strchr.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_strrchr.o",
|
||||
"-c",
|
||||
"ft_strrchr.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_strrchr.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_strncmp.o",
|
||||
"-c",
|
||||
"ft_strncmp.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_strncmp.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_memcmp.o",
|
||||
"-c",
|
||||
"ft_memcmp.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_memcmp.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_memchr.o",
|
||||
"-c",
|
||||
"ft_memchr.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_memchr.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_strnstr.o",
|
||||
"-c",
|
||||
"ft_strnstr.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_strnstr.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_atoi.o",
|
||||
"-c",
|
||||
"ft_atoi.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_atoi.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_calloc.o",
|
||||
"-c",
|
||||
"ft_calloc.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_calloc.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_strdup.o",
|
||||
"-c",
|
||||
"ft_strdup.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_strdup.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_substr.o",
|
||||
"-c",
|
||||
"ft_substr.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_substr.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_strjoin.o",
|
||||
"-c",
|
||||
"ft_strjoin.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_strjoin.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_strtrim.o",
|
||||
"-c",
|
||||
"ft_strtrim.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_strtrim.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_split.o",
|
||||
"-c",
|
||||
"ft_split.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_split.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_itoa.o",
|
||||
"-c",
|
||||
"ft_itoa.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_itoa.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_strmapi.o",
|
||||
"-c",
|
||||
"ft_strmapi.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_strmapi.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_striteri.o",
|
||||
"-c",
|
||||
"ft_striteri.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_striteri.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_putchar_fd.o",
|
||||
"-c",
|
||||
"ft_putchar_fd.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_putchar_fd.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_putstr_fd.o",
|
||||
"-c",
|
||||
"ft_putstr_fd.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_putstr_fd.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_putendl_fd.o",
|
||||
"-c",
|
||||
"ft_putendl_fd.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_putendl_fd.c"
|
||||
},
|
||||
{
|
||||
"directory": "/home/lud-adam/Documents/rush/libft",
|
||||
"arguments": [
|
||||
"cc",
|
||||
"-MMD",
|
||||
"-MP",
|
||||
"-o",
|
||||
"ft_putnbr_fd.o",
|
||||
"-c",
|
||||
"ft_putnbr_fd.c",
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
"-Ilibft.h"
|
||||
],
|
||||
"file": "ft_putnbr_fd.c"
|
||||
}
|
||||
]
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
+6
-6
@@ -11,19 +11,19 @@
|
||||
/* ************************************************************************** */
|
||||
|
||||
#ifndef ALCU_H
|
||||
# define ALCU_H
|
||||
#define ALCU_H
|
||||
|
||||
#include "vector.h"
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdbool.h>
|
||||
#include <stddef.h>
|
||||
|
||||
char *read_file(int fd);
|
||||
bool check_input(t_vector* lines);
|
||||
bool check_input(t_vector *lines);
|
||||
void print_board(int *game_state, size_t nb_line);
|
||||
bool fill_vector(t_vector* lines, int fd);
|
||||
bool fill_vector(t_vector *lines, int fd);
|
||||
int ai(int *gamestate, int nb_line);
|
||||
void game(int *lines, int size);
|
||||
int* fill_array(t_vector* lines, int* size);
|
||||
bool game(int *lines, int size);
|
||||
int *fill_array(t_vector *lines, int *size);
|
||||
|
||||
#endif
|
||||
|
||||
+18
-15
@@ -11,17 +11,14 @@
|
||||
/* ************************************************************************** */
|
||||
|
||||
#ifndef VECTOR_H
|
||||
# define VECTOR_H
|
||||
#define VECTOR_H
|
||||
|
||||
#include <stdbool.h>
|
||||
#define VECTOR_INIT_CAPACITY 6
|
||||
#define UNDEFINE -1
|
||||
#define SUCCESS 0
|
||||
|
||||
#define VECTOR_INIT(vec) t_vector vec;\
|
||||
vector_init(&vec)
|
||||
|
||||
typedef struct s_vector_list
|
||||
{
|
||||
typedef struct s_vector_list {
|
||||
void **items;
|
||||
int capacity;
|
||||
int total;
|
||||
@@ -29,18 +26,24 @@ typedef struct s_vector_list
|
||||
|
||||
typedef struct s_vector t_vector;
|
||||
|
||||
struct s_vector
|
||||
{
|
||||
struct s_vector {
|
||||
t_vector_list vector_list; /**< List to store vector elements */
|
||||
int (*pfVectorTotal)(t_vector *); /**< Retrieves the total number of elements in the vector */
|
||||
int (*pfVectorResize)(t_vector *, int); /**< Resizes the vector to a new capacity */
|
||||
int (*pfVectorTotal)(
|
||||
t_vector *); /**< Retrieves the total number of elements in the vector */
|
||||
int (*pfVectorResize)(t_vector *,
|
||||
int); /**< Resizes the vector to a new capacity */
|
||||
int (*pfVectorAdd)(t_vector *, void *); /**< Adds an element to the vector */
|
||||
int (*pfVectorSet)(t_vector *, int, void *); /**< Sets an element at a specific index in the vector */
|
||||
void *(*pfVectorGet)(t_vector *, int); /**< Retrieves an element from the vector */
|
||||
int (*pfVectorDelete)(t_vector *, int); /**< Deletes an element from the vector */
|
||||
int (*pfVectorFree)(t_vector *); /**< Frees the memory allocated for the vector */
|
||||
int (*pfVectorSet)(
|
||||
t_vector *, int,
|
||||
void *); /**< Sets an element at a specific index in the vector */
|
||||
void *(*pfVectorGet)(t_vector *,
|
||||
int); /**< Retrieves an element from the vector */
|
||||
int (*pfVectorDelete)(t_vector *,
|
||||
int); /**< Deletes an element from the vector */
|
||||
int (*pfVectorFree)(
|
||||
t_vector *); /**< Frees the memory allocated for the vector */
|
||||
};
|
||||
|
||||
void vector_init(t_vector* v);
|
||||
bool vector_init(t_vector *v);
|
||||
|
||||
#endif
|
||||
|
||||
-15
@@ -1,15 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ $# -lt 2 ]; then
|
||||
echo "usage: bash map_gen.sh [size] [range]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
unset var
|
||||
for i in $( seq 1 $1 )
|
||||
do
|
||||
var+="\n$(( RANDOM % $2 + 1))"
|
||||
done
|
||||
var="${var}\n";
|
||||
echo -e $var | tail -n +2
|
||||
|
||||
+19
-13
@@ -15,25 +15,32 @@
|
||||
#include "get_next_line.h"
|
||||
|
||||
#include "alcu.h"
|
||||
#include <stdbool.h>
|
||||
|
||||
bool fill_vector(t_vector* lines, int fd)
|
||||
{
|
||||
bool fill_vector(t_vector *lines, int fd) {
|
||||
char *line;
|
||||
|
||||
line = get_next_line(fd);
|
||||
while (line != NULL)
|
||||
{
|
||||
lines->pfVectorAdd(lines, line);
|
||||
if (!line)
|
||||
return (false);
|
||||
while (line != NULL) {
|
||||
if (!ft_strncmp("\n", line, ft_strlen(line))) {
|
||||
free(line);
|
||||
return (true);
|
||||
}
|
||||
if (lines->pfVectorAdd(lines, line) == UNDEFINE) {
|
||||
free(line);
|
||||
return (false);
|
||||
}
|
||||
line = get_next_line(fd);
|
||||
}
|
||||
return (true);
|
||||
return (false);
|
||||
}
|
||||
|
||||
int* fill_array(t_vector* lines, int* size)
|
||||
{
|
||||
int* res;
|
||||
int *fill_array(t_vector *lines, int *size) {
|
||||
int *res;
|
||||
int i;
|
||||
char* line;
|
||||
char *line;
|
||||
|
||||
i = 0;
|
||||
line = NULL;
|
||||
@@ -41,9 +48,8 @@ int* fill_array(t_vector* lines, int* size)
|
||||
res = malloc(sizeof(int) * *size);
|
||||
if (!res)
|
||||
return (NULL);
|
||||
while (i < *size)
|
||||
{
|
||||
line = (char*)lines->pfVectorGet(lines, i);
|
||||
while (i < *size) {
|
||||
line = (char *)lines->pfVectorGet(lines, i);
|
||||
res[i] = ft_atoi(line);
|
||||
i++;
|
||||
}
|
||||
|
||||
+27
-38
@@ -14,8 +14,7 @@
|
||||
#include "alcu.h"
|
||||
#include "get_next_line.h"
|
||||
|
||||
static int check_char_int(char *str)
|
||||
{
|
||||
static int check_char_int(char *str) {
|
||||
int i;
|
||||
|
||||
i = -1;
|
||||
@@ -25,68 +24,57 @@ static int check_char_int(char *str)
|
||||
return (1);
|
||||
}
|
||||
|
||||
static int play_choice(int *line, int choice)
|
||||
{
|
||||
if (choice > 0 && choice < 4)
|
||||
{
|
||||
if (choice > *line)
|
||||
{
|
||||
static int play_choice(int *line, int choice) {
|
||||
if (choice > 0 && choice < 4) {
|
||||
if (choice > *line) {
|
||||
ft_putstr_fd("-\nInvalid choice\n", 1);
|
||||
return (0);
|
||||
}
|
||||
*line -= choice;
|
||||
return (1);
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
ft_putstr_fd("-\nInvalid choice\n", 1);
|
||||
return (0);
|
||||
}
|
||||
}
|
||||
|
||||
static void player_turn(int *line)
|
||||
{
|
||||
static bool player_turn(int *line) {
|
||||
char *temp;
|
||||
int choice;
|
||||
|
||||
while (1)
|
||||
{
|
||||
while (1) {
|
||||
ft_putstr_fd("\nPlease choose between 1 and 3 items\n", 1);
|
||||
temp = get_next_line(0);
|
||||
if (temp && ft_strlen(temp) > 0)
|
||||
{
|
||||
if (!check_char_int(temp))
|
||||
{
|
||||
if (!temp)
|
||||
return (false);
|
||||
if (temp && ft_strlen(temp) > 0) {
|
||||
if (!check_char_int(temp)) {
|
||||
free(temp);
|
||||
continue ;
|
||||
continue;
|
||||
}
|
||||
choice = ft_atoi(temp);
|
||||
if (play_choice(line, choice))
|
||||
break ;
|
||||
}
|
||||
else
|
||||
break;
|
||||
} else
|
||||
ft_putstr_fd("-\nInvalid choice\n", 1);
|
||||
if (temp)
|
||||
free(temp);
|
||||
}
|
||||
if (temp)
|
||||
free(temp);
|
||||
return (true);
|
||||
}
|
||||
|
||||
static void play_turns(int *lines, int i, int *ai_turn, int size)
|
||||
{
|
||||
static bool play_turns(int *lines, int i, int *ai_turn, int size) {
|
||||
int choice;
|
||||
|
||||
while (lines[i] != 0)
|
||||
{
|
||||
while (lines[i] != 0) {
|
||||
ft_putstr_fd("\n------------------------------\n", 1);
|
||||
if (!*ai_turn)
|
||||
{
|
||||
if (!*ai_turn) {
|
||||
print_board(lines, size);
|
||||
player_turn(&lines[i]);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (player_turn(&lines[i]) == false)
|
||||
return (false);
|
||||
} else {
|
||||
print_board(lines, size);
|
||||
ft_putstr_fd("\n", 1);
|
||||
choice = ai(lines, size);
|
||||
@@ -97,22 +85,23 @@ static void play_turns(int *lines, int i, int *ai_turn, int size)
|
||||
}
|
||||
*ai_turn = *ai_turn == 0;
|
||||
}
|
||||
return (true);
|
||||
}
|
||||
|
||||
void game(int *lines, int size)
|
||||
{
|
||||
bool game(int *lines, int size) {
|
||||
int ai_turn;
|
||||
int i;
|
||||
|
||||
ai_turn = 1;
|
||||
i = size - 1;
|
||||
while (i >= 0)
|
||||
{
|
||||
play_turns(lines, i, &ai_turn, size);
|
||||
while (i >= 0) {
|
||||
if (play_turns(lines, i, &ai_turn, size) == false)
|
||||
return (false);
|
||||
i--;
|
||||
}
|
||||
if (!ai_turn)
|
||||
ft_putstr_fd("AI win ! It will replace you\n", 1);
|
||||
else
|
||||
ft_putstr_fd("You win ! Well done\n", 1);
|
||||
return (true);
|
||||
}
|
||||
|
||||
+18
-31
@@ -10,11 +10,10 @@
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "../libft/libft.h"
|
||||
#include "get_next_line.h"
|
||||
#include "../libft/libft.h"
|
||||
|
||||
size_t ft_strlen_with_c(char *str, char c)
|
||||
{
|
||||
size_t ft_strlen_with_c(char *str, char c) {
|
||||
size_t i;
|
||||
|
||||
i = 0;
|
||||
@@ -25,15 +24,13 @@ size_t ft_strlen_with_c(char *str, char c)
|
||||
return (i);
|
||||
}
|
||||
|
||||
size_t detect_newline(char *str)
|
||||
{
|
||||
size_t detect_newline(char *str) {
|
||||
size_t i;
|
||||
|
||||
i = 0;
|
||||
if (!str)
|
||||
return (0);
|
||||
while (str[i])
|
||||
{
|
||||
while (str[i]) {
|
||||
if (str[i] == '\n')
|
||||
return (1);
|
||||
i++;
|
||||
@@ -41,20 +38,17 @@ size_t detect_newline(char *str)
|
||||
return (0);
|
||||
}
|
||||
|
||||
static void fill_line(char *line, char *c_remaining, char *src, size_t *index)
|
||||
{
|
||||
static void fill_line(char *line, char *c_remaining, char *src, size_t *index) {
|
||||
size_t i;
|
||||
size_t j;
|
||||
|
||||
i = 0;
|
||||
j = 0;
|
||||
while (c_remaining && c_remaining[i])
|
||||
{
|
||||
while (c_remaining && c_remaining[i]) {
|
||||
line[i] = c_remaining[i];
|
||||
i++;
|
||||
}
|
||||
while (src[j] && src[j] != '\n')
|
||||
{
|
||||
while (src[j] && src[j] != '\n') {
|
||||
line[i + j] = src[j];
|
||||
src[j] = 0;
|
||||
j++;
|
||||
@@ -64,18 +58,16 @@ static void fill_line(char *line, char *c_remaining, char *src, size_t *index)
|
||||
*index = j;
|
||||
}
|
||||
|
||||
char *build_line(char *src, char *c_remaining, size_t *index)
|
||||
{
|
||||
char *build_line(char *src, char *c_remaining, size_t *index) {
|
||||
char *line;
|
||||
size_t size;
|
||||
size_t is_jump;
|
||||
|
||||
is_jump = detect_newline(src);
|
||||
size = ft_strlen_with_c(src, '\n') + ft_strlen_with_c(c_remaining, '\0')
|
||||
+ is_jump + 1;
|
||||
size = ft_strlen_with_c(src, '\n') + ft_strlen_with_c(c_remaining, '\0') +
|
||||
is_jump + 1;
|
||||
line = ft_calloc(size, sizeof(char));
|
||||
if (!line)
|
||||
{
|
||||
if (!line) {
|
||||
free(c_remaining);
|
||||
return (NULL);
|
||||
}
|
||||
@@ -87,16 +79,14 @@ char *build_line(char *src, char *c_remaining, size_t *index)
|
||||
return (line);
|
||||
}
|
||||
|
||||
static void read_file(int fd, char *buffer, ssize_t *nb_read)
|
||||
{
|
||||
static void read_file(int fd, char *buffer, ssize_t *nb_read) {
|
||||
*nb_read = read(fd, buffer, BUFFER_SIZE);
|
||||
if (*nb_read < 0)
|
||||
return ;
|
||||
return;
|
||||
buffer[*nb_read] = '\0';
|
||||
}
|
||||
|
||||
static char *get_the_line(int fd, char *buffer)
|
||||
{
|
||||
static char *get_the_line(int fd, char *buffer) {
|
||||
char *line;
|
||||
size_t i;
|
||||
ssize_t nb_read;
|
||||
@@ -104,28 +94,25 @@ static char *get_the_line(int fd, char *buffer)
|
||||
i = 0;
|
||||
nb_read = 0;
|
||||
line = NULL;
|
||||
if (buffer[0] != '\0')
|
||||
{
|
||||
if (buffer[0] != '\0') {
|
||||
line = build_line(buffer, NULL, &i);
|
||||
if (!line)
|
||||
return (NULL);
|
||||
ft_memcpy(buffer, buffer + i + 1, ft_strlen_with_c(buffer + i, '\0'));
|
||||
}
|
||||
while (detect_newline(line) == 0)
|
||||
{
|
||||
while (detect_newline(line) == 0) {
|
||||
read_file(fd, buffer, &nb_read);
|
||||
if (nb_read < 0)
|
||||
return (free(line), NULL);
|
||||
if (nb_read == 0)
|
||||
break ;
|
||||
break;
|
||||
line = build_line(buffer, line, &i);
|
||||
ft_memcpy(buffer, buffer + i + 1, ft_strlen_with_c(buffer + i, '\0'));
|
||||
}
|
||||
return (line);
|
||||
}
|
||||
|
||||
char *get_next_line(int fd)
|
||||
{
|
||||
char *get_next_line(int fd) {
|
||||
static char buffer[BUFFER_SIZE + 1] = "";
|
||||
char *line;
|
||||
|
||||
|
||||
+26
-23
@@ -16,51 +16,54 @@
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
|
||||
static int get_fd(int argc, char **argv)
|
||||
{
|
||||
if (argc == 2)
|
||||
{
|
||||
static int get_fd(int argc, char **argv) {
|
||||
if (argc == 2) {
|
||||
return (open(argv[1], O_RDONLY));
|
||||
}
|
||||
else if (argc == 1)
|
||||
} else if (argc == 1)
|
||||
return (0);
|
||||
else
|
||||
return (-1);
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int main(int argc, char *argv[]) {
|
||||
|
||||
int fd;
|
||||
int size;
|
||||
int* lines_int;
|
||||
VECTOR_INIT(lines);
|
||||
int *lines_int;
|
||||
t_vector lines;
|
||||
|
||||
if (vector_init(&lines) == false) {
|
||||
ft_putstr_fd("ERROR\n", 2);
|
||||
return (1);
|
||||
}
|
||||
fd = get_fd(argc, argv);
|
||||
lines_int = NULL;
|
||||
size = 0;
|
||||
if (fd < 0)
|
||||
{
|
||||
ft_putstr_fd("ERROR", 2);
|
||||
if (fd < 0 || fill_vector(&lines, fd) == false) {
|
||||
lines.pfVectorFree(&lines);
|
||||
ft_putstr_fd("ERROR\n", 2);
|
||||
return (1);
|
||||
}
|
||||
fill_vector(&lines, fd);
|
||||
if (check_input(&lines) == false)
|
||||
{
|
||||
if (check_input(&lines) == false) {
|
||||
lines.pfVectorFree(&lines);
|
||||
ft_putstr_fd("ERROR", 2);
|
||||
ft_putstr_fd("ERROR\n", 2);
|
||||
return (1);
|
||||
|
||||
}
|
||||
lines_int = fill_array(&lines, &size);
|
||||
if (!lines_int)
|
||||
{
|
||||
lines.pfVectorFree(&lines);
|
||||
ft_putstr_fd("ERROR", 2);
|
||||
if (!lines_int) {
|
||||
lines.pfVectorFree(&lines);
|
||||
ft_putstr_fd("ERROR\n", 2);
|
||||
return (1);
|
||||
}
|
||||
game(lines_int, size);
|
||||
close(fd);
|
||||
if (open("/dev/tty", O_RDONLY) < 0 || game(lines_int, size) == false) {
|
||||
free(lines_int);
|
||||
ft_putstr_fd("ERROR\n", 2);
|
||||
return (1);
|
||||
}
|
||||
if (fd != 0)
|
||||
close(fd);
|
||||
free(lines_int);
|
||||
lines.pfVectorFree(&lines);
|
||||
return (0);
|
||||
}
|
||||
|
||||
+33
-55
@@ -12,6 +12,7 @@
|
||||
|
||||
#include "vector.h"
|
||||
#include "libft.h"
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
@@ -23,8 +24,7 @@ int vector_delete(t_vector *v, int index);
|
||||
int vector_free(t_vector *v);
|
||||
int vector_total(t_vector *v);
|
||||
|
||||
void vector_init(t_vector *v)
|
||||
{
|
||||
bool vector_init(t_vector *v) {
|
||||
v->pfVectorTotal = vector_total;
|
||||
v->pfVectorResize = vector_resize;
|
||||
v->pfVectorAdd = vector_push_back;
|
||||
@@ -35,34 +35,30 @@ void vector_init(t_vector *v)
|
||||
v->vector_list.capacity = VECTOR_INIT_CAPACITY;
|
||||
v->vector_list.total = 0;
|
||||
v->vector_list.items = malloc(sizeof(void *) * v->vector_list.capacity);
|
||||
if (!v->vector_list.items)
|
||||
{
|
||||
if (!v->vector_list.items) {
|
||||
ft_putstr_fd("Memory allocation failed in vector_init\n", 2);
|
||||
exit(EXIT_FAILURE);
|
||||
return (false);
|
||||
}
|
||||
return (true);
|
||||
}
|
||||
|
||||
int vector_total(t_vector *v)
|
||||
{
|
||||
int vector_total(t_vector *v) {
|
||||
int totalCount = UNDEFINE;
|
||||
if(v)
|
||||
{
|
||||
if (v) {
|
||||
totalCount = v->vector_list.total;
|
||||
}
|
||||
return totalCount;
|
||||
}
|
||||
|
||||
int vector_resize(t_vector *v, int capacity)
|
||||
{
|
||||
int vector_resize(t_vector *v, int capacity) {
|
||||
int status = UNDEFINE;
|
||||
if(v)
|
||||
{
|
||||
if (v) {
|
||||
void **items_copy = malloc(sizeof(void *) * capacity);
|
||||
if (!items_copy)
|
||||
return (status);
|
||||
ft_memcpy(items_copy, v->vector_list.items, sizeof(void *) * v->pfVectorTotal(v));
|
||||
if (items_copy)
|
||||
{
|
||||
ft_memcpy(items_copy, v->vector_list.items,
|
||||
sizeof(void *) * v->pfVectorTotal(v));
|
||||
if (items_copy) {
|
||||
free(v->vector_list.items);
|
||||
v->vector_list.items = items_copy;
|
||||
v->vector_list.capacity = capacity;
|
||||
@@ -72,21 +68,15 @@ int vector_resize(t_vector *v, int capacity)
|
||||
return (status);
|
||||
}
|
||||
|
||||
int vector_push_back(t_vector *v, void *item)
|
||||
{
|
||||
int vector_push_back(t_vector *v, void *item) {
|
||||
int status = UNDEFINE;
|
||||
if(v)
|
||||
{
|
||||
if (v->vector_list.capacity == v->vector_list.total)
|
||||
{
|
||||
if (v) {
|
||||
if (v->vector_list.capacity == v->vector_list.total) {
|
||||
status = vector_resize(v, v->vector_list.capacity * 2);
|
||||
if(status != UNDEFINE)
|
||||
{
|
||||
if (status != UNDEFINE) {
|
||||
v->vector_list.items[v->vector_list.total++] = item;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
v->vector_list.items[v->vector_list.total++] = item;
|
||||
status = SUCCESS;
|
||||
}
|
||||
@@ -94,13 +84,10 @@ int vector_push_back(t_vector *v, void *item)
|
||||
return status;
|
||||
}
|
||||
|
||||
int vector_set(t_vector *v, int index, void *item)
|
||||
{
|
||||
int vector_set(t_vector *v, int index, void *item) {
|
||||
int status = UNDEFINE;
|
||||
if(v)
|
||||
{
|
||||
if ((index >= 0) && (index < v->vector_list.total))
|
||||
{
|
||||
if (v) {
|
||||
if ((index >= 0) && (index < v->vector_list.total)) {
|
||||
v->vector_list.items[index] = item;
|
||||
status = SUCCESS;
|
||||
}
|
||||
@@ -108,36 +95,30 @@ int vector_set(t_vector *v, int index, void *item)
|
||||
return status;
|
||||
}
|
||||
|
||||
void *vector_get(t_vector *v, int index)
|
||||
{
|
||||
void *vector_get(t_vector *v, int index) {
|
||||
void *readData = NULL;
|
||||
if(v)
|
||||
{
|
||||
if ((index >= 0) && (index < v->vector_list.total))
|
||||
{
|
||||
if (v) {
|
||||
if ((index >= 0) && (index < v->vector_list.total)) {
|
||||
readData = v->vector_list.items[index];
|
||||
}
|
||||
}
|
||||
return readData;
|
||||
}
|
||||
|
||||
int vector_delete(t_vector *v, int index)
|
||||
{
|
||||
int vector_delete(t_vector *v, int index) {
|
||||
int status = UNDEFINE;
|
||||
int i = 0;
|
||||
if(v)
|
||||
{
|
||||
if (v) {
|
||||
if ((index < 0) || (index >= v->vector_list.total))
|
||||
return status;
|
||||
v->vector_list.items[index] = NULL;
|
||||
for (i = index; (i < v->vector_list.total - 1); ++i)
|
||||
{
|
||||
for (i = index; (i < v->vector_list.total - 1); ++i) {
|
||||
v->vector_list.items[i] = v->vector_list.items[i + 1];
|
||||
v->vector_list.items[i + 1] = NULL;
|
||||
}
|
||||
v->vector_list.total--;
|
||||
if ((v->vector_list.total > 0) && ((v->vector_list.total) == (v->vector_list.capacity / 4)))
|
||||
{
|
||||
if ((v->vector_list.total > 0) &&
|
||||
((v->vector_list.total) == (v->vector_list.capacity / 4))) {
|
||||
vector_resize(v, v->vector_list.capacity / 2);
|
||||
}
|
||||
status = SUCCESS;
|
||||
@@ -145,16 +126,13 @@ int vector_delete(t_vector *v, int index)
|
||||
return status;
|
||||
}
|
||||
|
||||
int vector_free(t_vector *v)
|
||||
{
|
||||
int vector_free(t_vector *v) {
|
||||
int status = UNDEFINE;
|
||||
int total = v->pfVectorTotal(v);
|
||||
if(v)
|
||||
{
|
||||
for (int i = 0; i < total; i++)
|
||||
{
|
||||
void * temp = v->pfVectorGet(v, i);
|
||||
free (temp);
|
||||
if (v) {
|
||||
for (int i = 0; i < total; i++) {
|
||||
void *temp = v->pfVectorGet(v, i);
|
||||
free(temp);
|
||||
}
|
||||
free(v->vector_list.items);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user