From e9fdc6a0dcf8474cabef1838509f5e94e9b57a62 Mon Sep 17 00:00:00 2001 From: kinou-p Date: Wed, 19 Jan 2022 04:01:40 +0100 Subject: [PATCH] done --- Makefile | 10 ++-- Utils/push_swap.h | 13 ++++- Utils/sort_little.c | 4 +- checker_folder/a.out | Bin 53584 -> 0 bytes checker_folder/checker_process.c | 92 +++++++++++++++++++++++++++++++ checker_folder/checker_utils.c | 19 ++++--- checker_folder/main.c | 38 ++++++------- checker_linux | Bin 38192 -> 0 bytes 8 files changed, 141 insertions(+), 35 deletions(-) delete mode 100755 checker_folder/a.out create mode 100644 checker_folder/checker_process.c delete mode 100644 checker_linux diff --git a/Makefile b/Makefile index 8d51913..d8071d0 100644 --- a/Makefile +++ b/Makefile @@ -6,11 +6,11 @@ # By: apommier +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2021/11/13 13:06:47 by apommier #+# #+# # -# Updated: 2022/01/18 05:51:26 by apommier ### ########.fr # +# Updated: 2022/01/19 03:50:25 by apommier ### ########.fr # # # # **************************************************************************** # -NAME = push_swap +NAME = push_swap checker SRCS = Utils/push_swap.c \ Utils/process.c\ main.c\ @@ -24,6 +24,7 @@ SRCS = Utils/push_swap.c \ OBJS = ${SRCS:.c=.o} BONUS_C = checker_folder/main.c\ checker_folder/checker_utils.c\ + checker_folder/checker_process.c\ Utils/push_swap.c \ Utils/process.c\ Utils/sorting.c\ @@ -44,15 +45,16 @@ ${NAME}:${OBJS} gcc -g ${OBJS} ${LIBFT}/libft.a mv a.out push_swap -bonus:${BONUS_C} +bonus:${BONUS_O} make bonus -C ${LIBFT} - gcc -g ${CFLAGS} ${LIBFT}/libft.a + gcc -g ${CFLAGS} ${BONUS_O} ${LIBFT}/libft.a mv a.out checker all: ${NAME} clean: ${RM} ${OBJS} + ${RM} ${BONUS_O} make clean -C ${LIBFT} fclean: clean diff --git a/Utils/push_swap.h b/Utils/push_swap.h index bb3111e..515d243 100644 --- a/Utils/push_swap.h +++ b/Utils/push_swap.h @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2021/11/25 23:15:17 by apommier #+# #+# */ -/* Updated: 2022/01/18 21:45:38 by apommier ### ########.fr */ +/* Updated: 2022/01/19 03:53:31 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -47,6 +47,13 @@ t_list *ft_pa(t_list **list_a, t_list **list_b, t_slist **process); void ft_pb(t_list **list_a, t_list **list_b, t_slist **process); void ft_rra_rrb(t_list **list, t_slist **process, char type); +/*process fonction for checker*/ +int sa_sb(t_list **list, t_slist **process, char type, int set); +int ra_rb(t_list **list, t_slist **process, char type); +int pa(t_list **list_a, t_list **list_b, t_slist **process); +int pb(t_list **list_a, t_list **list_b, t_slist **process); +int rra_rrb(t_list **list, t_slist **process, char type); + /*sort fonction*/ t_list *best_b(t_list **b, t_list *start_b, t_list *a, int best_move); t_list *swap(t_list *a, t_list **b, t_slist **action, t_list *to_swap); @@ -77,8 +84,8 @@ int ft_strcmp(const char *s1, t_slist *str); /*checker*/ int checker(t_slist *action, t_list **a); -void do_move(t_list **lst, t_list **lst_b, t_slist *a, t_slist *delete); -void do_move2(t_list **lst, t_list **lst_b, t_slist *a, t_slist **delete); +int do_move(t_list **lst, t_list **lst_b, t_slist *a, t_slist *delete); +int do_move2(t_list **lst, t_list **lst_b, t_slist *a, t_slist **delete); t_slist *verify_list(t_slist *a); void big_slstclear(t_slist **lst); diff --git a/Utils/sort_little.c b/Utils/sort_little.c index c525c05..87b3d51 100644 --- a/Utils/sort_little.c +++ b/Utils/sort_little.c @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/01/18 03:31:31 by apommier #+# #+# */ -/* Updated: 2022/01/18 21:59:23 by apommier ### ########.fr */ +/* Updated: 2022/01/19 03:32:05 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -98,6 +98,8 @@ t_list *sort5(t_list *list, t_slist **action, t_list *b) int is_sorted(t_list *list) { + if (!list) + return (0); while (list->next) { if (list->index > list->next->index) diff --git a/checker_folder/a.out b/checker_folder/a.out deleted file mode 100755 index b6824c0a90f12f6b011e9a65e1bd7700ecb5ce2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53584 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 i9=GPT?~uH`YLN0Z;c(m} +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/01/17 11:52:37 by apommier #+# #+# */ +/* Updated: 2022/01/17 11:52:37 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../Utils/push_swap.h" + +int sa_sb(t_list **list, t_slist **process, char type, int set) +{ + t_list *swap; + + if (!(*list) || !(*list)->next) + return (1); + swap = (*list)->next->next; + (*list)->next->next = *list; + *list = (*list)->next; + (*list)->next->next = swap; + if (set) + { + if (type == 'a') + s_lstadd_back(process, new_slist("sa")); + else if (type == 'b') + s_lstadd_back(process, new_slist("sb")); + } + return (1); +} + +int ra_rb(t_list **list, t_slist **process, char type) +{ + t_list *swap; + + if (!(*list) || !(*list)->next) + return (1); + swap = *list; + (ft_lstlast(*list))->next = *list; + *list = (*list)->next; + swap->next = 0; + if (type == 'a') + s_lstadd_back(process, new_slist("ra")); + else if (type == 'b') + s_lstadd_back(process, new_slist("rb")); + return (1); +} + +int pa(t_list **list_a, t_list **list_b, t_slist **process) +{ + t_list *swap; + + if (!(*list_b)) + return (1); + swap = *list_b; + *list_b = (*list_b)->next; + ft_lstadd_front(list_a, swap); + s_lstadd_back(process, new_slist("pa")); + return (1); +} + +int pb(t_list **list_a, t_list **list_b, t_slist **process) +{ + t_list *swap; + + if (!(*list_a)) + return (1); + swap = *list_a; + *list_a = (*list_a)->next; + ft_lstadd_front(list_b, swap); + s_lstadd_back(process, new_slist("pb")); + return (1); +} + +int rra_rrb(t_list **list, t_slist **process, char type) +{ + t_list *swap; + + if (!(*list) || !(*list)->next) + return (1); + swap = ft_lstlast(*list); + ft_lstbeforelast(*list)->next = 0; + ft_lstadd_front(list, swap); + if (type == 'a') + s_lstadd_back(process, new_slist("rra")); + else if (type == 'b') + s_lstadd_back(process, new_slist("rrb")); + return (1); +} diff --git a/checker_folder/checker_utils.c b/checker_folder/checker_utils.c index da13f74..39a345e 100644 --- a/checker_folder/checker_utils.c +++ b/checker_folder/checker_utils.c @@ -6,24 +6,27 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/01/18 02:14:22 by apommier #+# #+# */ -/* Updated: 2022/01/18 06:49:36 by apommier ### ########.fr */ +/* Updated: 2022/01/19 03:42:58 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ #include "../Utils/push_swap.h" -void do_move2(t_list **lst, t_list **lst_b, t_slist *a, t_slist **delete) +int do_move2(t_list **lst, t_list **lst_b, t_slist *a, t_slist **delete) { if (!ft_strcmp("rr\n", a)) { - if ((*lst)->next) - ft_ra_rb(lst, delete, 'a'); - if ((*lst_b)->next) - ft_ra_rb(lst_b, delete, 'b'); + if (!ra_rb(lst, delete, 'a')) + return (0); + if (!ra_rb(lst_b, delete, 'b')) + return (0); } if (!ft_strcmp("rrr\n", a)) { - ft_rra_rrb(lst, delete, 'a'); - ft_rra_rrb(lst_b, delete, 'a'); + if (!rra_rrb(lst, delete, 'a')) + return (0); + if (!rra_rrb(lst_b, delete, 'a')) + return (0); } + return (1); } diff --git a/checker_folder/main.c b/checker_folder/main.c index 1d56785..cbc0dfe 100644 --- a/checker_folder/main.c +++ b/checker_folder/main.c @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/01/17 21:29:45 by apommier #+# #+# */ -/* Updated: 2022/01/18 06:49:49 by apommier ### ########.fr */ +/* Updated: 2022/01/19 03:44:06 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -50,26 +50,26 @@ t_slist *verify_list(t_slist *a) return (start); } -void do_move(t_list **lst, t_list **lst_b, t_slist *a, t_slist *delete) +int do_move(t_list **lst, t_list **lst_b, t_slist *a, t_slist *delete) { - if (!ft_strcmp("pa\n", a)) - ft_pa(lst, lst_b, &delete); - else if (!ft_strcmp("pb\n", a)) - ft_pb(lst, lst_b, &delete); - else if (!ft_strcmp("sa\n", a)) - ft_sa_sb(lst, &delete, 'a', 0); - else if (!ft_strcmp("sb\n", a)) - ft_sa_sb(lst_b, &delete, 'b', 0); - else if (!ft_strcmp("ra\n", a)) - ft_ra_rb(lst, &delete, 'a'); - else if (!ft_strcmp("rb\n", a)) - ft_ra_rb(lst_b, &delete, 'b'); - else if (!ft_strcmp("rra\n", a)) - ft_rra_rrb(lst, &delete, 'a'); - else if (!ft_strcmp("rrb\n", a)) - ft_rra_rrb(lst_b, &delete, 'b'); + if (!ft_strcmp("pa\n", a) && !pa(lst, lst_b, &delete)) + return (0); + else if (!ft_strcmp("pb\n", a) && !pb(lst, lst_b, &delete)) + return (0); + else if (!ft_strcmp("sa\n", a) && !sa_sb(lst, &delete, 'a', 0)) + return (0); + else if (!ft_strcmp("sb\n", a) && !sa_sb(lst, &delete, 'a', 0)) + return (0); + else if (!ft_strcmp("ra\n", a) && !ra_rb(lst, &delete, 'a')) + return (0); + else if (!ft_strcmp("rb\n", a) && !ra_rb(lst_b, &delete, 'b')) + return (0); + else if (!ft_strcmp("rra\n", a) && !rra_rrb(lst, &delete, 'a')) + return (0); + else if (!ft_strcmp("rrb\n", a) && !rra_rrb(lst_b, &delete, 'b')) + return (0); else - do_move2(lst, lst_b, a, &delete); + return (do_move2(lst, lst_b, a, &delete)); s_lstclear(&delete); } diff --git a/checker_linux b/checker_linux deleted file mode 100644 index 002d5930236c65f1a695bf2fe08489bec0c49745..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38192 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 Z+eg>0QN!_&s{El1isOi86qsE8{{pOBm#zQ+