introduce state var and the moves on the state
This commit is contained in:
parent
05daa6c06e
commit
7797fe91c4
@ -31,4 +31,15 @@ void rotate(t_list **stack);
|
|||||||
void reverse_rotate(t_list **stack);
|
void reverse_rotate(t_list **stack);
|
||||||
void swap(t_list **stack);
|
void swap(t_list **stack);
|
||||||
|
|
||||||
|
void pa(t_state *state);
|
||||||
|
void pb(t_state *state);
|
||||||
|
void sa(t_state *state);
|
||||||
|
void sb(t_state *state);
|
||||||
|
void ss(t_state *state);
|
||||||
|
void ra(t_state *state);
|
||||||
|
void rb(t_state *state);
|
||||||
|
void rr(t_state *state);
|
||||||
|
void rra(t_state *state);
|
||||||
|
void rrb(t_state *state);
|
||||||
|
void rrr(t_state *state);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -13,6 +13,18 @@
|
|||||||
#include "libft.h"
|
#include "libft.h"
|
||||||
#include "push_swap.h"
|
#include "push_swap.h"
|
||||||
|
|
||||||
|
void pa(t_state *state)
|
||||||
|
{
|
||||||
|
push(&(state->a), &(state->b));
|
||||||
|
ft_printf("pa\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
void pb(t_state *state)
|
||||||
|
{
|
||||||
|
push(&(state->b), &(state->a));
|
||||||
|
ft_printf("pb\n");
|
||||||
|
}
|
||||||
|
|
||||||
void push(t_list **stack_1, t_list **stack_2)
|
void push(t_list **stack_1, t_list **stack_2)
|
||||||
{
|
{
|
||||||
t_list *temp;
|
t_list *temp;
|
||||||
|
|||||||
@ -11,6 +11,26 @@
|
|||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
#include "libft.h"
|
#include "libft.h"
|
||||||
|
#include "push_swap.h"
|
||||||
|
|
||||||
|
void rra(t_state *state)
|
||||||
|
{
|
||||||
|
reverse_rotate(&(state->a));
|
||||||
|
ft_printf("rra\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
void rrb(t_state *state)
|
||||||
|
{
|
||||||
|
reverse_rotate(&(state->b));
|
||||||
|
ft_printf("rrb\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
void rrr(t_state *state)
|
||||||
|
{
|
||||||
|
reverse_rotate(&(state->a));
|
||||||
|
reverse_rotate(&(state->b));
|
||||||
|
ft_printf("rrr\n");
|
||||||
|
}
|
||||||
|
|
||||||
void reverse_rotate(t_list **stack)
|
void reverse_rotate(t_list **stack)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -11,6 +11,26 @@
|
|||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
#include "libft.h"
|
#include "libft.h"
|
||||||
|
#include "push_swap.h"
|
||||||
|
|
||||||
|
void ra(t_state *state)
|
||||||
|
{
|
||||||
|
rotate(&(state->a));
|
||||||
|
ft_printf("ra\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
void rb(t_state *state)
|
||||||
|
{
|
||||||
|
rotate(&(state->b));
|
||||||
|
ft_printf("rb\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
void rr(t_state *state)
|
||||||
|
{
|
||||||
|
rotate(&(state->a));
|
||||||
|
rotate(&(state->b));
|
||||||
|
ft_printf("rr\n");
|
||||||
|
}
|
||||||
|
|
||||||
void rotate(t_list **stack)
|
void rotate(t_list **stack)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -11,6 +11,26 @@
|
|||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
#include "libft.h"
|
#include "libft.h"
|
||||||
|
#include "push_swap.h"
|
||||||
|
|
||||||
|
void sa(t_state *state)
|
||||||
|
{
|
||||||
|
swap(&(state->a));
|
||||||
|
ft_printf("sa\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
void sb(t_state *state)
|
||||||
|
{
|
||||||
|
swap(&(state->b));
|
||||||
|
ft_printf("rb\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
void ss(t_state *state)
|
||||||
|
{
|
||||||
|
swap(&(state->a));
|
||||||
|
swap(&(state->b));
|
||||||
|
ft_printf("ss\n");
|
||||||
|
}
|
||||||
|
|
||||||
void swap(t_list **stack)
|
void swap(t_list **stack)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
/* By: whaffman <whaffman@student.codam.nl> +#+ +:+ +#++#++:++#++ */
|
/* By: whaffman <whaffman@student.codam.nl> +#+ +:+ +#++#++:++#++ */
|
||||||
/* +#+ +#+#+ +#++#+ +#+ \o/ */
|
/* +#+ +#+#+ +#++#+ +#+ \o/ */
|
||||||
/* Created: 2024/11/04 13:04:11 by whaffman #+#+# #+#+# #+# #+# | */
|
/* Created: 2024/11/04 13:04:11 by whaffman #+#+# #+#+# #+# #+# | */
|
||||||
/* Updated: 2024/11/07 13:33:13 by whaffman ### ### ### ### / \ */
|
/* Updated: 2024/11/07 13:44:28 by whaffman ### ### ### ### / \ */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -36,36 +36,40 @@ void print_stack(const char *name, t_list *stack)
|
|||||||
ft_printf("\n");
|
ft_printf("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void print_stacks(t_list *stack_a, t_list *stack_b)
|
void print_state(t_state *state)
|
||||||
{
|
{
|
||||||
ft_printf("\n");
|
ft_printf("\n");
|
||||||
print_stack("A", stack_a);
|
print_stack("A", state->a);
|
||||||
print_stack("B", stack_b);
|
print_stack("B", state->b);
|
||||||
ft_printf("===================\n");
|
ft_printf("===================\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
t_state *initialise_state(t_state **state)
|
||||||
|
{
|
||||||
|
*state = malloc(sizeof (t_state));
|
||||||
|
if (*state)
|
||||||
|
{
|
||||||
|
(*state)->a = NULL;
|
||||||
|
(*state)->b = NULL;
|
||||||
|
}
|
||||||
|
return (*state);
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
t_list *stack_a;
|
t_state *state;
|
||||||
t_list *stack_b;
|
|
||||||
|
|
||||||
stack_a = NULL;
|
state = NULL;
|
||||||
stack_b = NULL;
|
if (!initialise_state(&state))
|
||||||
|
return (1);
|
||||||
while (argc-- > 1)
|
while (argc-- > 1)
|
||||||
{
|
{
|
||||||
if (!new_element(&stack_a, argv[argc]))
|
if (!new_element(&(state->a), argv[argc]))
|
||||||
{
|
{
|
||||||
ft_putstr_fd("Error\n", 2);
|
ft_putstr_fd("Error\n", 2);
|
||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
push(&stack_a, &stack_b);
|
print_state(state);
|
||||||
push(&stack_a, &stack_b);
|
|
||||||
push(&stack_a, &stack_b);
|
|
||||||
rotate(&stack_a);
|
|
||||||
reverse_rotate(&stack_b);
|
|
||||||
print_stacks(stack_a, stack_b);
|
|
||||||
swap(&stack_a);
|
|
||||||
print_stacks(stack_a, stack_b);
|
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user