vendredi 4 août 2017

AI in tic Tac Toe not moving random

I am changing the concept to 3x3 Tic Tac Toe to 9x9. concept is just like TicTacToe you have to win horizontal vertical or diagonal 3 spots only difference is That I have divided the game into 9 sets when a person wins a particular set that marks as a single spot for that person, now he/she has to win next sets to win the main game. now to the problem i am facing game is working fine AI is generating random numbers till human or computer wins the first set after that AI moves are not random they are in a sequence.

import java.util.Random;

public class TicTacToeGame {

private char mBoard[];
private final static int BOARD_SIZE = 81;

public static final char PLAYER_ONE = 'X';
public static final char PLAYER_TWO = '0';
public static final char EMPTY_SPACE = ' ';

private Random mRand;


public static int getBOARD_SIZE() {
    // Return the size of the board
    return BOARD_SIZE;
}

public TicTacToeGame(){

    mBoard = new char[BOARD_SIZE];

    for (int i = 0; i < BOARD_SIZE; i++)
        mBoard[i] = EMPTY_SPACE;

    mRand = new Random();
}

// Clear the board of all X's and O's
public void clearBoard()
{
    for (int i = 0; i < BOARD_SIZE; i++)
    {
        mBoard[i] = EMPTY_SPACE;
    }
}

// set the given player at the given location on the game board.
// the location must be available, or the board will not be changed.
public void setMove(char player, int location)
{
    mBoard[location] = player;
}

// Return the best move for the computer to make. You must call setMove()
// to actually make the computer move to that location.
public int getComputerMove()
{
    int move;

    // First see if there's a move O can make to win
    for (int i = 0; i < getBOARD_SIZE(); i++)
    {
        if (mBoard[i] != PLAYER_ONE && mBoard[i] != PLAYER_TWO)
        {
            char curr = mBoard[i];
            mBoard[i] = PLAYER_TWO;
            if (checkForWinner() == 3)
            {
                setMove(PLAYER_TWO, i);
                return i;
            }
            else
                mBoard[i] = curr;
        }
    }

    // See if there's a move O can make to block X from winning
    for (int i = 0; i < getBOARD_SIZE(); i++)
    {
        if (mBoard[i] != PLAYER_ONE && mBoard[i] != PLAYER_TWO)
        {
            char curr = mBoard[i];
            mBoard[i] = PLAYER_ONE;
            if (checkForWinner() == 2)
            {
                setMove(PLAYER_TWO, i);
                return i;
            }
            else
                mBoard[i] = curr;
        }
    }

    // Generate random move
    do
    {
        move = mRand.nextInt(getBOARD_SIZE());
    } while (mBoard[move] == PLAYER_ONE || mBoard[move] == PLAYER_TWO);

    setMove(PLAYER_TWO, move);
    return move;
}

// Check for a winner and return a status value indicating who has won.
// Return 0 if no winner or tie yet, 1 if it's a tie, 2 if X won, or 3
// if O won.
public int checkForWinner()
{
    //set0 win chk
    if ((mBoard[0] == PLAYER_ONE &&
            mBoard[1] == PLAYER_ONE &&
            mBoard[2] == PLAYER_ONE) ||
            (mBoard[9] == PLAYER_ONE &&
                    mBoard[10] == PLAYER_ONE &&
                    mBoard[11] == PLAYER_ONE) ||
            (mBoard[18] == PLAYER_ONE &&
                    mBoard[19] == PLAYER_ONE &&
                    mBoard[20] == PLAYER_ONE) ||
            (mBoard[0] == PLAYER_ONE &&
                    mBoard[9] == PLAYER_ONE &&
                    mBoard[18] == PLAYER_ONE) ||
            (mBoard[1] == PLAYER_ONE &&
                    mBoard[10] == PLAYER_ONE &&
                    mBoard[19] == PLAYER_ONE) ||
            (mBoard[2] == PLAYER_ONE &&
                    mBoard[11] == PLAYER_ONE &&
                    mBoard[20] == PLAYER_ONE) ||
            (mBoard[0] == PLAYER_ONE &&
                    mBoard[10] == PLAYER_ONE &&
                    mBoard[20] == PLAYER_ONE) ||
            (mBoard[2] == PLAYER_ONE &&
                    mBoard[10] == PLAYER_ONE &&
                    mBoard[18] == PLAYER_ONE))
        return 2;

    if ((mBoard[0] == PLAYER_TWO &&
            mBoard[1] == PLAYER_TWO &&
            mBoard[2] == PLAYER_TWO) ||
            (mBoard[9] == PLAYER_TWO &&
                    mBoard[10] == PLAYER_TWO &&
                    mBoard[11] == PLAYER_TWO) ||
            (mBoard[18] == PLAYER_TWO &&
                    mBoard[19] == PLAYER_TWO &&
                    mBoard[20] == PLAYER_TWO) ||
            (mBoard[0] == PLAYER_TWO &&
                    mBoard[9] == PLAYER_TWO &&
                    mBoard[18] == PLAYER_TWO) ||
            (mBoard[1] == PLAYER_TWO &&
                    mBoard[10] == PLAYER_TWO &&
                    mBoard[19] == PLAYER_TWO) ||
            (mBoard[2] == PLAYER_TWO &&
                    mBoard[11] == PLAYER_TWO &&
                    mBoard[20] == PLAYER_TWO) ||
            (mBoard[0] == PLAYER_TWO &&
                    mBoard[10] == PLAYER_TWO &&
                    mBoard[20] == PLAYER_TWO) ||
            (mBoard[2] == PLAYER_TWO &&
                    mBoard[10] == PLAYER_TWO &&
                    mBoard[18] == PLAYER_TWO))
        return 3;

    //set1 win chk
    if ((mBoard[3] == PLAYER_ONE &&
            mBoard[4] == PLAYER_ONE &&
            mBoard[5] == PLAYER_ONE) ||
            (mBoard[12] == PLAYER_ONE &&
                    mBoard[13] == PLAYER_ONE &&
                    mBoard[14] == PLAYER_ONE) ||
            (mBoard[21] == PLAYER_ONE &&
                    mBoard[22] == PLAYER_ONE &&
                    mBoard[23] == PLAYER_ONE) ||
            (mBoard[3] == PLAYER_ONE &&
                    mBoard[12] == PLAYER_ONE &&
                    mBoard[21] == PLAYER_ONE) ||
            (mBoard[4] == PLAYER_ONE &&
                    mBoard[13] == PLAYER_ONE &&
                    mBoard[22] == PLAYER_ONE) ||
            (mBoard[5] == PLAYER_ONE &&
                    mBoard[14] == PLAYER_ONE &&
                    mBoard[23] == PLAYER_ONE) ||
            (mBoard[3] == PLAYER_ONE &&
                    mBoard[13] == PLAYER_ONE &&
                    mBoard[23] == PLAYER_ONE) ||
            (mBoard[5] == PLAYER_ONE &&
                    mBoard[13] == PLAYER_ONE &&
                    mBoard[21] == PLAYER_ONE))
        return 2;

    if ((mBoard[3] == PLAYER_TWO &&
            mBoard[4] == PLAYER_TWO &&
            mBoard[5] == PLAYER_TWO) ||
            (mBoard[12] == PLAYER_TWO &&
                    mBoard[13] == PLAYER_TWO &&
                    mBoard[14] == PLAYER_TWO) ||
            (mBoard[21] == PLAYER_TWO &&
                    mBoard[22] == PLAYER_TWO &&
                    mBoard[23] == PLAYER_TWO) ||
            (mBoard[3] == PLAYER_TWO &&
                    mBoard[12] == PLAYER_TWO &&
                    mBoard[21] == PLAYER_TWO) ||
            (mBoard[4] == PLAYER_TWO &&
                    mBoard[13] == PLAYER_TWO &&
                    mBoard[22] == PLAYER_TWO) ||
            (mBoard[5] == PLAYER_TWO &&
                    mBoard[14] == PLAYER_TWO &&
                    mBoard[23] == PLAYER_TWO) ||
            (mBoard[3] == PLAYER_TWO &&
                    mBoard[13] == PLAYER_TWO &&
                    mBoard[23] == PLAYER_TWO) ||
            (mBoard[5] == PLAYER_TWO &&
                    mBoard[13] == PLAYER_TWO &&
                    mBoard[21] == PLAYER_TWO))
        return 3;

    //set2 win chk
    if ((mBoard[6] == PLAYER_ONE &&
            mBoard[7] == PLAYER_ONE &&
            mBoard[8] == PLAYER_ONE) ||
            (mBoard[15] == PLAYER_ONE &&
                    mBoard[16] == PLAYER_ONE &&
                    mBoard[17] == PLAYER_ONE) ||
            (mBoard[24] == PLAYER_ONE &&
                    mBoard[25] == PLAYER_ONE &&
                    mBoard[26] == PLAYER_ONE) ||
            (mBoard[6] == PLAYER_ONE &&
                    mBoard[15] == PLAYER_ONE &&
                    mBoard[24] == PLAYER_ONE) ||
            (mBoard[7] == PLAYER_ONE &&
                    mBoard[16] == PLAYER_ONE &&
                    mBoard[25] == PLAYER_ONE) ||
            (mBoard[8] == PLAYER_ONE &&
                    mBoard[17] == PLAYER_ONE &&
                    mBoard[26] == PLAYER_ONE) ||
            (mBoard[6] == PLAYER_ONE &&
                    mBoard[16] == PLAYER_ONE &&
                    mBoard[26] == PLAYER_ONE) ||
            (mBoard[8] == PLAYER_ONE &&
                    mBoard[16] == PLAYER_ONE &&
                    mBoard[24] == PLAYER_ONE))
        return 2;

    if ((mBoard[6] == PLAYER_TWO &&
            mBoard[7] == PLAYER_TWO &&
            mBoard[8] == PLAYER_TWO) ||
            (mBoard[15] == PLAYER_TWO &&
                    mBoard[16] == PLAYER_TWO &&
                    mBoard[17] == PLAYER_TWO) ||
            (mBoard[24] == PLAYER_TWO &&
                    mBoard[25] == PLAYER_TWO &&
                    mBoard[26] == PLAYER_TWO) ||
            (mBoard[6] == PLAYER_TWO &&
                    mBoard[15] == PLAYER_TWO &&
                    mBoard[24] == PLAYER_TWO) ||
            (mBoard[7] == PLAYER_TWO &&
                    mBoard[16] == PLAYER_TWO &&
                    mBoard[25] == PLAYER_TWO) ||
            (mBoard[8] == PLAYER_TWO &&
                    mBoard[17] == PLAYER_TWO &&
                    mBoard[26] == PLAYER_TWO) ||
            (mBoard[6] == PLAYER_TWO &&
                    mBoard[16] == PLAYER_TWO &&
                    mBoard[26] == PLAYER_TWO) ||
            (mBoard[8] == PLAYER_TWO &&
                    mBoard[16] == PLAYER_TWO &&
                    mBoard[24] == PLAYER_TWO))
        return 3;

    //set3 win chk
    if ((mBoard[27] == PLAYER_ONE &&
            mBoard[28] == PLAYER_ONE &&
            mBoard[29] == PLAYER_ONE) ||
            (mBoard[36] == PLAYER_ONE &&
                    mBoard[37] == PLAYER_ONE &&
                    mBoard[38] == PLAYER_ONE) ||
            (mBoard[45] == PLAYER_ONE &&
                    mBoard[46] == PLAYER_ONE &&
                    mBoard[47] == PLAYER_ONE) ||
            (mBoard[27] == PLAYER_ONE &&
                    mBoard[36] == PLAYER_ONE &&
                    mBoard[45] == PLAYER_ONE) ||
            (mBoard[28] == PLAYER_ONE &&
                    mBoard[37] == PLAYER_ONE &&
                    mBoard[46] == PLAYER_ONE) ||
            (mBoard[29] == PLAYER_ONE &&
                    mBoard[38] == PLAYER_ONE &&
                    mBoard[47] == PLAYER_ONE) ||
            (mBoard[27] == PLAYER_ONE &&
                    mBoard[37] == PLAYER_ONE &&
                    mBoard[47] == PLAYER_ONE) ||
            (mBoard[29] == PLAYER_ONE &&
                    mBoard[37] == PLAYER_ONE &&
                    mBoard[45] == PLAYER_ONE))
        return 2;

    if ((mBoard[27] == PLAYER_TWO &&
            mBoard[28] == PLAYER_TWO &&
            mBoard[29] == PLAYER_TWO) ||
            (mBoard[36] == PLAYER_TWO &&
                    mBoard[37] == PLAYER_TWO &&
                    mBoard[38] == PLAYER_TWO) ||
            (mBoard[45] == PLAYER_TWO &&
                    mBoard[46] == PLAYER_TWO &&
                    mBoard[47] == PLAYER_TWO) ||
            (mBoard[27] == PLAYER_TWO &&
                    mBoard[36] == PLAYER_TWO &&
                    mBoard[45] == PLAYER_TWO) ||
            (mBoard[28] == PLAYER_TWO &&
                    mBoard[37] == PLAYER_TWO &&
                    mBoard[46] == PLAYER_TWO) ||
            (mBoard[29] == PLAYER_TWO &&
                    mBoard[38] == PLAYER_TWO &&
                    mBoard[47] == PLAYER_TWO) ||
            (mBoard[27] == PLAYER_TWO &&
                    mBoard[37] == PLAYER_TWO &&
                    mBoard[47] == PLAYER_TWO) ||
            (mBoard[29] == PLAYER_TWO &&
                    mBoard[37] == PLAYER_TWO &&
                    mBoard[45] == PLAYER_TWO))
        return 3;

    //set4 win chk
    if ((mBoard[30] == PLAYER_ONE &&
            mBoard[31] == PLAYER_ONE &&
            mBoard[32] == PLAYER_ONE) ||
            (mBoard[39] == PLAYER_ONE &&
                    mBoard[40] == PLAYER_ONE &&
                    mBoard[41] == PLAYER_ONE) ||
            (mBoard[48] == PLAYER_ONE &&
                    mBoard[49] == PLAYER_ONE &&
                    mBoard[50] == PLAYER_ONE) ||
            (mBoard[30] == PLAYER_ONE &&
                    mBoard[39] == PLAYER_ONE &&
                    mBoard[48] == PLAYER_ONE) ||
            (mBoard[31] == PLAYER_ONE &&
                    mBoard[40] == PLAYER_ONE &&
                    mBoard[49] == PLAYER_ONE) ||
            (mBoard[32] == PLAYER_ONE &&
                    mBoard[41] == PLAYER_ONE &&
                    mBoard[50] == PLAYER_ONE) ||
            (mBoard[30] == PLAYER_ONE &&
                    mBoard[40] == PLAYER_ONE &&
                    mBoard[50] == PLAYER_ONE) ||
            (mBoard[32] == PLAYER_ONE &&
                    mBoard[40] == PLAYER_ONE &&
                    mBoard[48] == PLAYER_ONE))
        return 2;

    if ((mBoard[30] == PLAYER_TWO &&
            mBoard[31] == PLAYER_TWO &&
            mBoard[32] == PLAYER_TWO) ||
            (mBoard[39] == PLAYER_TWO &&
                    mBoard[40] == PLAYER_TWO &&
                    mBoard[41] == PLAYER_TWO) ||
            (mBoard[48] == PLAYER_TWO &&
                    mBoard[49] == PLAYER_TWO &&
                    mBoard[50] == PLAYER_TWO) ||
            (mBoard[30] == PLAYER_TWO &&
                    mBoard[39] == PLAYER_TWO &&
                    mBoard[48] == PLAYER_TWO) ||
            (mBoard[31] == PLAYER_TWO &&
                    mBoard[40] == PLAYER_TWO &&
                    mBoard[49] == PLAYER_TWO) ||
            (mBoard[32] == PLAYER_TWO &&
                    mBoard[41] == PLAYER_TWO &&
                    mBoard[50] == PLAYER_TWO) ||
            (mBoard[30] == PLAYER_TWO &&
                    mBoard[40] == PLAYER_TWO &&
                    mBoard[50] == PLAYER_TWO) ||
            (mBoard[32] == PLAYER_TWO &&
                    mBoard[40] == PLAYER_TWO &&
                    mBoard[48] == PLAYER_TWO))
        return 3;

    //set5 win chk
    if ((mBoard[33] == PLAYER_ONE &&
            mBoard[34] == PLAYER_ONE &&
            mBoard[35] == PLAYER_ONE) ||
            (mBoard[42] == PLAYER_ONE &&
                    mBoard[43] == PLAYER_ONE &&
                    mBoard[44] == PLAYER_ONE) ||
            (mBoard[51] == PLAYER_ONE &&
                    mBoard[52] == PLAYER_ONE &&
                    mBoard[53] == PLAYER_ONE) ||
            (mBoard[33] == PLAYER_ONE &&
                    mBoard[48] == PLAYER_ONE &&
                    mBoard[51] == PLAYER_ONE) ||
            (mBoard[34] == PLAYER_ONE &&
                    mBoard[43] == PLAYER_ONE &&
                    mBoard[52] == PLAYER_ONE) ||
            (mBoard[35] == PLAYER_ONE &&
                    mBoard[44] == PLAYER_ONE &&
                    mBoard[53] == PLAYER_ONE) ||
            (mBoard[33] == PLAYER_ONE &&
                    mBoard[43] == PLAYER_ONE &&
                    mBoard[53] == PLAYER_ONE) ||
            (mBoard[53] == PLAYER_ONE &&
                    mBoard[43] == PLAYER_ONE &&
                    mBoard[51] == PLAYER_ONE))
        return 2;

    if ((mBoard[33] == PLAYER_TWO &&
            mBoard[34] == PLAYER_TWO &&
            mBoard[35] == PLAYER_TWO) ||
            (mBoard[42] == PLAYER_TWO &&
                    mBoard[43] == PLAYER_TWO &&
                    mBoard[44] == PLAYER_TWO) ||
            (mBoard[51] == PLAYER_TWO &&
                    mBoard[52] == PLAYER_TWO &&
                    mBoard[53] == PLAYER_TWO) ||
            (mBoard[33] == PLAYER_TWO &&
                    mBoard[48] == PLAYER_TWO &&
                    mBoard[51] == PLAYER_TWO) ||
            (mBoard[34] == PLAYER_TWO &&
                    mBoard[43] == PLAYER_TWO &&
                    mBoard[52] == PLAYER_TWO) ||
            (mBoard[35] == PLAYER_TWO &&
                    mBoard[44] == PLAYER_TWO &&
                    mBoard[53] == PLAYER_TWO) ||
            (mBoard[33] == PLAYER_TWO &&
                    mBoard[43] == PLAYER_TWO &&
                    mBoard[53] == PLAYER_TWO) ||
            (mBoard[53] == PLAYER_TWO &&
                    mBoard[43] == PLAYER_TWO &&
                    mBoard[51] == PLAYER_TWO))
        return 3;

    //set6 win chk
    if ((mBoard[54] == PLAYER_ONE &&
            mBoard[55] == PLAYER_ONE &&
            mBoard[56] == PLAYER_ONE) ||
            (mBoard[63] == PLAYER_ONE &&
                    mBoard[64] == PLAYER_ONE &&
                    mBoard[65] == PLAYER_ONE) ||
            (mBoard[72] == PLAYER_ONE &&
                    mBoard[73] == PLAYER_ONE &&
                    mBoard[74] == PLAYER_ONE) ||
            (mBoard[54] == PLAYER_ONE &&
                    mBoard[63] == PLAYER_ONE &&
                    mBoard[72] == PLAYER_ONE) ||
            (mBoard[55] == PLAYER_ONE &&
                    mBoard[64] == PLAYER_ONE &&
                    mBoard[73] == PLAYER_ONE) ||
            (mBoard[56] == PLAYER_ONE &&
                    mBoard[65] == PLAYER_ONE &&
                    mBoard[74] == PLAYER_ONE) ||
            (mBoard[54] == PLAYER_ONE &&
                    mBoard[64] == PLAYER_ONE &&
                    mBoard[74] == PLAYER_ONE) ||
            (mBoard[56] == PLAYER_ONE &&
                    mBoard[64] == PLAYER_ONE &&
                    mBoard[72] == PLAYER_ONE))
        return 2;

    if ((mBoard[54] == PLAYER_TWO &&
            mBoard[55] == PLAYER_TWO &&
            mBoard[56] == PLAYER_TWO) ||
            (mBoard[63] == PLAYER_TWO &&
                    mBoard[64] == PLAYER_TWO &&
                    mBoard[65] == PLAYER_TWO) ||
            (mBoard[72] == PLAYER_TWO &&
                    mBoard[73] == PLAYER_TWO &&
                    mBoard[74] == PLAYER_TWO) ||
            (mBoard[54] == PLAYER_TWO &&
                    mBoard[63] == PLAYER_TWO &&
                    mBoard[72] == PLAYER_TWO) ||
            (mBoard[55] == PLAYER_TWO &&
                    mBoard[64] == PLAYER_TWO &&
                    mBoard[73] == PLAYER_TWO) ||
            (mBoard[56] == PLAYER_TWO &&
                    mBoard[65] == PLAYER_TWO &&
                    mBoard[74] == PLAYER_TWO) ||
            (mBoard[54] == PLAYER_TWO &&
                    mBoard[64] == PLAYER_TWO &&
                    mBoard[74] == PLAYER_TWO) ||
            (mBoard[56] == PLAYER_TWO &&
                    mBoard[64] == PLAYER_TWO &&
                    mBoard[72] == PLAYER_TWO))
        return 3;

    //set7 win chk
    if ((mBoard[57] == PLAYER_ONE &&
            mBoard[58] == PLAYER_ONE &&
            mBoard[59] == PLAYER_ONE) ||
            (mBoard[66] == PLAYER_ONE &&
                    mBoard[67] == PLAYER_ONE &&
                    mBoard[68] == PLAYER_ONE) ||
            (mBoard[75] == PLAYER_ONE &&
                    mBoard[76] == PLAYER_ONE &&
                    mBoard[77] == PLAYER_ONE) ||
            (mBoard[57] == PLAYER_ONE &&
                    mBoard[66] == PLAYER_ONE &&
                    mBoard[75] == PLAYER_ONE) ||
            (mBoard[58] == PLAYER_ONE &&
                    mBoard[67] == PLAYER_ONE &&
                    mBoard[76] == PLAYER_ONE) ||
            (mBoard[59] == PLAYER_ONE &&
                    mBoard[68] == PLAYER_ONE &&
                    mBoard[77] == PLAYER_ONE) ||
            (mBoard[57] == PLAYER_ONE &&
                    mBoard[67] == PLAYER_ONE &&
                    mBoard[77] == PLAYER_ONE) ||
            (mBoard[59] == PLAYER_ONE &&
                    mBoard[67] == PLAYER_ONE &&
                    mBoard[75] == PLAYER_ONE))
        return 2;

    if ((mBoard[57] == PLAYER_TWO &&
            mBoard[58] == PLAYER_TWO &&
            mBoard[59] == PLAYER_TWO) ||
            (mBoard[66] == PLAYER_TWO &&
                    mBoard[67] == PLAYER_TWO &&
                    mBoard[68] == PLAYER_TWO) ||
            (mBoard[75] == PLAYER_TWO &&
                    mBoard[76] == PLAYER_TWO &&
                    mBoard[77] == PLAYER_TWO) ||
            (mBoard[57] == PLAYER_TWO &&
                    mBoard[66] == PLAYER_TWO &&
                    mBoard[75] == PLAYER_TWO) ||
            (mBoard[58] == PLAYER_TWO &&
                    mBoard[67] == PLAYER_TWO &&
                    mBoard[76] == PLAYER_TWO) ||
            (mBoard[59] == PLAYER_TWO &&
                    mBoard[68] == PLAYER_TWO &&
                    mBoard[77] == PLAYER_TWO) ||
            (mBoard[57] == PLAYER_TWO &&
                    mBoard[67] == PLAYER_TWO &&
                    mBoard[77] == PLAYER_TWO) ||
            (mBoard[59] == PLAYER_TWO &&
                    mBoard[67] == PLAYER_TWO &&
                    mBoard[75] == PLAYER_TWO))
        return 3;

    //set8 win chk
    if ((mBoard[60] == PLAYER_ONE &&
            mBoard[61] == PLAYER_ONE &&
            mBoard[62] == PLAYER_ONE) ||
            (mBoard[69] == PLAYER_ONE &&
                    mBoard[70] == PLAYER_ONE &&
                    mBoard[71] == PLAYER_ONE) ||
            (mBoard[78] == PLAYER_ONE &&
                    mBoard[79] == PLAYER_ONE &&
                    mBoard[80] == PLAYER_ONE) ||
            (mBoard[60] == PLAYER_ONE &&
                    mBoard[69] == PLAYER_ONE &&
                    mBoard[78] == PLAYER_ONE) ||
            (mBoard[61] == PLAYER_ONE &&
                    mBoard[70] == PLAYER_ONE &&
                    mBoard[79] == PLAYER_ONE) ||
            (mBoard[62] == PLAYER_ONE &&
                    mBoard[71] == PLAYER_ONE &&
                    mBoard[80] == PLAYER_ONE) ||
            (mBoard[60] == PLAYER_ONE &&
                    mBoard[70] == PLAYER_ONE &&
                    mBoard[80] == PLAYER_ONE) ||
            (mBoard[62] == PLAYER_ONE &&
                    mBoard[70] == PLAYER_ONE &&
                    mBoard[78] == PLAYER_ONE))
        return 2;

    if ((mBoard[60] == PLAYER_TWO &&
            mBoard[61] == PLAYER_TWO &&
            mBoard[62] == PLAYER_TWO) ||
            (mBoard[69] == PLAYER_TWO &&
                    mBoard[70] == PLAYER_TWO &&
                    mBoard[71] == PLAYER_TWO) ||
            (mBoard[78] == PLAYER_TWO &&
                    mBoard[79] == PLAYER_TWO &&
                    mBoard[80] == PLAYER_TWO) ||
            (mBoard[60] == PLAYER_TWO &&
                    mBoard[69] == PLAYER_TWO &&
                    mBoard[78] == PLAYER_TWO) ||
            (mBoard[61] == PLAYER_TWO &&
                    mBoard[70] == PLAYER_TWO &&
                    mBoard[79] == PLAYER_TWO) ||
            (mBoard[62] == PLAYER_TWO &&
                    mBoard[71] == PLAYER_TWO &&
                    mBoard[80] == PLAYER_TWO) ||
            (mBoard[60] == PLAYER_TWO &&
                    mBoard[70] == PLAYER_TWO &&
                    mBoard[80] == PLAYER_TWO) ||
            (mBoard[62] == PLAYER_TWO &&
                    mBoard[70] == PLAYER_TWO &&
                    mBoard[78] == PLAYER_TWO))
        return 3;

    // Check for a tie
    for (int i = 0; i < getBOARD_SIZE(); i++)
    {
        // if we find a number, then no one has won yet
        if (mBoard[i] != PLAYER_ONE && mBoard[i] != PLAYER_TWO)
            return 0;
    }

    // If we make it through the previous loop, all places are taken, so it's a tie
    return 1;
}
}

attaching a pic to show what is going on

Showing the steps




Aucun commentaire:

Enregistrer un commentaire