
Java TicTacToe Check for Win
By: a guest on
Sep 21st, 2012 | syntax:
Java | size: 3.46 KB | hits: 20 | expires: Never
public boolean checkwin(char c)
{
int left, right, up, down;
boolean leftwin = false, rightwin = false, upwin = false, downwin = false, dI = false, dIV = false; //named my diagonals off the quadrants I is upperright, II is upperleft etc.
for (int row = 0; row < size; row++)
{
for (int col = 0; col < size; col++)
{
if (board[row][col] == c)
{
leftwin = true;
rightwin = true;
upwin = true;
downwin = true;// dI = true; dII = true; dIII = true; dIV = true;
left = col - 1;
while (left >= 0)
{
if (this.board[row][left] != c)
{
leftwin = false;
break;
}
left--;
}
right = col + 1;
while (right < size)
{
if (this.board[row][right] != c)
{
rightwin = false;
break;
}
right++;
}
up = row - 1;
while (up >= 0)
{
if (this.board[up][col] != c)
{
upwin = false;
break;
}
up--;
}
down = row + 1;
while (down < size)
{
if (this.board[down][col] != c)
{
downwin = false;
break;
}
down++;
}
//Diagonal statements
if ((col == 0 && (row == 0 || row == size - 1)))
{
dI = false;
dIV = false;
up = row - 1;
right = col + 1;
while (up >= 0 && right < size)
{
dI = true;
if (this.board[up][right] != c)
{
dI = false;
break;
}
up--;
right++;
}
down = row + 1;
right = col + 1;
while (down < size && row < size)
{
dIV = true;
if (this.board[down][right] != c)
{
dIV = false;
break;
}
down++;
right++;
}
}
}
if ((downwin && upwin) || (leftwin && rightwin) || (dI) || (dIV))
{
return true;
}
}
}
return false;
}