/* Test ttt-board.c */
-#include <stdio.h>
#include "ttt-board.h"
-int ttt_board_make_move (ttt_board_t *board, int move);
-
-int ttt_board_make_move (ttt_board_t *board, int move)
-{
-
- putchar(move);
- if (board->cells[move] == '_')
+int ttt_board_is_won (ttt_board_t *board)
+{
+ if (
+ (board->cells[0] == board->cells[3] && board->cells[3] == board->cells[6] && board->cells[0] != TTT_CELL_EMPTY) ||
+ (board->cells[1] == board->cells[4] && board->cells[4] == board->cells[7] && board->cells[1] != TTT_CELL_EMPTY) ||
+ (board->cells[2] == board->cells[5] && board->cells[5] == board->cells[8] && board->cells[2] != TTT_CELL_EMPTY) ||
+ (board->cells[0] == board->cells[1] && board->cells[1] == board->cells[2] && board->cells[0] != TTT_CELL_EMPTY) ||
+ (board->cells[3] == board->cells[4] && board->cells[4] == board->cells[5] && board->cells[3] != TTT_CELL_EMPTY) ||
+ (board->cells[6] == board->cells[7] && board->cells[7] == board->cells[8] && board->cells[6] != TTT_CELL_EMPTY) ||
+ (board->cells[0] == board->cells[4] && board->cells[4] == board->cells[8] && board->cells[0] != TTT_CELL_EMPTY) ||
+ (board->cells[2] == board->cells[4] && board->cells[4] == board->cells[6] && board->cells[2] != TTT_CELL_EMPTY)
+ )
{
- board->cells[move] = 'X';
+ printf ("%c's Win! ", board->current_player);
return(1);
}
else
- {
return(0);
- }
}
-
int
main (void)
{
ttt_board_t board;
- int m;
-
+ int m, i, newline;
+
ttt_board_init (&board);
- printf ("This is the board \"");
- ttt_board_write (&board, stdout);
- printf ("\"\n");
-
- printf ("Make a move");
- m = getchar() - '0';
- ttt_board_make_move (&board, m);
+ for (i = 0; i <= 8; i++)
+ {
+ printf ("This is the board \"");
+ ttt_board_write (&board, stdout);
+ printf ("\"\n");
+
+ printf ("Make a move \n");
+ m = getchar();
+ newline = getchar();
+ printf ("getchar returned a numeric value of %d which is character '%c'\n", m, m);
+ m = m - '0';
+ ttt_board_make_move (&board, m);
+ }
printf ("This is the board \"");
ttt_board_write (&board, stdout);
- printf ("\"\n");
+ printf ("\"\n");
+
return 0;
}