+ i = 0; while (i < 9)
+ {
+ ttt_board_write (&board, stdout);
+ printf ("\n");
+
+ printf ("Make a move: ");
+ m = getchar();
+ if (m == EOF)
+ {
+ printf ("\nGoodbye.\n");
+ exit (1);
+ }
+ newline = getchar();
+ m -= '0';
+ move_result = ttt_board_make_move (&board, m);
+ if (move_result == TTT_ERROR_NOT_GRID)
+ {
+ printf ("Sorry, %c is an invalid move.\n"
+ "Please enter a number between 0 & 8.", m + '0');
+ continue;
+ }
+ if (move_result == TTT_ERROR_NOT_VALID_MOVE)
+ continue;
+
+ winner = ttt_board_is_won (&board);
+ if (winner == TTT_CELL_X)
+ {
+ printf ("X's Win! ");
+ break;
+ }
+ else if (winner == TTT_CELL_O)
+ {
+ printf ("O's Win! ");
+ break;
+ }
+ else if (i == 8)
+ {
+ printf ("Cat's Game!");
+ break;
+ }
+ i++;
+ }
+