Skip to content

Commit

Permalink
Reorder AI checks to ensure win.
Browse files Browse the repository at this point in the history
  • Loading branch information
Janfel committed May 6, 2021
1 parent 339897e commit b693587
Showing 1 changed file with 18 additions and 18 deletions.
36 changes: 18 additions & 18 deletions input_players.c
Expand Up @@ -21,24 +21,6 @@ int get_input_next_free_space(enum Sign board[3][3], const enum Sign sign) {

int get_input_complete_row(enum Sign b[3][3], const enum Sign sign) {
const enum Sign other = (sign == CROSS) ? CIRCLE : CROSS;
for (int i = 0; i < 3; ++i) {
if (b[i][0] == other && b[i][1] == other && b[i][2] == NONE) { return GET_NUMPAD_NUM(i, 2); }
if (b[i][0] == other && b[i][2] == other && b[i][1] == NONE) { return GET_NUMPAD_NUM(i, 1); }
if (b[i][1] == other && b[i][2] == other && b[i][0] == NONE) { return GET_NUMPAD_NUM(i, 0); }

if (b[0][i] == other && b[1][i] == other && b[2][i] == NONE) { return GET_NUMPAD_NUM(2, i); }
if (b[0][i] == other && b[2][i] == other && b[1][i] == NONE) { return GET_NUMPAD_NUM(1, i); }
if (b[1][i] == other && b[2][i] == other && b[0][i] == NONE) { return GET_NUMPAD_NUM(0, i); }
}

if (b[0][0] == other && b[1][1] == other && b[2][2] == NONE) { return GET_NUMPAD_NUM(2, 2); }
if (b[0][0] == other && b[2][2] == other && b[1][1] == NONE) { return GET_NUMPAD_NUM(1, 1); }
if (b[1][1] == other && b[2][2] == other && b[0][0] == NONE) { return GET_NUMPAD_NUM(0, 0); }

if (b[0][2] == other && b[1][1] == other && b[2][0] == NONE) { return GET_NUMPAD_NUM(2, 0); }
if (b[0][2] == other && b[2][0] == other && b[1][1] == NONE) { return GET_NUMPAD_NUM(1, 1); }
if (b[1][1] == other && b[2][0] == other && b[0][2] == NONE) { return GET_NUMPAD_NUM(0, 2); }

for (int i = 0; i < 3; ++i) {
if (b[i][0] == sign && b[i][1] == sign && b[i][2] == NONE) { return GET_NUMPAD_NUM(i, 2); }
if (b[i][0] == sign && b[i][2] == sign && b[i][1] == NONE) { return GET_NUMPAD_NUM(i, 1); }
Expand All @@ -57,6 +39,24 @@ int get_input_complete_row(enum Sign b[3][3], const enum Sign sign) {
if (b[0][2] == sign && b[2][0] == sign && b[1][1] == NONE) { return GET_NUMPAD_NUM(1, 1); }
if (b[1][1] == sign && b[2][0] == sign && b[0][2] == NONE) { return GET_NUMPAD_NUM(0, 2); }

for (int i = 0; i < 3; ++i) {
if (b[i][0] == other && b[i][1] == other && b[i][2] == NONE) { return GET_NUMPAD_NUM(i, 2); }
if (b[i][0] == other && b[i][2] == other && b[i][1] == NONE) { return GET_NUMPAD_NUM(i, 1); }
if (b[i][1] == other && b[i][2] == other && b[i][0] == NONE) { return GET_NUMPAD_NUM(i, 0); }

if (b[0][i] == other && b[1][i] == other && b[2][i] == NONE) { return GET_NUMPAD_NUM(2, i); }
if (b[0][i] == other && b[2][i] == other && b[1][i] == NONE) { return GET_NUMPAD_NUM(1, i); }
if (b[1][i] == other && b[2][i] == other && b[0][i] == NONE) { return GET_NUMPAD_NUM(0, i); }
}

if (b[0][0] == other && b[1][1] == other && b[2][2] == NONE) { return GET_NUMPAD_NUM(2, 2); }
if (b[0][0] == other && b[2][2] == other && b[1][1] == NONE) { return GET_NUMPAD_NUM(1, 1); }
if (b[1][1] == other && b[2][2] == other && b[0][0] == NONE) { return GET_NUMPAD_NUM(0, 0); }

if (b[0][2] == other && b[1][1] == other && b[2][0] == NONE) { return GET_NUMPAD_NUM(2, 0); }
if (b[0][2] == other && b[2][0] == other && b[1][1] == NONE) { return GET_NUMPAD_NUM(1, 1); }
if (b[1][1] == other && b[2][0] == other && b[0][2] == NONE) { return GET_NUMPAD_NUM(0, 2); }

return get_input_random(b, sign);
}

Expand Down

0 comments on commit b693587

Please sign in to comment.