X-Git-Url: https://git.draconx.ca/gitweb/rrace.git/blobdiff_plain/4ba1a1949117408cf81132b4f168a4e7f0a79ac3..31d8eda9987703c64fc63f4ddb4088cf3be5b7cc:/src/game.c diff --git a/src/game.c b/src/game.c index 2ad3a7e..4946f8d 100644 --- a/src/game.c +++ b/src/game.c @@ -168,6 +168,33 @@ void game_reset(struct board *board) board->y = y; } } + +/* Uncomment to make every game stupidly easy -- winnable in 1 move */ +#if 0 + /* Force empty space to the border */ + if (board_position(board->x, board->y) & GOAL_MASK) { + switch (rng_uniform_int(4)) { + case 0: game_do_move(board, board->x, 0); break; + case 1: game_do_move(board, board->x, 4); break; + case 2: game_do_move(board, 0, board->y); break; + case 3: game_do_move(board, 4, board->y); break; + } + } + + /* Force goal to match the current board */ + for (i = 0; i < 3; i++) { + board->goal[i] = (board->game[i] & GOAL_MASK) >> GOAL_SHIFT; + } + + /* Move empty space back to the centre */ + if (board->x == 0 || board->x == 4) { + game_do_move(board, 1+rng_uniform_int(3), board->y); + } + + if (board->y == 0 || board->y == 4) { + game_do_move(board, board->x, 1+rng_uniform_int(3)); + } +#endif } uint_fast32_t game_do_move(struct board *board, int x, int y)