X-Git-Url: https://git.draconx.ca/gitweb/rrace.git/blobdiff_plain/366b1a5719699e7b6daf2c4ebafbebab78cb5128..a3f2189bfac7e5b1acdf3640cd3b50a7a6636906:/src/game.h diff --git a/src/game.h b/src/game.h index f4473a7..d17eb99 100644 --- a/src/game.h +++ b/src/game.h @@ -42,11 +42,11 @@ struct board { * corresponds to position (0,0), bit 4 is position (4,0) and bit 25 * is position (4, 4). * - * game[0] - the board mask, all bits set except one indicating the + * game[0] - least significant bit of the tile's colour. + * game[1] - tile colour. + * game[2] - most significant bit of the tile's colour. + * game[3] - the board mask, all bits set except one indicating the * absense of a tile at this position. - * game[1] - least significant bit of the tile's colour. - * game[2] - tile colour. - * game[3] - most significant bit of the tile's colour. */ uint_least32_t game[4]; @@ -119,6 +119,11 @@ static inline uint_fast32_t board_mask_v(int x, int y0, int y1) */ int game_do_move(struct board *board, int x, int y); +/* + * Returns 1 if the game is in a winning position, or 0 otherwise. + */ +int game_check_goal(struct board *board); + /* * Initialize the game RNG such that the next call to game_reset will produce a * new board that is entirely dependent on the given seed value. @@ -130,4 +135,9 @@ void game_reseed(unsigned long long seed); */ void game_reset(struct board *board); +/* + * Disable new moves and clear all tile bits other than the 9 goal tiles. + */ +void game_finish(struct board *board); + #endif