From c179afd6ec11530e10f3191950f82d530edd2ea1 Mon Sep 17 00:00:00 2001 From: Camille Chauvet Date: Thu, 22 Dec 2022 17:41:31 +0100 Subject: [PATCH] kekw --- Makefile | 35 ++++++++++++++++++++++ draw.c | 44 +++++++++++++++++++++++++++ draw.o | Bin 0 -> 5504 bytes libftx/Makefile | 32 ++++++++++++++++++++ libftx/gnl | 1 + libftx/libft | 1 + libftx/libftx.a | Bin 0 -> 4234 bytes libftx/libftx.h | 73 +++++++++++++++++++++++++++++++++++++++++++++ libftx/printf | 1 + main.c | 29 ++++++++++++++++++ main.o | Bin 0 -> 4784 bytes map | 5 ++++ minilibx-linux | 1 + so_long | Bin 0 -> 73568 bytes solong.h | 42 ++++++++++++++++++++++++++ textures/pixel.xpm | 8 +++++ 16 files changed, 272 insertions(+) create mode 100644 Makefile create mode 100644 draw.c create mode 100644 draw.o create mode 100644 libftx/Makefile create mode 160000 libftx/gnl create mode 160000 libftx/libft create mode 100644 libftx/libftx.a create mode 100644 libftx/libftx.h create mode 160000 libftx/printf create mode 100644 main.c create mode 100644 main.o create mode 100644 map create mode 160000 minilibx-linux create mode 100755 so_long create mode 100644 solong.h create mode 100644 textures/pixel.xpm diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..6940fec --- /dev/null +++ b/Makefile @@ -0,0 +1,35 @@ +SRC = main.c draw.c + +OBJ = ${SRC:.c=.o} + +NAME = so_long + +LIBS = libftx/libftx.a minilibx-linux/libmlx.a + +CC = gcc + +FLAG = -Wall -Wextra -Werror -g + +%.o: %.c + ${CC} ${FLAG} -c $< -o $@ + +all: ${NAME} + +${NAME}: ${OBJ} + make -C libftx + make -C minilibx-linux + ${CC} ${OBJ} -o ${NAME} ${LIBS} -lXext -lX11 + +clean: + rm -f OBJ + make -C libftx clean + make -C minilibx-linux clean + +fclean: clean + rm -f ${NAME} + make -C libftx fclean + make -C minilibx-linux clean + +re: fclean all + +.PHONY: all clean fclean re diff --git a/draw.c b/draw.c new file mode 100644 index 0000000..25c0c3e --- /dev/null +++ b/draw.c @@ -0,0 +1,44 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* draw.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet D|H|S7|pb|guzXaw<@K_S-eoAUUzQCvQKogcg!3n?3nx8=EmKp zJLX2){71*kw$07E;~jIeZ9)co=C@cT?DcO-?YC&q>*l7?nI8dr<=vC!<_qs!H#Zot zAAyY*Ub}ho&TXR*I;}ABouIJfww$`rT56E-1R+Tr4$)}|2Pq$W{VT>N^xY__NzL^_ zl1Nf1p=$_=M$xI1U^-jg(D3oGtQ5 zAMHgt9FH_koptW~h?)U=T03Qg4hUne;0s83^{1d6qU^|69oocNiHnm=EOK!cN03+} z=@p_Jr1=tSm(wkxjB(*}85-u$9_(OZ?Kw8bl}tD3i>L=uUS%OO2e&26Ol(V-DPkOT z?e&+^Zlg++y*g7r$I|Q*Ss~tDWjsBcQqyDUy~@7b*$+Yb!z7hD4G=`&EYvTV0TjL@ zHs^;4*)>Jf^r_Sn+DQUb`*mRX))8p2q9_cK{q-AnRu5F$lfO$l=d-rVA%lC z=|VYt#g|GK1m+L$sAL)5it_LD5WMN;1%+1%QQ#L`uUwBR4v7ne)`?@*v8jCB^`ch3 z>P3YGHw*}=`1Vz!jL{>{4Z@01!>zCCgw3VUDmQ%x0O(uLtT(+X@JO0M23UVVfSIa) zU(+|Vg#J5C(cjcv?SMX`r7vj7PiT5oOHF86RU4>kgA-b^s%iSSwEbtbho`lJ)7pTc zCBL8ztIHR(k4$T$)0%E*iaK~Xk%Tc_b-haSs@1SPyXyD^`s4UMp*syJc#A=y)@;Dm zQ!dx+XxRx1Q%4J|m&CFhZ`t*m9tqr42R$Ja39aDy$o3r))S7;ni@dqcT@JNL=?+?mPaxs%3} zF_FtR!pL);tU8|KyJZk#Vglfw9P2UM;?|fAKD9bCjey- z+T|cC?0NyV;?vwrS+56z1y$^l` zaLg<6iE~wKhGJ#2sc)T|duDcK&U)tT*=Nm5)}@)*InyGIddq_Qj>w90nUQ|e833DhlFzzv+x>2uS(D&4YGzHj?WgC#TOR%S2_LwZv`&aAe_*Y zaD{Zw4d9P3n8uFJ)`=L7vA)FR(-Qs$mrV)(AzzAf5`Kf@&q{cm%Q#<@@7ze~;r=CHrr3T+BBS=U3eBx@0fr!7T}Yo6Fyo@bg^$frN{d`x6QOBbR?J z;jeM|FB1MVm;Wi@-{5kRk57#2QykAq_{&^=T*5`1843S3moLgVkAI2d*xtUU_*I(VZnEn!3>=_wB-2V3XkK|tVQ2$IDBCLXOjbetYy6R7_x{jAo(88 zKO0lRdkh}jlZ)`g=@tCYKw>|~y&Qe<+(a5-4S57w#Kpac!{oS}h%03HF~BkA|LQ*p zz8Et;XF%-c7v}gR z-PhumnV3Sh{SN5RRGMbw>)byV^F>zFU%)>G24l+pZ*YJ7zHyTMe+0^Y_1F0UF6xT) z$GeyC7vH5{Zp@eEhFg5V_oEv1+80)apvkO%}4fuMNlzjSZy(#ckRyD#1E>-W>|z22AZ_m^e;`eL;Ve-iIg z%l_}>GNV@Ge1Q&z|3HSu?1K=No76Q-$z6Jb=&{MAfHh`}HzajMW3xIcSz-O>_ z9X}!T%pJfRfJcDu0e>TOj{s`GH-JA7diG_&`+zS2zasS9^MJSa{krV(s=3UO5_jcA z*=sSc>eIo9-L@>X*tBJ>6uQ2xih5W)6o;-*Ynz8fdo)Yi=3^rrj#tGX4h*xZ#9VRu zEm^0mF9QAC*c?BKdRL8K z^~P>p6n*iaZ`HvdS7oho17chBr&c)wA6=h!mk5M)4eD#F7Q{0qXzzt#E(M&aO~5;K zXQyht$vb7N?A$fmy&(iGKN!V*m0zgbeONYDzS3IzQENO`Z>`mRddD>SPQWAMTaYVF z%3Ebgd8*D1vkNr}3TSn`y}jKVl~%Kbd<}8&m~Ekx#F11B{ZFp z=dh1x%BR~E%($j|knU0#jdj9N#c@nZkoAL=Se zts`-+KXV2yaZMTJ66y8Pz=c%V;)uqZT2&n{k*>hwb>&LIaN!-a_Uzx=dJszAsGKkU E1H+Ue)&Kwi literal 0 HcmV?d00001 diff --git a/libftx/libftx.h b/libftx/libftx.h new file mode 100644 index 0000000..a1f2794 --- /dev/null +++ b/libftx/libftx.h @@ -0,0 +1,73 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* libftx.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet +# include + +int ft_printf(const char *format, ...); +char *get_next_line(int fd); + +int ft_atoi(const char *nptr); +void ft_bzero(void *s, size_t n); +void *ft_calloc(size_t nmemb, size_t size); +int ft_isalnum(int c); +int ft_isalpha(int c); +int ft_isascii(int c); +int ft_isdigit(int c); +int ft_isprint(int c); +void *ft_memchr(const void *s, int c, size_t n); +int ft_memcmp(const void *s1, const void *s2, size_t n); +void *ft_memcpy(void *dest, const void *src, size_t n); +void *ft_memmove(void *dest, const void *src, size_t n); +void *ft_memset(void *s, int c, size_t n); +char *ft_strchr(const char *s, int c); +char *ft_strdup(const char *s); +size_t ft_strlcat(char *dst, const char *src, size_t size); +size_t ft_strlcpy(char *dst, const char *src, size_t size); +size_t ft_strlen(const char *s); +int ft_strncmp(const char *s1, const char *s2, size_t n); +char *ft_strnstr(const char *big, const char *little, size_t len); +char *ft_strrchr(const char *s, int c); +int ft_tolower(int c); +int ft_toupper(int c); + +char *ft_substr(char const *s, unsigned int start, size_t len); +char *ft_strjoin(char const *s1, char const *s2); +char *ft_strtrim(char const *s1, char const *set); +char **ft_split(char const *s, char c); +char *ft_itoa(int n); +char *ft_strmapi(char const *s, char (*f)(unsigned int, char)); +void ft_striteri(char *s, void (*f)(unsigned int, char*)); +void ft_putchar_fd(char c, int fd); +void ft_putstr_fd(char *s, int fd); +void ft_putendl_fd(char *s, int fd); +void ft_putnbr_fd(int n, int fd); + +typedef struct s_list +{ + void *content; + struct s_list *next; +} t_list; + +t_list *ft_lstnew(void *content); +void ft_lstadd_front(t_list **lst, t_list *nouveau); +int ft_lstsize(t_list *lst); +t_list *ft_lstlast(t_list *lst); +void ft_lstadd_back(t_list **lst, t_list *nouveau); +void ft_lstdelone(t_list *lst, void (*del)(void *)); +void ft_lstclear(t_list **lst, void (*del)(void *)); +void ft_lstiter(t_list *lst, void (*f)(void *)); +t_list *ft_lstmap(t_list *lst, void *(*f)(void *), void (*del)(void *)); + +#endif diff --git a/libftx/printf b/libftx/printf new file mode 160000 index 0000000..898be16 --- /dev/null +++ b/libftx/printf @@ -0,0 +1 @@ +Subproject commit 898be1619f6f91d11e1ed7ea0b8fe4f70c42a70f diff --git a/main.c b/main.c new file mode 100644 index 0000000..f94d9df --- /dev/null +++ b/main.c @@ -0,0 +1,29 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* main.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cchauvet O z`|kO>ckZ0KeL6pKFrp}oL}7c`5+atd-u9*O5FZY)^=uux)v@WX(ZcM{g_#?@A0j`G zO<^{FrEnIWbKLCG@8I$iYznh;q;PF6e| zydD6Ncncym8mpTwi$pn!#A8TOr^Gpm_;boCA90mvJQjCRRj|G{Ut@Em<7JqN#Z74a zC_Txg@%FasyoZl@$PLl%lnQHTonq0AEvU{~r&;t)K8)gCvgjrb;y&2SW2IPv zPi53Eq36q2I%3=$c@WwGjMO=R#WzMk;c7Uhtrtm(1r^KAYgkiU}OWV zcpI)79yltzrH1y0F!k@kKxGrqD$3u7C92>Nyn6UIue2O&^E&xJl<~6IpyiL0TG>g)if#@ zWHAv|hA=kcn#(4gnq|9OZOPR#1<2O0?In-pnr<`Rhy{W|-K_YoG2A2|YmxyCe@rCg zhgs%WWXN4P_0tA(DEng3FemD^Wug<^uChZ9k7kDZc4l^I{aSA(+jKqC7_1tmVb{w5 zb-P>}gtw60(VxjyGubiSnKsKcaA0{()-y4qtgDwAh69t1tCye1j@y=NlwHftIxZ-p zl|NB#=uVBM>y`-<<*@)3>nk>OQ?D8}%b8))R9Un^sWhKF}& z?i($6rtA6nXZt*k`p#_c)q4B2zO6pb4*)b++EVaf{egw!8Tkx36&{qee#ey4k1%B_ zrF6Ho#IfFP1Rft0e!la`)N_&H_EnLWK*Q(5S}=u}zb%B#si8Lr=0e#lw^Bu6Ue2OE zuck5$JTIjoe0ahtYh9s>gz8ts6>}=%6)uGDSivEo@||BfrLxYIB-e+kC<$i1Ca`Z* zYcLahud>_)L>P~?D~#WB8$N#<{={u~Dp0&U6c3FYJ+ObIc=X`GsDWFG&240>3TsWdEMTmju2f z@oxzHmBfE5@UId-C-9#VPwy`(-ZSkdRfLqp_XzuL!DAOZ51OR!2s|k9uL?gS5`R(f z!ShUGoT6HSX2H163Okw42p)BV`b=}Cn{b;#@7jJ}qmgYibj>xUT&7iYS7%zuahPUX zKH#$zqvTbgs*G8n!^e85WE&HphQ@-jb+c-q=@JLOuM9GQcuXr>&87iAI5ZQkat*FZ zxXR&b7Z`qsX>iGp8@4+w{1~<3n5{Prv9SNyWxyWyEV#$$atIp`s{20jb!m)!H#}JD zhTsXxE8^;-?+cR8-;x3nr2cu(4zqs^e-wb=`3wr#QGXsLX&lu1T-XOW9Lu^F zfy4V=KEGcJ`wYwlh4!Dgk6?g4W&3$yKR}A2m+e0QK5YMwh3tPP=#o9Xm$29vDkBO~ qN+gEAf$-O^Y>#J3{`P@ly+RSscTnX0!<@qGYa;*4L1P%p_WuGqpaQ%A literal 0 HcmV?d00001 diff --git a/map b/map new file mode 100644 index 0000000..caae4fa --- /dev/null +++ b/map @@ -0,0 +1,5 @@ +###### +# # +# # +# # +###### diff --git a/minilibx-linux b/minilibx-linux new file mode 160000 index 0000000..7dc53a4 --- /dev/null +++ b/minilibx-linux @@ -0,0 +1 @@ +Subproject commit 7dc53a411a7d4ae286c60c6229bd1e395b0efb82 diff --git a/so_long b/so_long new file mode 100755 index 0000000000000000000000000000000000000000..9e84bb53dcfd4bf6bb4af5b10a4c390614db1f99 GIT binary patch literal 73568 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