diff --git a/Makefile b/Makefile index 8727333..0d3701e 100644 --- a/Makefile +++ b/Makefile @@ -23,8 +23,6 @@ SRCS = push_swap.c \ algo.c \ print.c \ swap.c \ - solve_sorting.c \ - algo_bubble_sort.c \ stop.c ODIR = ./builds diff --git a/README.md b/README.md index e42adc2..87f784d 100644 --- a/README.md +++ b/README.md @@ -63,19 +63,33 @@ --- pour utiliser l'algorithme de tris de ce programme dans votre propre programme, il faut : + 1. copier le fichier algo.c + 2. mettre son prototype dans votre header.h : `void hugo_sort(t_stack **a, t_stack **b, t_list **solution)` + 3. mettre le fichiers dans vos srcs dans Makefile + 4. et verifier que vos functions d'actions (push, swap, rotate) ont bien les meme prototypes : + - `t_list *sa(t_stack **stack, t_list **lst);` + - `t_list *ss(t_stack **a, t_stack **b, t_list **lst);` + - `t_list *pa(t_stack **dst, t_stack **src, t_list **lst);` + - `t_list *pb(t_stack **dst, t_stack **src, t_list **lst);` + - `t_list *ra(t_stack **stack, t_list **lst);` + - `t_list *rb(t_stack **stack, t_list **lst);` + - `t_list *rr(t_stack **a, t_stack **b, t_list **lst);` + - `t_list *rra(t_stack **stack, t_list **lst);` + - `t_list *rrb(t_stack **stack, t_list **lst);` + - `t_list *rrr(t_stack **a, t_stack **b, t_list **lst);` @@ -84,21 +98,36 @@ pour utiliser l'algorithme de tris de ce programme dans votre propre programme, ce programme push_swap.c s'organise de la facon suivante : 1. des fonctions pour faire fonctionner l'algorithme de tris (principalement parsing des donnees, et les actions utilisees par l'algorithme de tris : push, swap, rotate et reverse rotate) : + - push_swap.c : contient la fonction main et 4 autres fonctions : + - is_valid : verification d'erreur de parsing des listes données + - check_flag : regarde la presence des flags, pour l'instant uniquement -p pour print les etapes du tri + - init_stack : qui parse la pile a trier dans une liste chainee + - launch_algo : la fonction qui lance l'algorithme de tri, en lui envoyant ce qui est necessaire (les deux piles a et b et la liste de solutions) + - stop.c : qui gere les erreurs, l'usage, mais aussi qui free avant de fermer le programme + - ps_stop : recoit toutes les listes chainees du programme, envoyer NULL si on ne veut pas free la liste, et le dernier int permet de savoir si on veut arreter le programme (>= 0) et si on veut signaler une erreur (> 1) + - ps_error : la gestion des erreurs + - ps_usage : en cas d'erreur = 1, affiche l'usage du programme + - print.c : contient les fonctions necessaires pour afficher le resultat + - print_result : affiche le resultat, et si presence du flag -p affiche aussi les etapes de tris + - fill_solution : remplit la liste chainee solution au fur et a mesure de l'appel des fonctions push swap et rotate (pas optimisé pour raison de compatibilité avec l'appel des fonctions du programme de luke : les actions (push, swap, etc) ne recoivent pas de flag en argument, donc fill_solution remplis toutes les infos necessaires pour le flag, meme s'il n'y a pas de flag) + - toutes les fonctions d'action (push, swap, rotate, et reverse rotate) + 2. les fonctions d'algorithme, qui sont appellees par launch_solution() + - hugo_sort : pour l'instant une fonction test qui utilise toutes les actions (push, swap, rotate) diff --git a/builds/algo.o b/builds/algo.o index bf97471..d5123c8 100644 Binary files a/builds/algo.o and b/builds/algo.o differ diff --git a/builds/algo_bubble_sort.o b/builds/algo_bubble_sort.o new file mode 100644 index 0000000..a898837 Binary files /dev/null and b/builds/algo_bubble_sort.o differ diff --git a/builds/push_swap.o b/builds/push_swap.o index c51e740..49fcc6d 100644 Binary files a/builds/push_swap.o and b/builds/push_swap.o differ diff --git a/builds/pushswap.o b/builds/pushswap.o deleted file mode 100644 index 5b5a637..0000000 Binary files a/builds/pushswap.o and /dev/null differ diff --git a/builds/stop.o b/builds/stop.o new file mode 100644 index 0000000..1fb1ed2 Binary files /dev/null and b/builds/stop.o differ diff --git a/push_swap b/push_swap new file mode 100755 index 0000000..9c07b88 Binary files /dev/null and b/push_swap differ