From 892d0240c2b8ff6ebfed66861a499bfdd6b62843 Mon Sep 17 00:00:00 2001 From: Adam Joly Date: Mon, 22 Jan 2024 14:13:58 +0100 Subject: [PATCH] woow --- ft_check_map_error.c | 114 ++++++++++++++++++++++++--- ft_check_map_error.o | Bin 4976 -> 8008 bytes ft_lstclear_img.c | 35 --------- ft_lstclear_img.o | Bin 3280 -> 0 bytes ft_move_character.c | 143 ++++++++++++++-------------------- ft_move_character.o | Bin 12168 -> 10752 bytes get_map.c | 17 ++-- get_map.o | Bin 4304 -> 4400 bytes get_next_line/get_next_line.a | Bin 4970 -> 4970 bytes get_next_line/get_next_line.h | 4 +- get_next_line/get_next_line.o | Bin 2536 -> 2536 bytes main.c | 111 ++++++++++---------------- main.o | Bin 8424 -> 8296 bytes map.ber | 4 +- print_map.c | 77 +++++++++--------- print_map.o | Bin 6208 -> 6792 bytes so_long | Bin 36064 -> 36872 bytes so_long.h | 25 ++++-- 18 files changed, 278 insertions(+), 252 deletions(-) delete mode 100644 ft_lstclear_img.c delete mode 100644 ft_lstclear_img.o diff --git a/ft_check_map_error.c b/ft_check_map_error.c index d713a53..c47f8a9 100644 --- a/ft_check_map_error.c +++ b/ft_check_map_error.c @@ -6,24 +6,35 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/01/17 10:17:52 by adjoly #+# #+# */ -/* Updated: 2024/01/18 13:51:13 by adjoly ### ########.fr */ +/* Updated: 2024/01/22 13:24:41 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "libft/libft.h" #include "printf/ft_printf.h" #include "so_long.h" -#include -#include +#include char ft_check_charset(char c, char *charset) { - while (*charset) + unsigned short i; + + i = 0; + while (charset[i] && i < USHRT_MAX) { - if (c != *charset) - return (1); - charset++; + if (c == charset[i]) + return (0); + i++; } + return (1); +} + +char ft_check_file(char *file_name) +{ + int fd; + + fd = open(file_name, O_RDONLY); + if (fd < 1) + return (1); return (0); } @@ -38,7 +49,7 @@ char ft_valid_char(char **map) x = 0; while (map[y][x]) { - if (ft_check_charset(map[y][x], "01CEP") == 0) + if (ft_check_charset(map[y][x], "01CEP\n") == 1) return (1); x++; } @@ -47,6 +58,78 @@ char ft_valid_char(char **map) return (0); } +char ft_check_player(char **map) +{ + size_t y; + size_t x; + size_t p_count; + + y = 0; + p_count = 0; + while (map[y]) + { + x = 0; + while (map[y][x]) + { + if (map[y][x] == 'P') + p_count++; + x++; + } + y++; + } + if (p_count == 1) + return (0); + return (1); +} + +char ft_check_exit(char **map) +{ + size_t y; + size_t x; + size_t p_count; + + y = 0; + p_count = 0; + while (map[y]) + { + x = 0; + while (map[y][x]) + { + if (map[y][x] == 'E') + p_count++; + x++; + } + y++; + } + if (p_count == 1) + return (0); + return (1); +} + +char ft_check_collectible(char **map) +{ + size_t y; + size_t x; + size_t c_count; + + y = 0; + c_count = 0; + while (map[y]) + { + x = 0; + while (map[y][x]) + { + if (map[y][x] == 'C') + c_count++; + x++; + } + y++; + } + if (c_count >= 1) + return (0); + return (1); +} + /*char ft_floodfill(char **map) { while (expression) @@ -61,7 +144,9 @@ char ft_valid_file_ext(char *file_name) unsigned short file_len; file_len = ft_strlen(file_name) - 1; - if (file_name[file_len] == 'r' && file_name[file_len - 1] == 'e' \ + if (file_len < 3) + return (1); + else if (file_name[file_len] == 'r' && file_name[file_len - 1] == 'e' \ && file_name[file_len - 2] == 'b' && file_name[file_len - 3] == '.') return (0); return (1); @@ -80,6 +165,13 @@ void ft_check_map_error(char **map) { if (ft_valid_char(map) == 1) ft_send_error("Invalid character in map\n", map); + else if (ft_check_player(map) == 1) + ft_send_error("Invalid number of player\n", map); + else if (ft_check_collectible(map) == 1) + ft_send_error("Invalid number of collectible\n", map); + else if (ft_check_exit(map) == 1) + ft_send_error("Invalid number of exit\n", map); + // else if () // else if (ft_floodfill(map) == 1) - // ft_send_error("Map is not finishable\n", map); + // ft_send_error("Map is cannot be finished\n", map); } diff --git a/ft_check_map_error.o b/ft_check_map_error.o index 07e85deb96f08b94f01ab451ef1848e72da0f567..5aadef6fc63497c8c4793ed9ffb9b0f94645365f 100644 GIT binary patch literal 8008 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 Z+9Ubnj|1SZ9qPp>&=MKofWG|k{|&A$yNdt- diff --git a/ft_lstclear_img.c b/ft_lstclear_img.c deleted file mode 100644 index c5fa2bf..0000000 --- a/ft_lstclear_img.c +++ /dev/null @@ -1,35 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_lstclear_img.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: adjoly +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2023/11/11 18:05:14 by adjoly #+# #+# */ -/* Updated: 2024/01/14 15:18:13 by adjoly ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "so_long.h" - -void ft_lstdelone_img(t_list *lst, void *param, void (*del)(void *, void *)) -{ - - if (lst == NULL || del == NULL) - return ; - del(lst->content, param); - free(lst); -} - -void ft_lstclear_img(t_list **lst, void *param, void (*del)(void *, void *)) -{ - t_list *tmp; - - tmp = NULL; - while (lst && *lst && del) - { - tmp = (*lst)->next; - ft_lstdelone_img((*lst), param, del); - *lst = tmp; - } -} diff --git a/ft_lstclear_img.o b/ft_lstclear_img.o deleted file mode 100644 index 315e9c8843a02e9ad89e7e457b958e86e9621da9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3280 zcmbtVU1%It6h1SPJK5|uyPN;U76}wBh@DN04@r$SVppeYt5S$GVBBstvq^M+!tQKL z3-O0U>2{$_)q)RFL_tK*7xBRdB@jjJQ}IE>2OB6tDuNMw2q?sJX3pJgZdMdLF!!GC zJAZfXoqOh`_{m3gO#>+!JOn#PvH&*%JNl@njzSbY$Lz|__R_C?c4cwPu9P?J%Gidz zw73P4)qh#zmVP&0F!*p zKX3?!$nFhbddbEn%Xzolm(Hg0(|z+!u{2xA_YK@<^;-i+28PR?br3RcGFx)fStnIY z&gQ1AG{o|mQf#J>b4sz))N_UGx!CbSx}0>|iH;0@1-}w9J;3gkLjvf*^ zN_aRNeNBI))zlN{;oC-tN1>zIv0w7+-y_uoD=i5h3%s2%>Y_h-glTZu4=`g$NCY62eHJX!#4NuGR2g80<#F6wfH#QUuS6_j>= z^8AUvn{js?PhDFIHE$A`XUK;@eVBxfqkdQK_1L}qQRZcyXBZz>_(jI275;6;XBGZk z##x@_dgOkeSNwB~mla;teO=*Y-FFmT*8N!F-)Fq0@K+gMSNKbezf<^E82_a36~=u$ z)85zb|ER*teK^6q+#iMzFu|H~Cd<>w)Z}E*nFp)rWK)()EzU|8a?~cJN69U+*^ijb zX9{5D3$9~5_QcqclAB6DulAI^oz==_=X1%_)D$-G>0SA0FNH|1F69&Cs7Qk1M;FyvTlXQhf)}pmOB<5tF83R3KRB+i3mY@cOqn zfYwixy8c7Rk&Ap!R6Y5GKkg4D!LzI{XX;ap;wSh}5C2R2F^*T)u(@pT7M2Xtyo!zwT82gVdfcTBDSH;yoK Ae*gdg diff --git a/ft_move_character.c b/ft_move_character.c index 14fd6d9..a982390 100644 --- a/ft_move_character.c +++ b/ft_move_character.c @@ -6,54 +6,40 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/01/07 19:13:01 by adjoly #+# #+# */ -/* Updated: 2024/01/19 15:25:00 by adjoly ### ########.fr */ +/* Updated: 2024/01/21 15:29:10 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "MacroLibX/includes/mlx.h" -#include "libft/libft.h" -#include "printf/ft_printf.h" #include "so_long.h" -void ft_printmapchar(char **map) -{ - while (*map) - { - ft_printf("%s\n", *map); - map++; - } - return ; -} - void ft_move_up(t_window *win) { if (win->map[win->p_coords->y - 1][win->p_coords->x] == 'C') { - ft_putimg(win->p_coords->x, win->p_coords->y - 1, win, P_PNG); - ft_putimg(win->p_coords->x, win->p_coords->y, win, G_PNG); + ft_putimg(win->p_coords->x, win->p_coords->y, win, '0'); win->map[win->p_coords->y - 1][win->p_coords->x] = '0'; - win->p_coords->y = win->p_coords->y - 1; + ft_putimg(win->p_coords->x, win->p_coords->y - 1, win, 'P'); win->c_count--; win->mov_count++; } - else if (win->p_coords->y == win->e_coords->y && win->e_coords->x == win->p_coords->x && win->map[win->p_coords->y - 1][win->p_coords->x] != '1') + else if (win->p_coords->y == win->e_coords->y + && win->e_coords->x == win->p_coords->x + && win->map[win->p_coords->y - 1][win->p_coords->x] != '1') { - ft_putimg(win->p_coords->x, win->p_coords->y - 1, win, P_PNG); - ft_putimg(win->p_coords->x, win->p_coords->y, win, E_PNG); - win->p_coords->y = win->p_coords->y - 1; + ft_putimg(win->p_coords->x, win->p_coords->y, win, 'E'); + ft_putimg(win->p_coords->x, win->p_coords->y - 1, win, 'P'); win->mov_count++; } - else if (win->map[win->p_coords->y - 1][win->p_coords->x] == 'E' && win->c_count == 0) + else if (win->map[win->p_coords->y - 1][win->p_coords->x] == 'E' + && win->c_count == 0) { - win->mov_count++; - ft_printf("%d\n", win->c_count); - exit(0); + ft_printf("Mouvement : %d\n", win->mov_count + 1); + ft_exit(win); } else if (win->map[win->p_coords->y - 1][win->p_coords->x] != '1') { - ft_putimg(win->p_coords->x, win->p_coords->y - 1, win, P_PNG); - ft_putimg(win->p_coords->x, win->p_coords->y, win, G_PNG); - win->p_coords->y = win->p_coords->y - 1; + ft_putimg(win->p_coords->x, win->p_coords->y, win, '0'); + ft_putimg(win->p_coords->x, win->p_coords->y - 1, win, 'P'); win->mov_count++; } } @@ -62,31 +48,30 @@ void ft_move_down(t_window *win) { if (win->map[win->p_coords->y + 1][win->p_coords->x] == 'C') { - ft_putimg(win->p_coords->x, win->p_coords->y + 1, win, P_PNG); - ft_putimg(win->p_coords->x, win->p_coords->y, win, G_PNG); + ft_putimg(win->p_coords->x, win->p_coords->y, win, '0'); win->map[win->p_coords->y + 1][win->p_coords->x] = '0'; - win->p_coords->y = win->p_coords->y + 1; + ft_putimg(win->p_coords->x, win->p_coords->y + 1, win, 'P'); win->c_count--; win->mov_count++; } - else if (win->p_coords->y == win->e_coords->y && win->e_coords->x == win->p_coords->x && win->map[win->p_coords->y + 1][win->p_coords->x] != '1') + else if (win->p_coords->y == win->e_coords->y + && win->e_coords->x == win->p_coords->x + && win->map[win->p_coords->y + 1][win->p_coords->x] != '1') { - ft_putimg(win->p_coords->x, win->p_coords->y + 1, win, P_PNG); - ft_putimg(win->p_coords->x, win->p_coords->y, win, E_PNG); - win->p_coords->y = win->p_coords->y + 1; + ft_putimg(win->p_coords->x, win->p_coords->y, win, 'E'); + ft_putimg(win->p_coords->x, win->p_coords->y + 1, win, 'P'); win->mov_count++; } - else if (win->map[win->p_coords->y + 1][win->p_coords->x] == 'E' && win->c_count == 0) + else if (win->map[win->p_coords->y + 1][win->p_coords->x] == 'E' + && win->c_count == 0) { - win->mov_count++; - ft_printf("%d\n", win->c_count); - exit(0); + ft_printf("Mouvement : %d\n", win->mov_count + 1); + ft_exit(win); } else if (win->map[win->p_coords->y + 1][win->p_coords->x] != '1') { - ft_putimg(win->p_coords->x, win->p_coords->y + 1, win, P_PNG); - ft_putimg(win->p_coords->x, win->p_coords->y, win, G_PNG); - win->p_coords->y = win->p_coords->y + 1; + ft_putimg(win->p_coords->x, win->p_coords->y, win, '0'); + ft_putimg(win->p_coords->x, win->p_coords->y + 1, win, 'P'); win->mov_count++; } } @@ -95,31 +80,30 @@ void ft_move_left(t_window *win) { if (win->map[win->p_coords->y][win->p_coords->x - 1] == 'C') { - ft_putimg(win->p_coords->x - 1, win->p_coords->y, win, P_PNG); - ft_putimg(win->p_coords->x, win->p_coords->y, win, G_PNG); + ft_putimg(win->p_coords->x, win->p_coords->y, win, '0'); win->map[win->p_coords->y][win->p_coords->x - 1] = '0'; - win->p_coords->x = win->p_coords->x - 1; + ft_putimg(win->p_coords->x - 1, win->p_coords->y, win, 'P'); win->c_count--; win->mov_count++; } - else if (win->p_coords->y == win->e_coords->y && win->e_coords->x == win->p_coords->x && win->map[win->p_coords->y][win->p_coords->x - 1] != '1') + else if (win->p_coords->y == win->e_coords->y + && win->e_coords->x == win->p_coords->x + && win->map[win->p_coords->y][win->p_coords->x - 1] != '1') { - ft_putimg(win->p_coords->x - 1, win->p_coords->y, win, P_PNG); - ft_putimg(win->p_coords->x, win->p_coords->y, win, E_PNG); - win->p_coords->x = win->p_coords->x - 1; + ft_putimg(win->p_coords->x, win->p_coords->y, win, 'E'); + ft_putimg(win->p_coords->x - 1, win->p_coords->y, win, 'P'); win->mov_count++; } - else if (win->map[win->p_coords->y][win->p_coords->x - 1] == 'E' && win->c_count == 0) + else if (win->map[win->p_coords->y][win->p_coords->x - 1] == 'E' + && win->c_count == 0) { - win->mov_count++; - ft_printf("%d\n", win->c_count); - exit(0); + ft_printf("Mouvement : %d\n", win->mov_count + 1); + ft_exit(win); } else if (win->map[win->p_coords->y][win->p_coords->x - 1] != '1') { - ft_putimg(win->p_coords->x - 1, win->p_coords->y, win, P_PNG); - ft_putimg(win->p_coords->x, win->p_coords->y, win, G_PNG); - win->p_coords->x = win->p_coords->x - 1; + ft_putimg(win->p_coords->x, win->p_coords->y, win, '0'); + ft_putimg(win->p_coords->x - 1, win->p_coords->y, win, 'P'); win->mov_count++; } } @@ -128,31 +112,30 @@ void ft_move_right(t_window *win) { if (win->map[win->p_coords->y][win->p_coords->x + 1] == 'C') { - ft_putimg(win->p_coords->x + 1, win->p_coords->y, win, P_PNG); - ft_putimg(win->p_coords->x, win->p_coords->y, win, G_PNG); + ft_putimg(win->p_coords->x, win->p_coords->y, win, '0'); win->map[win->p_coords->y][win->p_coords->x + 1] = '0'; - win->p_coords->x = win->p_coords->x - 1; + ft_putimg(win->p_coords->x + 1, win->p_coords->y, win, 'P'); win->c_count--; win->mov_count++; } - else if (win->p_coords->y == win->e_coords->y && win->e_coords->x == win->p_coords->x && win->map[win->p_coords->y][win->p_coords->x + 1] != '1') + else if (win->p_coords->y == win->e_coords->y + && win->e_coords->x == win->p_coords->x + && win->map[win->p_coords->y][win->p_coords->x + 1] != '1') { - ft_putimg(win->p_coords->x + 1, win->p_coords->y, win, P_PNG); - ft_putimg(win->p_coords->x, win->p_coords->y, win, E_PNG); - win->p_coords->x = win->p_coords->x + 1; + ft_putimg(win->p_coords->x, win->p_coords->y, win, 'E'); + ft_putimg(win->p_coords->x + 1, win->p_coords->y, win, 'P'); win->mov_count++; } - else if (win->map[win->p_coords->y][win->p_coords->x + 1] == 'E' && win->c_count == 0) + else if (win->map[win->p_coords->y][win->p_coords->x + 1] == 'E' + && win->c_count == 0) { - win->mov_count++; - ft_printf("%d\n", win->c_count); - exit(0); + ft_printf("Mouvement : %d\n", win->mov_count + 1); + ft_exit(win); } else if (win->map[win->p_coords->y][win->p_coords->x + 1] != '1') { - ft_putimg(win->p_coords->x + 1, win->p_coords->y, win, P_PNG); - ft_putimg(win->p_coords->x, win->p_coords->y, win, G_PNG); - win->p_coords->x = win->p_coords->x + 1; + ft_putimg(win->p_coords->x, win->p_coords->y, win, '0'); + ft_putimg(win->p_coords->x + 1, win->p_coords->y, win, 'P'); win->mov_count++; } } @@ -163,25 +146,15 @@ int ft_key_event(int key, void *param) win = (t_window *)param; if (key == 41) - mlx_loop_end(win->mlx); - // UP/W - if (key == 26) + ft_exit(win); + if (key == 26 || key == 82) ft_move_up(win); - // DOWN/S - else if (key == 22) + else if (key == 22 || key == 81) ft_move_down(win); - // LEFT/A - else if (key == 4) + else if (key == 4 || key == 80) ft_move_left(win); - // RIGHT/D - else if (key == 7) + else if (key == 7 || key == 79) ft_move_right(win); ft_printf("Mouvement : %d\n", win->mov_count); - // ft_printmap(win->map, win); - // ft_printmapchar(win->map); - // ft_printf("%d\n", win->e_coords->x); - // ft_printf("%d\n", win->e_coords->y); - // ft_printf("%d\n", win->p_coords->x); - // ft_printf("%d\n", win->p_coords->y); return (0); } diff --git a/ft_move_character.o b/ft_move_character.o index 1ae23d2195d8f00a0aea75f8e0ef5f6915866386..7797a6841c7e975cbfe912ebc3b3d18d292ca634 100644 GIT binary patch literal 10752 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 diff --git a/get_map.c b/get_map.c index d07518e..593735f 100644 --- a/get_map.c +++ b/get_map.c @@ -6,19 +6,23 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/01/08 13:13:18 by adjoly #+# #+# */ -/* Updated: 2024/01/19 14:30:23 by adjoly ### ########.fr */ +/* Updated: 2024/01/19 17:14:11 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ #include "so_long.h" -size_t ft_countline_fd(int fd) +size_t ft_countline_fd(char *file_name) { size_t line_count; ssize_t rd; char *buf; size_t i; + int fd; + fd = open(file_name, O_RDONLY); + if (fd < 1) + return (0); i = 0; line_count = 0; buf = ft_calloc(1, 1); @@ -31,6 +35,7 @@ size_t ft_countline_fd(int fd) line_count++; i++; } + close(fd); free(buf); return (line_count); } @@ -43,13 +48,9 @@ char **ft_read_map(char *file_name) size_t ln_count; i = 0; - fd = open(file_name, O_RDONLY); - if (fd < 1) - { + ln_count = ft_countline_fd(file_name); + if (ln_count == 0) return (NULL); - } - ln_count = ft_countline_fd(fd); - close(fd); fd = open(file_name, O_RDONLY); map_read = ft_calloc(sizeof(char *), ln_count); if (!map_read) diff --git a/get_map.o b/get_map.o index 9a22f3aefb7c93c0dfe6a8e27c49e977936d183a..5ff4b7dc39aa051f35b21c18d4eaaa4c10dfde74 100644 GIT binary patch delta 1456 zcmZ8gTWAwY7@nEzOm;WfY^&B7sF#YDqF9^Cp(xsm5?L=$@j+4#q8{p{T17>L^AL(g zg%Fg6|3!WB0^VMZ2cPUiZM;xgN{J6*IS*Pvp*ar{U$lZ4|Jj`_F+a@y^L^hx|2H$4 z6dE2c9cX0DR&Le8{thRTDmmFyDgN~_nI;&S#CSS2PVK7}0%s&KBgx`@4-_Oo(ybh# z5@f!)z{w;goph>Dw$pzholT89*>jVFvc%V?P@gK>mqKzGPKkZ_7{__BMH1P>q&-B^ zGp2nx?BQuAJxsChbP=&EC@7*(gmSrz7GCFUYEn%S(^x)(l`~HIWyii3hnwuhm*iq{ zcpz6=u*lyDHcA!H{7oXuo1mL5?|*}vX90IPem>%$dnBUvcl>HBcgjOG zSjSoJsEcZ)hUkEc=G1#y(nWJs2>&V2|>k5ucV%6eWFE`2cEks*S(~{ zacw318|c-0`ws0tdGN#`Sggf)59vL57Lr=eAM&CN6Lq5J$K+3PXJJj(vk%6MzKP&+)fjYIfRjt+#ALx z$OpS(bsiuZX8ACG;M0?_6KeHnystu)ugOUo8^I;Zc}qxkt%d`9sN zRs2)95Q@hCQR=!X^`7E4RPkeQBea&5U^KLZhjmK?pL`B&psXtltE{c`4V<=GX%Ze< z?W~T$|5lrEQQifT_{G{*_Z}-F&{eYMp}SgyPc6R gJhI!2M((Y62Vd+~){H(iZOjS7F-&?89@VV)1?I>mW&i*H delta 1373 zcmZ8gO-NKx6u$S)yLaB-%p3cAP83kXAcSdu6Qe=nK-1PzlmMXCz3Z<5P)La?rEYf6ZJUlyr;^jux*w87-^YKUBl*|($Rwxz!E#PKbe685bR(o# zW#<6S%>pu4+6z4NsEnxf4WA0j-gHqI^Ek_1c2Jqr5S??-qNT2O%0Y{ni&`DDL}rrt z`f~`p`c;21RyzHXRo-iE$!aNLgLZU;)_Bd`lC@s*gO0Y|X&`1LKw}$%(gjsj)>DJ{ za0o#i#}!e5lr-gnSWijVi34M*AQ>iFn2peUzIi9z>e=a7}FI0>gkf$5)Q?kZ9mWD_6xn%x~bPI0lbIH&g_3 zQD->pzX8u8!pNW;25k;B^#EN9S5&)gk4q5+y}T%Y@OnvmQo_q!`2435Ufx!p|6amt zCHx#bRqd$i?--TRx1vBbI~prdMajEIpiZ-CFEne#Xs=h_xd0gJc;w7|(5BnXBc6K8 z^S(Of;d`E!jTjz(6OTRK&riY|-HyKVSovR(=BuCKhi*emSIfS-!n`sDs|_0t8fs@@ zfpXo$KNs-+@9;O{_egtrmbVk1&wBjw1-w6FrOWH{BfWr^hE4n7x3Q59LXBC$)lkqB zL;KBblzlhgZfGwZfQe8&jer(zV&5pVgd4S1xgNC5kPX*sUa-GPa4J +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/12/01 17:12:00 by adjoly #+# #+# */ -/* Updated: 2024/01/10 15:03:00 by adjoly ### ########.fr */ +/* Updated: 2024/01/22 13:40:26 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,7 +17,7 @@ # include # ifndef BUFFER_SIZE -# define BUFFER_SIZE 5 +# define BUFFER_SIZE 1 # endif char *get_next_line(int fd); diff --git a/get_next_line/get_next_line.o b/get_next_line/get_next_line.o index f93ff55ce998e1c542d64ab342bf620036a17e99..b0bbd67f57d422cb38b62d8367300388b18d1240 100644 GIT binary patch delta 20 ccmaDM{6cuc6Gld+$xj*k85uX1G8MA}09V!rJpcdz delta 20 ccmaDM{6cuc6Gle1$xj*k8Cf@%G8MA}09YOeMF0Q* diff --git a/main.c b/main.c index 400fc86..00ca61a 100644 --- a/main.c +++ b/main.c @@ -6,126 +6,101 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/01/06 16:18:56 by adjoly #+# #+# */ -/* Updated: 2024/01/19 14:44:15 by adjoly ### ########.fr */ +/* Updated: 2024/01/22 13:46:27 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "MacroLibX/includes/mlx.h" -#include "printf/ft_printf.h" #include "so_long.h" -void ft_freeimg(t_window *win) +void ft_freeimg(t_window *win) { - while (*win->img) - { - mlx_destroy_image(win, *win->img); - win->img++; - } - free(win->img); - return ; + mlx_destroy_image(win->mlx, win->img->collectible); + mlx_destroy_image(win->mlx, win->img->exit); + mlx_destroy_image(win->mlx, win->img->ground); + mlx_destroy_image(win->mlx, win->img->player); + mlx_destroy_image(win->mlx, win->img->wall); + free (win->img); } -size_t ft_sizemap(char **map) + +void ft_freemap(char **map) { size_t i; i = 0; - while (*map) + while (map[i] && i < ULONG_MAX) { - map++; + // ft_printf("freed : %s\n", map[i]); + free(map[i]); i++; } - return (i); -} - -void ft_freemap(char **map) -{ - while (*map) - { - free(*map); - map++; - } - free(map); + // free(map); } int win_close(int event, void *param) { + t_window *win; + + win = (t_window *)param; if (event == 0) - mlx_loop_end(param); + ft_exit(win); return (0); } void ft_exit(t_window *win) { + ft_freeimg(win); mlx_destroy_window(win->mlx, win->win); mlx_destroy_display(win->mlx); ft_freemap(win->map); - ft_freeimg(win); - free(win->p_coords); - free(win->e_coords); - free(win); - exit (0); + // free(win->p_coords); + // free(win->e_coords); + // free(win); + exit (EXIT_SUCCESS); } int main(int ac, char **av) { t_window *win; char **map; - void **img; - t_coords *map_size; (void) ac; - (void) av; map = NULL; + if (ac != 2) + ft_send_error("Invalid number of argument\n", map); if (ft_valid_file_ext(av[1]) == 1) ft_send_error("Invalid map file extension (not .ber)\n", map); + if (ft_check_file(av[1]) == 1) + ft_send_error("File cannot be opened or doesn't exist\n", map); map = ft_read_map(av[1]); if (!map) - return (0); + exit(EXIT_SUCCESS); + if (!map[0]) + ft_send_error("Map is empty", map); ft_check_map_error(map); - map_size = malloc(sizeof(t_coords)); - if (!map_size) - { - ft_freemap(map); - return (0); - } - map_size->x = ft_strlen(map[0]); - map_size->y = ft_sizemap(map); - ft_printf("x: %d\n", map_size->x); - ft_printf("y: %d\n", map_size->y); - img = malloc((map_size->x * map_size->y) * sizeof(void *)); - if (!img) - { - free(map_size); - ft_freemap(map); - return (0); - } - win = malloc(sizeof(map) + sizeof(t_window) + sizeof(img)); - win->img = img; + win = malloc(sizeof(map) + sizeof(t_window)); if (!win) { ft_freemap(map); return (0); } - win->mlx = mlx_init(); - if (!win->mlx) - { - // free map img win; - return (0); - } - win->win = mlx_new_window(win->mlx, 1600, 900, "so_fluffy"); - if (!win->win) - { - // free map img win ; destroy mlx - return (0); - } - win->map = map; - win->map_size = map_size; + // protect all three win->p_coords = malloc(sizeof(t_coords)); win->e_coords = malloc(sizeof(t_coords)); + win->img = malloc(sizeof(t_img)); + win->mlx = mlx_init(); + if (!win->mlx) + // free map img win; + return (0); + win->win = mlx_new_window(win->mlx, 1600, 900, "so_fluffy"); + if (!win->win) + // free map img win ; destroy mlx + return (0); + win->map = map; win->mov_count = 0; mlx_on_event(win->mlx, win->win, MLX_WINDOW_EVENT, win_close, win->mlx); mlx_on_event(win->mlx, win->win, MLX_KEYDOWN, ft_key_event, win); + ft_alloc_img(win); ft_printmap(win->map, win); mlx_loop(win->mlx); ft_exit(win); diff --git a/main.o b/main.o index 1af18714bc89c7ba28531cee47337f0c9796aa71..266dc45a0765adb228c761c4261c7f87afe11c0b 100644 GIT binary patch literal 8296 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 literal 8424 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 diff --git a/map.ber b/map.ber index 2954fea..242be01 100644 --- a/map.ber +++ b/map.ber @@ -1,5 +1,5 @@ 1111111111111 -100100C0000C1 +10010000000C1 1000011111001 -1P0011E00C001 +1P0011E000001 1111111111111 diff --git a/print_map.c b/print_map.c index e559653..f782e31 100644 --- a/print_map.c +++ b/print_map.c @@ -6,34 +6,52 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/01/09 15:30:06 by adjoly #+# #+# */ -/* Updated: 2024/01/19 14:43:12 by adjoly ### ########.fr */ +/* Updated: 2024/01/21 14:51:46 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ -#include "MacroLibX/includes/mlx.h" #include "so_long.h" -void ft_putplayer(t_window *win) -{ - ft_putimg(win->p_coords->x, win->p_coords->y, win, P_PNG); -} - -void ft_putimg(size_t x, size_t y, t_window *win, char *file_path) +void ft_alloc_img(t_window *win) { int img_x; int img_y; - size_t img_xy; - img_x = 0; img_y = 0; - img_xy = x + (y * win->map_size->x); - ft_printf("%d\n", img_xy); - if (win->img[img_xy]) - mlx_destroy_image(win->mlx, win->img[img_xy]); - ft_putstr_fd(file_path, 1); - ft_putchar_fd('\n', 1); - win->img[img_xy] = mlx_png_file_to_image(win->mlx, file_path, &img_x, &img_y); - mlx_put_image_to_window(win->mlx, win->win, win->img[img_xy], x * img_x, y * img_y); + img_x = 0; + win->img->collectible = mlx_png_file_to_image(win->mlx, + C_PNG, &img_x, &img_y); + win->img->exit = mlx_png_file_to_image(win->mlx, E_PNG, &img_x, &img_y); + win->img->ground = mlx_png_file_to_image(win->mlx, G_PNG, &img_x, &img_y); + win->img->player = mlx_png_file_to_image(win->mlx, P_PNG, &img_x, &img_y); + win->img->wall = mlx_png_file_to_image(win->mlx, W_PNG, &img_x, &img_y); +} + +void ft_putimg(size_t x, size_t y, t_window *win, char c) +{ + if (c == 'E') + { + win->e_coords->x = x; + win->e_coords->y = y; + mlx_put_image_to_window(win->mlx, win->win, + win->img->exit, x * T_SIZE, y * T_SIZE); + } + else if (c == 'C') + { + mlx_put_image_to_window(win->mlx, win->win, + win->img->collectible, x * T_SIZE, y * T_SIZE); + win->c_count++; + } + else if (c == '0') + mlx_put_image_to_window(win->mlx, win->win, + win->img->ground, x * T_SIZE, y * T_SIZE); + else if (c == 'P') + { + win->p_coords->y = y; + win->p_coords->x = x; + mlx_put_image_to_window(win->mlx, win->win, + win->img->player, x * T_SIZE, y * T_SIZE); + } } void ft_printmap(char **map, t_window *win) @@ -49,27 +67,16 @@ void ft_printmap(char **map, t_window *win) while (map[y][x]) { if (map[y][x] == '1') - ft_putimg(x, y, win, W_PNG); + mlx_put_image_to_window(win->mlx, win->win, + win->img->wall, x * T_SIZE, y * T_SIZE); else if (map[y][x] == '0') - ft_putimg(x, y, win, G_PNG); + ft_putimg(x, y, win, map[y][x]); else if (map[y][x] == 'C') - { - ft_putimg(x, y, win, C_PNG); - win->c_count++; - } + ft_putimg(x, y, win, map[y][x]); else if (map[y][x] == 'E') - { - win->e_coords->x = x; - win->e_coords->y = y; - ft_putimg(x, y, win, E_PNG); - } + ft_putimg(x, y, win, map[y][x]); else if (map[y][x] == 'P') - { - win->p_coords->y = y; - win->p_coords->x = x; - ft_putimg(x, y, win, P_PNG); - } - + ft_putimg(x, y, win, map[y][x]); x++; } y++; diff --git a/print_map.o b/print_map.o index 9b53c48d8ad7a82410e86b4d0b74944ab048389d..e234dbbc9c70622dc595a45ad6f870ea6703df04 100644 GIT binary patch literal 6792 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 literal 36064 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 CFp#_e diff --git a/so_long.h b/so_long.h index a6de367..2e55eaa 100644 --- a/so_long.h +++ b/so_long.h @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/01/06 16:19:42 by adjoly #+# #+# */ -/* Updated: 2024/01/19 14:34:31 by adjoly ### ########.fr */ +/* Updated: 2024/01/21 15:42:52 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -27,6 +27,7 @@ # define E_PNG "assets/exit.png" # define W_PNG "assets/wall.png" # define C_PNG "assets/collectible.png" +# define T_SIZE 64 typedef struct s_coords { @@ -34,30 +35,42 @@ typedef struct s_coords int y; } t_coords; +typedef struct s_img +{ + void *player; + void *collectible; + void *exit; + void *wall; + void *ground; +} t_img; + typedef struct s_window { void *mlx; void *win; - void **img; char **map; t_coords *p_coords; t_coords *e_coords; size_t c_count; size_t mov_count; - t_coords *map_size; -} t_window; + t_img *img; +} t_window; int ft_key_event(int key, void *param); void ft_freemap(char **map); int check_wall(char **map, t_coords *player); -size_t ft_countline_fd(int fd); +size_t ft_countline_fd(char *file_name); char **ft_read_map(char *file_name); +char ft_check_file(char *file_name); +void ft_exit(t_window *win); + void ft_printmap(char **map, t_window *win); -void ft_putimg(size_t x, size_t y, t_window *win, char *file_path); +void ft_putimg(size_t x, size_t y, t_window *win, char c); void ft_check_map_error(char **map); +void ft_alloc_img(t_window *win); char ft_valid_file_ext(char *file_name); void ft_send_error(char *msg, char **map); void ft_check_map_error(char **map);