I am writing a c progam and make a game that allow will alow
I am writing a c++ progam and make a game, that allow will alow user to player against computer and watch computer vs computer. When, it comes to 0 my code break, and also at the end my program does not display which player win the game. Please help me with this code and i really needed to done before tommmrow.
I think may be i mess up with isGamerOver funcstion....
Herader file:
#ifndef TICTACTOE_H
 #define TICTACTOE_H
namespace Khaliq_10
 {
    class TicTacToe
    {
    private:
        char playerSymbol, playingField[9];
    public:
        // CONSTRUCTOR
        TicTacToe(char Symbol);
       // MODIFICATION MEMBER FUNCTIONS
        void playerNextMove(int const fieldLocation, char playerSymbol);
       // CONSTANT MEMBER FUNCTIONS
        char isSpaceOccupied(int const fieldLocation) const;
        int isGameOver() const;
        void displayTicBoard() const;
};
}
#endif
//implactions file...
#include
 #include
 #include
 #include \"tic-ac-toe_3-10.h\"
using namespace std;
 using namespace Khaliq_10;
namespace Khaliq_10
 {
    //COSTRUCTOR
    TicTacToe::TicTacToe(char Symbol)
    {
        playerSymbol = Symbol;
       //using for loop to count the player filed locations
        for (int count = 0; count < 9; count++)
        {
            playingField[count] = \'E\';
        }
    }
    //MODIFICATION MEMBER FUNCTIONS
    void TicTacToe::playerNextMove(int const fieldLocation, char playerSymbol)
    {
        assert((fieldLocation < 9) && (isSpaceOccupied(fieldLocation) == \'E\'));
        playingField[fieldLocation] = playerSymbol;
    }
   //CONSTANT MEMBER FUNCTIONS
    char TicTacToe::isSpaceOccupied(int const fieldLocation) const
    {
        char currentlyFiledSpace;
        assert(fieldLocation < 9);
       currentlyFiledSpace = playingField[fieldLocation];
        return currentlyFiledSpace;
   }
    void TicTacToe::displayTicBoard() const
    {
        //displying the tictactoe board
        cout << \" \" << playingField[0] << \" | \" << playingField[1] << \" | \" << playingField[2] << endl;
        cout << \"----------\" << endl;
        cout << \" \" << playingField[3] << \" | \" << playingField[4] << \" | \" << playingField[5] << endl;
        cout << \"----------\" << endl;
        cout << \" \" << playingField[6] << \" | \" << playingField[7] << \" | \" << playingField[8] << endl << endl;
    }
    int TicTacToe::isGameOver() const
    {          
        //all 3 top are in same row
        if ((isSpaceOccupied(0) == isSpaceOccupied(1) == isSpaceOccupied(2)) && (isSpaceOccupied(0) != \'E\'))
        {
            if (isSpaceOccupied(0) == \'X\')
           
                    return 1;
                else
                    return 2;
       
            }
           //all 3 middle row are the same
            if ((isSpaceOccupied(3) == isSpaceOccupied(4) == isSpaceOccupied(5)) && (isSpaceOccupied(3) != \'E\'))
            {
                if (isSpaceOccupied(3) == \'X\')
                    return 1;
                else
                    return 2;
            }
           //all 3 in bottom row are the same
            if ((isSpaceOccupied(6) == isSpaceOccupied(7) == isSpaceOccupied(8)) && (isSpaceOccupied(6) != \'E\'))
            {
                if (isSpaceOccupied(6) == \'X\')
                    return 1;
                else
                    return 2;
            }
           //all in 3 in the left colunmn are the same
            if ((isSpaceOccupied(0) == isSpaceOccupied(3) == isSpaceOccupied(6)) && (isSpaceOccupied(0) != \'E\'))
            {
                if (isSpaceOccupied(0) == \'X\')
                    return 1;
                else
                    return 2;
}
           //all the 3 middle column are the same
            if ((isSpaceOccupied(1) == isSpaceOccupied(4) == isSpaceOccupied(7)) && (isSpaceOccupied(1) != \'E\'))
            {
                if (isSpaceOccupied(1) == \'X\')
                    return 1;
                else
                    return 2;
            }
           //all the three right column are the same
            if ((isSpaceOccupied(2) == isSpaceOccupied(5) == isSpaceOccupied(8)) && (isSpaceOccupied(2) != \'E\'))
            {
                if (isSpaceOccupied(2) == \'X\')
                    return 1;
                else
                    return 2;
            }
           //all the 3 digonally from top left to bottom right are the same
            if ((isSpaceOccupied(0) == isSpaceOccupied(4) == isSpaceOccupied(8)) && (isSpaceOccupied(0) != \'E\'))
            {
                if (isSpaceOccupied(0) == \'X\')
                    return 1;
                else
                    return 2;
            }
           //all 3 diangonally from bottom left to top right are the same
            if ((isSpaceOccupied(2) == isSpaceOccupied(4) == isSpaceOccupied(6)) && (isSpaceOccupied(2) != \'E\')) // All 3 diagonally from bottom-left to top-right
            {
                if (isSpaceOccupied(2) == \'X\')
                    return 1;
                else
                    return 2;
            }
           
            //this for loop will check is there any empty space left
            for (int i = 0; i < 9; i++)  
            {
                if (isSpaceOccupied(i) == \'E\')
                    return 0;
                else
                    return 3;
            }      
            return 1;
    }
 }
//main
#include <iostream>
 #include <cstdlib>
 #include <time.h>
 #include \"tic-ac-toe_3-10.h\"
using namespace Khaliq_10;
 using namespace std;
//delcaring functons protypes
 int computer_next_Move(TicTacToe board, char opponent_Symoble);
 void menu();
 int main()
 {
    //delcaring variables as requried for this applications
    char user_symbol;
    char computer_symbol;
    char computer_symbol_1 = \'X\';
    char computer_symbol_2 = \'O\';
    bool has_Finished = false;
    bool again = true;
    bool PC_VS_Person = false;
    int input;
   while (true)
    {
        menu();
       //asking user to choose men
        cout << \"\ Choose options from menu: \";
        cin >> user_symbol;
       //uisng if else chain for user input
        if (user_symbol == \'1\')
        {
            //this if use for to watch game computer vs computer
            PC_VS_Person = false;
            break;
        }
        else if (user_symbol == \'2\')
        {
            //this else if use for to play game computer vs person.
            PC_VS_Person = true;
            computer_symbol = \'X\';
            break;
        }
        else
            //will check the user input if that vaild or unvaild
            cout << \"Invaild number that you entered, please choose options from menu.\" << endl;
        break;
    }
    if (PC_VS_Person)
    {
        while (true)
        {
            //giving user options, if user like to play as a X or O.
            cout << \"Press 1 to play as a X.\" << endl;
            cout << \"Press 2 to play as the O.\" << endl;
            cin >> user_symbol;
           //if user like to play as a X postions
            if (user_symbol == \'1\')
            {
                user_symbol = \'X\';
                computer_symbol = \'O\';
                break;
            }
           //this else user if user wants to play as
            else if (user_symbol == \'2\')
            {
                user_symbol = \'O\';
                computer_symbol = \'X\';
                break;
            }
            else
                cout << \"Invaild, number that you enterd.\" << endl;
        }
        TicTacToe playingField(user_symbol);
        while (true)
        {
            int move_for_X;
            int move_for_O;
           if (user_symbol == \'X\')
            {
                while (true)
                {
                    cout << \"enter a number from 0 to 8 for what position you want to take your turn.\" << endl;
                    cin >> input;
                    if (input < 9)
                    {
                        playingField.playerNextMove(input, user_symbol);
                        break;
                    }
                    else
                        cout << \"enter a valid position\" << endl;
                }
               
                {
                    //displyaing the number has placeed on which space
                    cout << \"An \" << user_symbol << \" was placed in space number \" << input << \".\" << endl << endl;
                    playingField.displayTicBoard();
                    if (playingField.isGameOver() != 0)
                        break;
                }
                {
                   move_for_O = computer_next_Move(playingField, computer_symbol_2);
                    playingField.playerNextMove(move_for_O, computer_symbol_2);
                    cout << \"An \" << computer_symbol_2 << \" was placed in space number \" << move_for_O << \".\" << endl << endl;
                    playingField.displayTicBoard();
                    if (playingField.isGameOver() != 0)
                        break;
                }
            }
            else if (user_symbol == \'O\')
            {
                move_for_X = computer_next_Move(playingField, computer_symbol_1);
                playingField.playerNextMove(move_for_X, computer_symbol_1);
                cout << \"An \" << computer_symbol_1 << \" was placed in space number \" << move_for_X << \".\" << endl << endl;
                playingField.displayTicBoard();
                if (playingField.isGameOver() != 0)
                    break;
               while (true)
                {
                    cout << \"enter a number from 0 to 8 for what position you want to take your turn.\" << endl;
                    cin >> input;
                    if (input < 9)
                    {
                        playingField.playerNextMove(input, user_symbol);
                        break;
                    }
                    else
                        cout << \"enter a valid position\" << endl;
                }
                cout << \"An \" << user_symbol << \" was placed in space number \" << input << \".\" << endl << endl;
                playingField.displayTicBoard();
                if (playingField.isGameOver() != 0)
                    break;
            }
        }
    }
   else
    {
        TicTacToe computerField(computer_symbol_1);
        int gameOutcome;
       while (true)
        {
            int move_for_X;
            int move_for_O;
           move_for_X = computer_next_Move(computerField, computer_symbol_2);
            computerField.playerNextMove(move_for_X, computer_symbol_1);
            cout << \"An \" << computer_symbol_1 << \" was placed in space number \" << move_for_X << \".\" << endl << endl;
            computerField.displayTicBoard();
            gameOutcome = computerField.isGameOver();
            if (computerField.isGameOver() != 0)
                break;
           move_for_O = computer_next_Move(computerField, computer_symbol_1);
            computerField.playerNextMove(move_for_O, computer_symbol_2);
            cout << \"An \" << computer_symbol_2 << \" was placed in space number \" << move_for_O << \".\" << endl << endl;
            computerField.displayTicBoard();
            gameOutcome = computerField.isGameOver();
            if (computerField.isGameOver() != 0)
                break;
        }
   
        {
            //gameOutcome = computerField.isGameOver();
           if (gameOutcome == 1)
                cout << \"The computer was controlling for X.\" << endl;
            else if (gameOutcome == 2)
                cout << \"The computer was controlling for O.\" << endl;
            else
                cout << \"Now this point nethire computer vs computer win.\" << endl;
        }
   }
    system(\"pause\");
    return 0;
 }
 void menu()
 {
    cout << \"Press 1 to watch Tic-Toa-Toe played against computer vs computer. \" << endl;
    cout << \"Press 2 to play a game of Tic-Tac-Toe against a computer.\" << endl;
 }
int computer_next_Move(TicTacToe board, char opponent_Symoble)
 {
    //using if condations
    if (board.isSpaceOccupied(4) == \'E\')
    {
        return 4;
    }
    if (board.isSpaceOccupied(0) == \'E\' && ((board.isSpaceOccupied(1) == board.isSpaceOccupied(2) == opponent_Symoble) ||
        (board.isSpaceOccupied(4) == board.isSpaceOccupied(8) == opponent_Symoble) ||
        (board.isSpaceOccupied(3) == board.isSpaceOccupied(6) == opponent_Symoble)))
    {
        return 0;
    }if (board.isSpaceOccupied(1) == \'E\' && ((board.isSpaceOccupied(0) == board.isSpaceOccupied(2) == opponent_Symoble) ||
        (board.isSpaceOccupied(4) == board.isSpaceOccupied(7) == opponent_Symoble)))
    {
        return 1;
    }
   if (board.isSpaceOccupied(2) == \'E\' && ((board.isSpaceOccupied(0) == board.isSpaceOccupied(1) == opponent_Symoble) ||
        (board.isSpaceOccupied(4) == board.isSpaceOccupied(6) == opponent_Symoble) ||
        (board.isSpaceOccupied(5) == board.isSpaceOccupied(8) == opponent_Symoble)))
    {
        return 2;
    }
   if (board.isSpaceOccupied(3) == \'E\' && ((board.isSpaceOccupied(0) == board.isSpaceOccupied(6) == opponent_Symoble) ||
        (board.isSpaceOccupied(4) == board.isSpaceOccupied(5) == opponent_Symoble)))
    {
        return 3;
    }
   //The middle of the board will never be occupied after the 1st turn
    if (board.isSpaceOccupied(5) == \'E\' && ((board.isSpaceOccupied(2) == board.isSpaceOccupied(8) == opponent_Symoble) ||
        (board.isSpaceOccupied(3) == board.isSpaceOccupied(4) == opponent_Symoble)))
    {
        return 5;
    }
   if (board.isSpaceOccupied(6) == \'E\' && ((board.isSpaceOccupied(0) == board.isSpaceOccupied(3) == opponent_Symoble) ||
        (board.isSpaceOccupied(4) == board.isSpaceOccupied(2) == opponent_Symoble) ||
        (board.isSpaceOccupied(7) == board.isSpaceOccupied(8) == opponent_Symoble)))
    {
        return 6;
    }
   if (board.isSpaceOccupied(7) == \'E\' && ((board.isSpaceOccupied(6) == board.isSpaceOccupied(8) == opponent_Symoble) ||
        (board.isSpaceOccupied(1) == board.isSpaceOccupied(4) == opponent_Symoble)))
    {
        return 7;
    }
   if (board.isSpaceOccupied(8) == \'E\' && ((board.isSpaceOccupied(2) == board.isSpaceOccupied(5) == opponent_Symoble) ||
        (board.isSpaceOccupied(0) == board.isSpaceOccupied(4) == opponent_Symoble) ||
        (board.isSpaceOccupied(6) == board.isSpaceOccupied(7) == opponent_Symoble)))
    {
        return 8;
    }
    else
    {
        //for the else will set the seconds that coomputer will move
       //declaring variables as needed
        int random_number;
        time_t seconds;
        time(&seconds);
        srand((unsigned int)seconds);
       while (true)
        {
            random_number = rand() % (9);
            if (board.isSpaceOccupied(random_number) == \'E\')
                return random_number;
}
   }
 }
Solution
// Some modifications are done in isGameOver() method look at the for loop in the last of a method.
// And also I made an playingField array of 10 elements so user can start from 1.
//And just look at the condition checking of is return value of GameOver() method in the main file at each players movement.
//Header File
#ifndef TICTACTOE_H
 #define TICTACTOE_H
namespace Khaliq_10
 {
    class TicTacToe
    {
    private:
        char playerSymbol, playingField[10];
    public:
        // CONSTRUCTOR
        TicTacToe(char Symbol);
       // MODIFICATION MEMBER FUNCTIONS
        void playerNextMove(int const fieldLocation, char playerSymbol);
       // CONSTANT MEMBER FUNCTIONS
        char isSpaceOccupied(int const fieldLocation) const;
        int isGameOver() const;
        void displayTicBoard() const;
};
}
#endif
//Implementation file
#include <bits/stdc++.h>
 #include <iostream>
 #include \"tictactoe.h\"
using namespace std;
 using namespace Khaliq_10;
namespace Khaliq_10
 {
    //COSTRUCTOR
    TicTacToe::TicTacToe(char Symbol)
    {
        playerSymbol = Symbol;
       //using for loop to count the player filed locations
        for (int count = 0; count < 10; count++)
        {
            playingField[count] = \'E\';
        }
    }
    //MODIFICATION MEMBER FUNCTIONS
    void TicTacToe::playerNextMove(int const fieldLocation, char playerSymbol)
    {
        assert((fieldLocation < 10) && (isSpaceOccupied(fieldLocation) == \'E\'));
        playingField[fieldLocation] = playerSymbol;
    }
   //CONSTANT MEMBER FUNCTIONS
    char TicTacToe::isSpaceOccupied(int const fieldLocation) const
    {
        char currentlyFiledSpace;
        assert(fieldLocation < 10);
       currentlyFiledSpace = playingField[fieldLocation];
        return currentlyFiledSpace;
   }
    void TicTacToe::displayTicBoard() const
    {
        //displying the tictactoe board
        cout << \" \" << playingField[1] << \" | \" << playingField[2] << \" | \" << playingField[3] << endl;
        cout << \"----------\" << endl;
        cout << \" \" << playingField[4] << \" | \" << playingField[5] << \" | \" << playingField[6] << endl;
        cout << \"----------\" << endl;
        cout << \" \" << playingField[7] << \" | \" << playingField[8] << \" | \" << playingField[9] << endl << endl;
    }
    int TicTacToe::isGameOver() const
    {        
        //all 3 top are in same row
        if ((isSpaceOccupied(1) == isSpaceOccupied(2) == isSpaceOccupied(3)) && (isSpaceOccupied(1) != \'E\'))
        {
            if (isSpaceOccupied(1) == \'X\')
                    return 1;
                else
                    return 2;
     
            }
           //all 3 middle row are the same
            if ((isSpaceOccupied(4) == isSpaceOccupied(5) == isSpaceOccupied(6)) && (isSpaceOccupied(4) != \'E\'))
            {
                if (isSpaceOccupied(4) == \'X\')
                    return 1;
                else
                    return 2;
            }
           //all 3 in bottom row are the same
            if ((isSpaceOccupied(7) == isSpaceOccupied(8) == isSpaceOccupied(9)) && (isSpaceOccupied(7) != \'E\'))
            {
                if (isSpaceOccupied(7) == \'X\')
                    return 1;
                else
                    return 2;
            }
           //all in 3 in the left colunmn are the same
            if ((isSpaceOccupied(1) == isSpaceOccupied(4) == isSpaceOccupied(7)) && (isSpaceOccupied(1) != \'E\'))
            {
                if (isSpaceOccupied(1) == \'X\')
                    return 1;
                else
                    return 2;
}
           //all the 3 middle column are the same
            if ((isSpaceOccupied(2) == isSpaceOccupied(5) == isSpaceOccupied(8)) && (isSpaceOccupied(2) != \'E\'))
            {
                if (isSpaceOccupied(2) == \'X\')
                    return 1;
                else
                    return 2;
            }
           //all the three right column are the same
            if ((isSpaceOccupied(3) == isSpaceOccupied(6) == isSpaceOccupied(9)) && (isSpaceOccupied(3) != \'E\'))
            {
                if (isSpaceOccupied(3) == \'X\')
                    return 1;
                else
                    return 2;
            }
           //all the 3 digonally from top left to bottom right are the same
            if ((isSpaceOccupied(1) == isSpaceOccupied(5) == isSpaceOccupied(9)) && (isSpaceOccupied(1) != \'E\'))
            {
                if (isSpaceOccupied(1) == \'X\')
                    return 1;
                else
                    return 2;
            }
           //all 3 diangonally from bottom left to top right are the same
            if ((isSpaceOccupied(3) == isSpaceOccupied(5) == isSpaceOccupied(7)) && (isSpaceOccupied(3) != \'E\')) // All 3 diagonally from bottom-left to top-right
            {
                if (isSpaceOccupied(3) == \'X\')
                    return 1;
                else
                    return 2;
            }
         
           int flag=3;
            for(int i=1;i<=9;i++)
            {
             if(isSpaceOccupied(i)==\'E\')
                 flag=4;
           }
            //this for loop will check is there any empty space left
          /* for (int i = 1; i <= 9; i++)
            {
                if (isSpaceOccupied(i) == \'E\')
                    return 0;
                else
                    return 3;
            }    
            */
            return flag; //for continueing the game
    }
 }
//Main file
//main
#include <iostream>
 #include <cstdlib>
 #include <time.h>
 #include \"tictactoe.h\"
using namespace Khaliq_10;
 using namespace std;
//delcaring functons protypes
 int computer_next_Move(TicTacToe board, char opponent_Symoble);
 void menu();
 int main()
 {
    //delcaring variables as requried for this applications
    char user_symbol;
    char computer_symbol;
    char computer_symbol_1 = \'X\';
    char computer_symbol_2 = \'O\';
    bool has_Finished = false;
    bool again = true;
    bool PC_VS_Person = false;
    int input;
   while (true)
    {
        menu();
       //asking user to choose men
        cout << \"\ Choose options from menu: \";
        cin >> user_symbol;
       //uisng if else chain for user input
        if (user_symbol == \'1\')
        {
            //this if use for to watch game computer vs computer
            PC_VS_Person = false;
            break;
        }
        else if (user_symbol == \'2\')
        {
            //this else if use for to play game computer vs person.
            PC_VS_Person = true;
            computer_symbol = \'X\';
            break;
        }
        else
            //will check the user input if that vaild or unvaild
            cout << \"Invaild number that you entered, please choose options from menu.\" << endl;
        break;
    }
    if (PC_VS_Person)
    {
     int ff=0;
        while (true)
        {
            //giving user options, if user like to play as a X or O.
            cout << \"Press 1 to play as a X.\" << endl;
            cout << \"Press 2 to play as the O.\" << endl;
            cin >> user_symbol;
           //if user like to play as a X postions
            if (user_symbol == \'1\')
            {
                user_symbol = \'X\';
                computer_symbol = \'O\';
                break;
            }
           //this else user if user wants to play as
            else if (user_symbol == \'2\')
            {
                user_symbol = \'O\';
                computer_symbol = \'X\';
                break;
            }
            else
                cout << \"Invaild, number that you enterd.\" << endl;
        }
        TicTacToe playingField(user_symbol);
        while (true)
        {
            int move_for_X;
            int move_for_O;
           if (user_symbol == \'X\')
            {
                while (true)
                {
                    cout << \"enter a number from 0 to 8 for what position you want to take your turn.\" << endl;
                    cin >> input;
                    if (input <= 9)
                    {
                        playingField.playerNextMove(input, user_symbol);
                        break;
                    }
                    else
                        cout << \"enter a valid position\" << endl;
                }
             
                 {
                    //displyaing the number has placeed on which space
                    cout << \"An \" << user_symbol << \" was placed in space number \" << input << \".\" << endl << endl;
                    playingField.displayTicBoard();
                    int res=playingField.isGameOver();
                 if(res!=4)
                    {
                 
                      if(res==1)
                     cout<<\"Player 1 is winner\ \";
                   else if(res==2)
                     cout<<\"Player 2 is winner\ \";
                   else if(res==3)
                     cout<<\"Match draw\ \";
                   break;
                     }//   if (playingField.isGameOver() != 0)
                   //     break;
                }
                {
                    move_for_O = computer_next_Move(playingField, computer_symbol_2);
                    playingField.playerNextMove(move_for_O, computer_symbol_2);
                    cout << \"An \" << computer_symbol_2 << \" was placed in space number \" << move_for_O << \".\" << endl << endl;
                    playingField.displayTicBoard();
                   // if (playingField.isGameOver() != 0)
                     //   break;
                       int res=playingField.isGameOver();
                if(res!=4)
                    {
                 
                      if(res==1)
                     cout<<\"Player 1 is winner\ \";
                   else if(res==2)
                     cout<<\"Player 2 is winner\ \";
                   else if(res==3)
                     cout<<\"Match draw\ \";
                   break;
                     }
                   }
            }
            else if (user_symbol == \'O\')
            {
                move_for_X = computer_next_Move(playingField, computer_symbol_1);
                playingField.playerNextMove(move_for_X, computer_symbol_1);
                cout << \"An \" << computer_symbol_1 << \" was placed in space number \" << move_for_X << \".\" << endl << endl;
                playingField.displayTicBoard();
              // if (playingField.isGameOver() != 0)
                //    break;
               int res=playingField.isGameOver();
                if(res!=4)
                    {
                 
                      if(res==1)
                     cout<<\"Player 1 is winner\ \";
                   else if(res==2)
                     cout<<\"Player 2 is winner\ \";
                   else if(res==3)
                     cout<<\"Match draw\ \";
                   break;
                     }
                while (true)
                {
                    cout << \"enter a number from 1 to 9 for what position you want to take your turn.\" << endl;
                    cin >> input;
                    if (input <= 9)
                    {
                        playingField.playerNextMove(input, user_symbol);
                        break;
                    }
                    else
                        cout << \"enter a valid position\" << endl;
                }
                cout << \"An \" << user_symbol << \" was placed in space number \" << input << \".\" << endl << endl;
                playingField.displayTicBoard();
               // if (playingField.isGameOver() != 0)
                 //   break;
                   res=playingField.isGameOver();
    if(res!=4)
                    {
                 
                      if(res==1)
                     cout<<\"Player 1 is winner\ \";
                   else if(res==2)
                     cout<<\"Player 2 is winner\ \";
                   else if(res==3)
                     cout<<\"Match draw\ \";
                   break;
                     }        }
        }
    }
   else
    {
        TicTacToe computerField(computer_symbol_1);
        int gameOutcome;
       while (true)
        {
            int move_for_X;
            int move_for_O;
           move_for_X = computer_next_Move(computerField, computer_symbol_2);
            computerField.playerNextMove(move_for_X, computer_symbol_1);
            cout << \"An \" << computer_symbol_1 << \" was placed in space number \" << move_for_X << \".\" << endl << endl;
            computerField.displayTicBoard();
            gameOutcome = computerField.isGameOver();
            //if (computerField.isGameOver() != 0)
              // break;
                    int res=computerField.isGameOver();
                    if(res!=4)
                    {
                 
                      if(res==1)
                     cout<<\"Player 1 is winner\ \";
                   else if(res==2)
                     cout<<\"Player 2 is winner\ \";
                   else if(res==3)
                     cout<<\"Match draw\ \";
                   break;
                     }
                 
             move_for_O = computer_next_Move(computerField, computer_symbol_1);
            computerField.playerNextMove(move_for_O, computer_symbol_2);
            cout << \"An \" << computer_symbol_2 << \" was placed in space number \" << move_for_O << \".\" << endl << endl;
            computerField.displayTicBoard();
            gameOutcome = computerField.isGameOver();
                     res=computerField.isGameOver();
                 if(res!=4)
                    {
                 
                      if(res==1)
                     cout<<\"Player 1 is winner\ \";
                   else if(res==2)
                     cout<<\"Player 2 is winner\ \";
                   else if(res==3)
                     cout<<\"Match draw\ \";
                   break;
                     }
           // if (computerField.isGameOver() != 0)
             //   break;
        }
 
        {
            //gameOutcome = computerField.isGameOver();
           if (gameOutcome == 1)
                cout << \"The computer was controlling for X.\" << endl;
            else if (gameOutcome == 2)
                cout << \"The computer was controlling for O.\" << endl;
            else
                cout << \"Now this point nethire computer vs computer win.\" << endl;
        }
   }
    system(\"pause\");
    return 0;
 }
 void menu()
 {
    cout << \"Press 1 to watch Tic-Toa-Toe played against computer vs computer. \" << endl;
    cout << \"Press 2 to play a game of Tic-Tac-Toe against a computer.\" << endl;
 }
int computer_next_Move(TicTacToe board, char opponent_Symoble)
 {
    //using if condations
    if (board.isSpaceOccupied(4) == \'E\')
    {
        return 4;
    }
    if (board.isSpaceOccupied(0) == \'E\' && ((board.isSpaceOccupied(1) == board.isSpaceOccupied(2) == opponent_Symoble) ||
        (board.isSpaceOccupied(4) == board.isSpaceOccupied(8) == opponent_Symoble) ||
        (board.isSpaceOccupied(3) == board.isSpaceOccupied(6) == opponent_Symoble)))
    {
        return 0;
    }if (board.isSpaceOccupied(1) == \'E\' && ((board.isSpaceOccupied(0) == board.isSpaceOccupied(2) == opponent_Symoble) ||
        (board.isSpaceOccupied(4) == board.isSpaceOccupied(7) == opponent_Symoble)))
    {
        return 1;
    }
   if (board.isSpaceOccupied(2) == \'E\' && ((board.isSpaceOccupied(0) == board.isSpaceOccupied(1) == opponent_Symoble) ||
        (board.isSpaceOccupied(4) == board.isSpaceOccupied(6) == opponent_Symoble) ||
        (board.isSpaceOccupied(5) == board.isSpaceOccupied(8) == opponent_Symoble)))
    {
        return 2;
    }
   if (board.isSpaceOccupied(3) == \'E\' && ((board.isSpaceOccupied(0) == board.isSpaceOccupied(6) == opponent_Symoble) ||
        (board.isSpaceOccupied(4) == board.isSpaceOccupied(5) == opponent_Symoble)))
    {
        return 3;
    }
   //The middle of the board will never be occupied after the 1st turn
    if (board.isSpaceOccupied(5) == \'E\' && ((board.isSpaceOccupied(2) == board.isSpaceOccupied(8) == opponent_Symoble) ||
        (board.isSpaceOccupied(3) == board.isSpaceOccupied(4) == opponent_Symoble)))
    {
        return 5;
    }
   if (board.isSpaceOccupied(6) == \'E\' && ((board.isSpaceOccupied(0) == board.isSpaceOccupied(3) == opponent_Symoble) ||
        (board.isSpaceOccupied(4) == board.isSpaceOccupied(2) == opponent_Symoble) ||
        (board.isSpaceOccupied(7) == board.isSpaceOccupied(8) == opponent_Symoble)))
    {
        return 6;
    }
   if (board.isSpaceOccupied(7) == \'E\' && ((board.isSpaceOccupied(6) == board.isSpaceOccupied(8) == opponent_Symoble) ||
        (board.isSpaceOccupied(1) == board.isSpaceOccupied(4) == opponent_Symoble)))
    {
        return 7;
    }
   if (board.isSpaceOccupied(8) == \'E\' && ((board.isSpaceOccupied(2) == board.isSpaceOccupied(5) == opponent_Symoble) ||
        (board.isSpaceOccupied(0) == board.isSpaceOccupied(4) == opponent_Symoble) ||
        (board.isSpaceOccupied(6) == board.isSpaceOccupied(7) == opponent_Symoble)))
    {
        return 8;
    }
    else
    {
        //for the else will set the seconds that coomputer will move
       //declaring variables as needed
        int random_number;
        time_t seconds;
        time(&seconds);
        srand((unsigned int)seconds);
       while (true)
        {
            random_number = rand() % (9);
            if (board.isSpaceOccupied(random_number) == \'E\')
                return random_number;
}
   }
 }
//Output :
G580:~/codes/schegg$ ./a.out
 Press 1 to watch Tic-Toa-Toe played against computer vs computer.
 Press 2 to play a game of Tic-Tac-Toe against a computer.
Choose options from menu: 2
 Press 1 to play as a X.
 Press 2 to play as the O.
 2
 An X was placed in space number 4.
E | E | E
 ----------
 X | E | E
 ----------
 E | E | E
enter a number from 1 to 9 for what position you want to take your turn.
 2
 An O was placed in space number 2.
E | O | E
 ----------
 X | E | E
 ----------
 E | E | E
An X was placed in space number 1.
X | O | E
 ----------
 X | E | E
 ----------
 E | E | E
enter a number from 1 to 9 for what position you want to take your turn.
 5
 An O was placed in space number 5.
X | O | E
 ----------
 X | O | E
 ----------
 E | E | E
An X was placed in space number 3.
X | O | X
 ----------
 X | O | E
 ----------
 E | E | E
enter a number from 1 to 9 for what position you want to take your turn.
 8
 An O was placed in space number 8.
X | O | X
 ----------
 X | O | E
 ----------
 E | O | E
An X was placed in space number 0.
X | O | X
 ----------
 X | O | E
 ----------
 E | O | E
enter a number from 1 to 9 for what position you want to take your turn.
 9
 An O was placed in space number 9.
X | O | X
 ----------
 X | O | E
 ----------
 E | O | O
An X was placed in space number 7.
X | O | X
 ----------
 X | O | E
 ----------
 X | O | O


















