Break it down into its component steps
Code:
#define BOARD 3
// checks all rows
int checkboardrow ( int board[BOARD][BOARD], int player ) {
int win = 1;
int row, col;
for ( row = 0 ; row < BOARD && win ; row++ ) {
for ( col = 0 ; col < BOARD && win ; col++ ) {
if ( board[row][col] != player ) win = 0;
}
}
return win;
}
// checks all rows, cols and diagonals
int checkboard ( int board[BOARD][BOARD], int player ) {
return checkboardrow(board,player) || // checks all rows
checkboardcol(board,player) || // checks all cols
checkboardleft(board,player)|| // checks left diagonal
checkboardright(board,player); // checks right diagonal
}