public void buttonClicked (Button buttonObj){
if (!buttonObj.getLabel().equals("--")) //Cannot override an x or an o (click twice)
return;
String symbol;
if (count%2==0){ // x's turn
symbol = "X";
} else { // y's turn
symbol = "O";
}
count++; // getting ready for the next turn
for(int i=0;i<myButtons.length; i++){
for(int j=0;j<myButtons[i].length; j++){
if (buttonObj == myButtons[i][j]){
if (symbol.equals("X"))
myButtons[i][j].setBackground(Color.red);
else
myButtons[i][j].setBackground(Color.blue);
myButtons[i][j].setLabel(symbol);
//return; // get out of method
}
}
}
if (checkWinner()==-1) // add code to pop-up a messageBox that there was a winner
messageBox("No one wins");
else if (checkWinner()==0)
messageBox("O wins");
else if (checkWinner () == 1)
messageBox("X wins");
// add code to pop-up a messageBox that there was a winner and who it was (X or O)
// you will need else if / else if to check
// if there is no winner than there should be no messageBox and the game continues
// as usual.
}
/**
* Method to check if there is a winner.
* @return 0 - O wins
* @return 1 - X wins
* @return -1 - no win
*/
public int checkWinner(){
int blank = 0;
for (int i=0; i<myButtons.length; i++){
for(int j=0; j<myButtons[0].length; j++)
if(!myButtons[i][j].getLabel().equals("--"))
blank++;
}
if (blank != 9){
for(int i=0;i<myButtons.length; i++){
for(int j=0;j<myButtons[i].length; j++){
if (i == 1){
if (myButtons[i][j].getLabel().equals("X")){
if (myButtons[i+1][j].getLabel().equals("X")){
if (myButtons[i+2][j].getLabel().equals("X"))
return 1;
}
else if (myButtons[i][j+1].getLabel().equals("X")){
if (myButtons[i][j+2].getLabel().equals("X"))
return 1;}
else if (myButtons[i+1][j+1].getLabel().equals("X")){
if (myButtons[i+2][j+2].getLabel().equals("X"))
return 1;}
}else if (myButtons[i][j].getLabel().equals("O")){
if (myButtons[i+1][j].getLabel().equals("O")){
if (myButtons[i+2][j].getLabel().equals("O"))
return 0;}
else if (myButtons[i][j+1].getLabel().equals("O")){
if (myButtons[i][j+2].getLabel().equals("O"))
return 0;}
else if (myButtons[i+1][j+1].getLabel().equals("O")){
if (myButtons[i+2][j+2].getLabel().equals("O"))
return 0;}
}
} else if (i == 2){
if (myButtons[i][j].getLabel().equals("X")){
if (myButtons[i-1][j].getLabel().equals("X")){
if (myButtons[i+1][j].getLabel().equals("X"))
return 1;
}
else if (myButtons[i][j-1].getLabel().equals("X")){
if (myButtons[i][j+1].getLabel().equals("X"))
return 1;}
else if (myButtons[i+1][j+1].getLabel().equals("X") && (j == 2)){
if (myButtons[i-1][j-1].getLabel().equals("X"))
return 1;}
}else if (myButtons[i][j].getLabel().equals("O")){
if (myButtons[i-1][j].getLabel().equals("O")){
if (myButtons[i+1][j].getLabel().equals("O"))
return 0;}
else if (myButtons[i][j-1].getLabel().equals("O")){
if (myButtons[i][j+1].getLabel().equals("O"))
return 0;}
else if (myButtons[i+1][j+1].getLabel().equals("O") && (j == 2)){
if (myButtons[i-1][j-1].getLabel().equals("O"))
return 0;}
}
} else if (i == 3){
if (myButtons[i][j].getLabel().equals("X")){
if (myButtons[i-1][j].getLabel().equals("X")){
if (myButtons[i-2][j].getLabel().equals("X"))
return 1;
}
else if (myButtons[i][j+1].getLabel().equals("X")){
if (myButtons[i][j+2].getLabel().equals("X"))
return 1;}
}else if (myButtons[i][j].getLabel().equals("O")){
if (myButtons[i-1][j].getLabel().equals("O")){
if (myButtons[i-2][j].getLabel().equals("O"))
return 0;}
else if (myButtons[i][j+1].getLabel().equals("O")){
if (myButtons[i][j+2].getLabel().equals("O"))
return 0;}
}
}
}
}
}
if (blank==9)
return -1; // no winner
else
return 2; // game not over yet
}