diff --git a/src/game_logic.c b/src/game_logic.c index 9e251ae..3dcd76e 100644 --- a/src/game_logic.c +++ b/src/game_logic.c @@ -19,6 +19,16 @@ void swap_grids(void) { back_grid = temp; } +void reset_game(void) { + // Clear the back and front grid + memset(back_grid, 0, GRID_SIDE * GRID_SIDE); + memset(front_grid, 0, GRID_SIDE * GRID_SIDE); + + // Then add two random tiles + add_random_tile(); + add_random_tile(); +} + uint8_t *get_front_grid(void) { return front_grid; } diff --git a/src/game_logic.h b/src/game_logic.h index d6ed5a2..4702000 100644 --- a/src/game_logic.h +++ b/src/game_logic.h @@ -12,6 +12,7 @@ typedef enum { RIGHT } step_direction; +void reset_game(void); uint8_t *get_front_grid(void); uint8_t *step_game(step_direction dir); uint8_t add_random_tile(void); diff --git a/src/main.c b/src/main.c index eaf19d9..b62d4bd 100644 --- a/src/main.c +++ b/src/main.c @@ -7,6 +7,7 @@ #include "mem_registers.h" #include "mem_map.h" #include "input.h" +#include "game_logic.h" void __low_level_init(void); @@ -26,6 +27,8 @@ void __low_level_init(void) { __task int main(void) { key k; + reset_game(); + while(1){ lfsr_update(); k = read_kb();