View Single Post
Newbie Member
12Apr2012,01:51  
sharan93's Avatar
Sorry As I am new to this din't realise how to post a code here they are :
first one
Code:
#include<iostream>
#include<string>
#include"110ct.h"
using namespace std;

class TicTacToe 
{ 
private: 
	ColourController ct;
    ColourController cls; 
    CursorController crs;
    char Board[3][3]; 
    int play(); 
    void playermove(); 
    int turn(int); 
    int check (int, int); 
    void boardProgress(char x[][3]); 
    int Winner(char x[][3]); 
    int player1, player2, draw, player,winner,done; 
    int row, col; 
 
public: 
    int y, z, t, s; 
    void intBoard(); 
    int Statistics(int); 
 
    char playAgain(char); 
}playBall; 
 
int main() 
{ 
    playBall.y = 0,playBall.z = 0,playBall.t = 0,playBall.s = 0; 
    int Winner = 0; 
	ColourController ct;
    ColourController cls; 
    cls.setForeground(Aqua);
        cout << " welcome to TIC TAC TOE" <<endl; 
 
    char done = false; 
 
    while (!done) 
        { 
        ColourController cls; 
        cls.setForeground(Aqua);
        cout << " Good Luck!"<< endl;
                 
 
        
        playBall.intBoard(); 
 
    
    done = playBall.playAgain(done); 
} 
 

cout << "Thank you for my playing my game"<< endl; 
system ("pause"); 
return 0; 
} 
void TicTacToe::intBoard() 
{ 
    done = false; 
    winner = 0; 
    player = 2; 
    player1 = 1; 
    player2 = 2; 
    draw = 3; 
    int i,j; 
    for (j=0;j<3;j++) 
    { 
        for (i=0;i<3;i++) 
        { 
            Board[j][i]=0; 
        } 
    } 
    play(); 
} 
 
int TicTacToe::play() 
{ 
    int done = false; 
    boardProgress(Board); 
    while(!done) 
    { 
        playermove(); 
        boardProgress(Board); 
        done = Winner(Board); 
    } 
    Statistics(winner); 
    return 0; 
} 
void TicTacToe::playermove() 
{ 
    int answer = false; 
    while (answer == false) 
    { 
        cout <<"Row: "; 
        cin >> row; 
        row--; 
        cout <<"Column: "; 
        cin >> col; 
        col--; 
        answer = check(row,col); 
    } 
    player = turn(player); 
    if (player == 1) 
        Board[row][col] = 'X'; 
    else if (player == 2) 
        Board[row][col] = 'O'; 
    else 
        cout<< "Failed."; 
} 
int TicTacToe::check(int row, int col) 
{ 
    if(Board[row][col] == 0) 
    { 
        return true; 
    } 
    else if (Board[row][col] != 0) 
    { 
        cout <<"You can't go there"<< endl; 
        return false; 
    } 
    else 
    { 
        cout<< "Going through Check"; 
        Winner(Board); 
    } 
    return false; 
} 
 
int TicTacToe::turn(int player) 
{ 
    switch(player) 
    { 
    case 1: player = 2; 
        { 
        cout<<"It's Player 1's turn"<< endl; 
        break; 
        } 
    case 2: player = 1; 
        { 
        cout<<"It's Player 2's turn"<< endl; 
        break; 
        } 
    } 
    return player; 
} 
 
int TicTacToe::Winner(char x[][3]) 
{ 
    winner = 0; 
    int count = 0; 
    int a = row; 
    int b = col; 
    for (a=0;a<3;a++) 
    { 
        for (b=0;b<3;b++) 
        { 
            if (Board[a][b]==0) 
            { 
                count++; 
            } 
        } 
    } 
    if (count > 0) 
    { 
        int row, col, r, c, d, r1, c1, d1; 
        for (row=0; row<3; row++) 
        { 
            r=0; 
            r1=0; 
 
            for (col=0; col<3; col++) 
            { 
			
                if(x[row][col]=='X') 
                    r++; 
                if(x[row][col]=='O') 
                    r1++; 
                if (r1==3) 
                {  
                    winner=2; 
                } 
                if (r==3) 
                {    
                    winner=1; 
                } 
            } 
        } 
        for (col=0; col<3; col++) 
        { 
            r=0; 
            r1=0; 
            for (row=0; row<3; row++) 
            { 
                    if(x[row][col]=='X') 
                    r++; 
                if(x[row][col]=='O') 
                    r1++; 
                if (r1==3) 
                {    
                    winner=2; 
                } 
                if (r==3) 
                { 
                    winner=1; 
                    } 
            } 
        } 
        if (x[0][0]=='X' && x[1][1]=='X' && x[2][2]=='X') 
        { 
            winner=1; 
        } 
        else if (x[0][0]=='O' && x[1][1]=='O' && x[2][2]=='O') 
        { 
            winner=2; 
        } 
        else if (x[2][0]=='X' && x[1][1]=='X' && x[0][2]=='X') 
        { 
            winner=1; 
        } 
        else if (x[2][0]=='O' && x[1][1]=='O' && x[0][2]=='O') 
        { 
            winner=2; 
        } 
    } 
    else if (count == 9) 
    { 
        cout << "Its a draw" << endl; 
        winner = 3; 
    }    
    else 
    { 
        cout<< "next player's turn"<< endl; 
    } 
    if (winner > 0) 
    { 
        done = true; 
    } 
return done; 
} 
 
int TicTacToe::Statistics(int winner)     
{ 
    playBall.y++; 
    switch(winner) 
    { 
    case 1: z++; 
        { 
        break; 
        } 
    case 2: t++; 
        { 
        break; 
        } 
    case 3: s++; 
        { 
        break; 
        } 
    } 
    cout<<" Number of games you have played: " << y; 
    cout<<" Number of games Player 1 has won: " << z << " games.";  
    cout<<" Number of games Player 2 has won: " << t << " games."; 
    cout<<" Number have draws you had: " << s << " draws."; 
    return 0; 
} 
 
char TicTacToe::playAgain(char done) 
{ 
    cout <<"Would you like to play again"<< endl; 
    cout <<"Y/N: " << endl; 
    cin >> done; 
    if(done == 'Y' || done == 'y') 
    { 
         done = false; 
    } 
    else 
    { 
        done = true; 
    } 
    return done; 
} 
void TicTacToe::boardProgress(char x[][3]) 

{
	cls.setForeground(Purple);

    cout << "      |     |     \n"; 
    cout << "   " << x[0][0] << "  |  " << x[0][1] << "  |  " << x[0][2] <<"  \n"; 
    cout << " _____|_____|_____\n"; 
    cout << "      |     |     \n"; 
    cout << "   " << x[1][0] << "  |  " << x[1][1] << "  |  " << x[1][2] <<"  \n"; 
    cout << " _____|_____|_____\n"; 
    cout << "      |     |     \n"; 
    cout << "   " << x[2][0] << "  |  " << x[2][1] << "  | " << x[2][2] <<"  \n"; 
    cout << "      |     |     \n"; 
}
second one
Code:
#include <string>
#include <iostream>
#include"110ct.h"
//Use standard namespace to eliminate typing of std::
using namespace std;

/* !-------- Declare Classes Here --------! */

class TicTacToe
{
   private:
      int Grid[9];
      int Player;
      int TurnCounter;
      int Players;
      int PlayerType[20];
   public:
      TicTacToe();
      void PrintTurn();
      int PlayerHuman();
      void HumanMove();
      void ComputerMove();
      void DrawBoard();
      int  Winner();
      int  FullBoard();
      void NextTurn();
}; //End of the Class Declaration

/* !-------- Develop Methods Here --------! */

TicTacToe::TicTacToe()
{
    srand(time(0)); //Get a Random Number
    Player = 1; //Determines who starts first
    TurnCounter = 0; //Initializes the turn counter
        
//Set up New Players when game begins
    Players = 2;
    PlayerType[1] = 1; //PlayerType[Player] is the Human User(1)
    PlayerType[2] = 0; //PlayerType[Player] is the Computer (0)

    for (int i = 0; i < 9; i++)
    {
       Grid[i] = 0;
    }
}

void TicTacToe::DrawBoard()
{
	ColourController cls;
	cls.setForeground(Red);
   cout << endl
        << Grid[0] << " | " << Grid[1] << " | " << Grid[2]
        << "\n---------\n"
        << Grid[3] << " | " << Grid[4] << " | " << Grid[5]
        << "\n---------\n"
        << Grid[6] << " | " << Grid[7] << " | " << Grid[8]
        << endl;
} //End Drawing the TicTacToe Board

void TicTacToe::PrintTurn()
{
   cout << "\nPlayer " << Player << "'s turn.\n";
} //End Printing Turn

void TicTacToe::NextTurn()
{
   TurnCounter++;

   if (++Player > Players)
   {
      Player = 1;
   }
} //End Next Turn

int TicTacToe::PlayerHuman()
{
   return PlayerType[Player];
} //End Determination of A Human Player

void TicTacToe::HumanMove()
{
	ColourController cls;
	cls.setBackground(Blue);
	cls.setForeground(Aqua);
   cout << " Enter your box number please: ";
   int Move;

   do
   {
      cin >> Move;
      Move--; // For user to enter 1-9 instead of 0-8
   }
   while (Move < 0 || Move > 8 || Grid[Move] != 0);
   Grid[Move] = Player;
} //End the Human Move

void TicTacToe::ComputerMove()
{
   int Move;

   do
   {
      Move  = rand() % 9; //Not really a Smart AI, Just picks a random move
   }
   while (Move < 0 || Move > 8 || Grid[Move] != 0);
   Grid[Move] = Player;
} //End the Computer Move

int TicTacToe::Winner()
{
   int i = 0;
   int Board[8][3] = {
	                
	   {0,1,2},
       {3,4,5},
       {6,7,8},
       {0,3,6},
       {1,4,7},
       {2,5,8},
       {0,4,8},
       {2,4,6}
   }; //List of all possible winning outcomes

   for ( i = 0; i < 8; i++) //Loop for all possible winning outcomes
   {
      if ((Grid[Board[i][0]] == Grid[Board[i][1]]) && (Grid[Board[i][1]] == Grid[Board[i][2]]) && Grid[Board[i][0]] != 0 )
      {
         cout << "Player " << Grid[Board[i][0]]
              <<  " IS THE WINNER!" <<endl;

         system("pause");
         return 1;  //Returns a true value (1 with the bool data type).
      }
   }
   return 0; //Else a winner has not been found yet, and return a false (0) value
} //End Checking the Winner

int TicTacToe::FullBoard()
{
   if (TurnCounter == 9)
   {
      cout << "DRAW" <<endl;
      return 1;
   }
   else
   {
      return 0;
   }
} //End Checking for a Full Board

int main(void)
{

   TicTacToe game;
   ColourController cls;
   cls.setForeground(Green);
   cout <<"Welcome! Below is the board to play this game, you must press the number on your keyboard to chose your box!" << endl;
   
    cout    << " 1 | 2 | 3 " << endl;
    cout    << "-----------" << endl;
    cout    << " 4 | 5 | 6 " << endl;
    cout    << "-----------" << endl;
    cout    << " 7 | 8 | 9 " << endl;
        
   game.DrawBoard();
   
   do
   {
      game.PrintTurn();
      if (game.PlayerHuman()) //If it is the Human turn, allow the human to move
      {
         game.HumanMove();
      }
      else //Else if it is not the Human turn, it is the computer's turn
      {
         game.ComputerMove();
      }
      
      game.DrawBoard();
      game.NextTurn();
    }
    while (!game.Winner() && !game.FullBoard()); //Execute the code in the do loop while there is no winner
                                                     //And the game board is not full
    return 0;
}