* and update the location of the empty position which, if the move was valid
* is now (x, y).
*
- * Returns 0 if the move was valid (and board has been updated), -1 otherwise.
+ * Returns the board bitmap indicating which positions changed. A return
+ * value of 0 therefore indicates an invalid move.
*/
-int game_do_move(struct board *board, int x, int y);
+uint_fast32_t game_do_move(struct board *board, int x, int y);
/*
* Returns the board bitmap setting game locations that differ from the goal.
*/
void game_begin(struct board *board);
+/*
+ * Return the total elapsed time (in ms) since the last call to game_begin.
+ */
+int_fast32_t game_elapsed(struct board *board);
+
/*
* Disable new moves and clear all tile bits other than the 9 goal tiles.
* Returns the total elapsed time (in ms).