44 lines
1.5 KiB
C
44 lines
1.5 KiB
C
/* ************************************************************************** */
|
|
/* */
|
|
/* ::: :::::::: */
|
|
/* moves.c :+: :+: :+: */
|
|
/* +:+ +:+ +:+ */
|
|
/* By: maiboyer <maiboyer@student.42.fr> +#+ +:+ +#+ */
|
|
/* +#+#+#+#+#+ +#+ */
|
|
/* Created: 2024/01/11 16:17:26 by maiboyer #+# #+# */
|
|
/* Updated: 2024/01/11 16:31:56 by maiboyer ### ########.fr */
|
|
/* */
|
|
/* ************************************************************************** */
|
|
|
|
#include "app/moves.h"
|
|
#include "app/element.h"
|
|
#include "app/state.h"
|
|
|
|
void push_a(t_state *s);
|
|
void push_b(t_state *s);
|
|
void swap_a(t_state *s);
|
|
void swap_b(t_state *s);
|
|
void rotate_a(t_state *s);
|
|
void rotate_b(t_state *s);
|
|
void rev_rotate_a(t_state *s);
|
|
void rev_rotate_b(t_state *s);
|
|
|
|
void do_move(t_move m, t_state *s)
|
|
{
|
|
if (m & PUSH_A)
|
|
push_a(s);
|
|
if (m & PUSH_B)
|
|
push_b(s);
|
|
if (m & SWAP_A)
|
|
swap_a(s);
|
|
if (m & SWAP_B)
|
|
swap_b(s);
|
|
if (m & ROTATE_A)
|
|
rotate_a(s);
|
|
if (m & ROTATE_B)
|
|
rotate_b(s);
|
|
if (m & REVERSE_ROTATE_A)
|
|
rev_rotate_a(s);
|
|
if (m & REVERSE_ROTATE_B)
|
|
rev_rotate_b(s);
|
|
}
|