* 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];
*/
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.
*/
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