Thursday, 7 August 2014

DSPS: TIC TAC TOE

//============================================================================
// Name        : Tic_tac.cpp
// Author      : Parashar
// Version     :
// Copyright   : Do not try this at home ;P
// Description : Hello World in C++, Ansi-style
//============================================================================



    #include <iostream>
    using namespace std;

    class tictactoe
    {
    public:
        char block[10];
    public:
        tictactoe();
        int checkwin() ;
        void board();
    };
    tictactoe::tictactoe()
    {
        block[1]='1';
        block[2]='2';
        block[3]='3';
        block[4]='4';
        block[5]='5';
        block[6]='6';
        block[7]='7';
        block[8]='8';
        block[9]='9';
    }

    void tictactoe::board()
    {
    cout<<"   TICTACTOE  "<<endl;
    cout<<"  PLAYER 1(X)  PLAYER 2(O)"<<endl;

    cout<<"   |   |    "<<endl;

    cout<<" "<<block[1]<<" | "<<block[2]<<" | "<<block[3]<<endl;

    cout<<"___|___|___"<<endl;

    cout<<"   |   |     "<<endl;

    cout<<" "<<block[4]<<" | "<<block[5]<<" | "<<block[6]<<endl;

    cout<<"___|___|___"<<endl;

    cout<<"   |   |     "<<endl;

    cout<<" "<<block[7]<<" | "<<block[8]<<" | "<<block[9]<<endl;
    }


    int tictactoe::checkwin()
    {
    if(block[1]==block[2] && block[2]==block[3])
        return 1;
    else if(block[4]==block[5] && block[5]==block[6])
        return 1;
    else if(block[7]==block[8] && block[8]==block[9])
        return 1;
    else if(block[1]==block[4] && block[4]==block[7])
        return 1;
    else if(block[2]==block[5] && block[5]==block[8])
        return 1;
    else if(block[3]==block[6] && block[6]==block[9])
        return 1;
    else if(block[1]==block[5] && block[5]==block[9])
        return 1;
    else if(block[3]==block[5] && block[5]==block[7])
        return 1;

    else if(block[1]!='1' && block[2]!='2' && block[3]!='3' &&
            block[4]!='4' && block[5]!='5' && block[6]!='6'&&
            block[7]!='7' && block[8]!='8' && block[9]!='9' )
        return 0;
    else
        return -1;
    }

    int main()
    {
        tictactoe p;
        int player=1,i;
        char mark;
        int ch;
        do
        {
            p.board();
            player=(player%2)?1:2;
             cout << "Player " << player << ",\n enter a choice :  ";
              cin >> ch;
              mark=(player==1)?'X':'O';
                        if(ch == 1 && p.block[1] == '1')
                       p.block[1] = mark;
                        else if(ch==2 && p.block[2]=='2')
                            p.block[2]=mark;
                        else if(ch==3 && p.block[3]=='3')
                                              p.block[3]=mark;
                        else if(ch==4 && p.block[4]=='4')
                                              p.block[4]=mark;
                        else if(ch==5 && p.block[5]=='5')
                                              p.block[5]=mark;
                        else if(ch==6 && p.block[6]=='6')
                                              p.block[6]=mark;
                        else if(ch==7 && p.block[7]=='7')
                                              p.block[7]=mark;
                        else if(ch==8 && p.block[8]=='8')
                                              p.block[8]=mark;
                        else if(ch==9 && p.block[9]=='9')
                                              p.block[9]=mark;
                        else
                        {
                            cout<<"SORRY! INVALID MOVE\n";
                            player--;
                        }
                        player++;
                        i=p.checkwin();

        }while(i==-1);
        p.board();
            if(i==1)
                cout<<"Player"<<--player<<"win\n CONGRATULATIONS!";
            else
                cout<<"DRAW!!";
    return 0;
    }
/*   TICTACTOE
  PLAYER 1(X)  PLAYER 2(O)
   |   |
 1 | 2 | 3
___|___|___
   |   |
 4 | 5 | 6
___|___|___
   |   |
 7 | 8 | 9
Player 1,
 enter a choice :  1
   TICTACTOE
  PLAYER 1(X)  PLAYER 2(O)
   |   |
 X | 2 | 3
___|___|___
   |   |
 4 | 5 | 6
___|___|___
   |   |
 7 | 8 | 9
Player 2,
 enter a choice :  5
   TICTACTOE
  PLAYER 1(X)  PLAYER 2(O)
   |   |
 X | 2 | 3
___|___|___
   |   |
 4 | O | 6
___|___|___
   |   |
 7 | 8 | 9
Player 1,
 enter a choice :  2
   TICTACTOE
  PLAYER 1(X)  PLAYER 2(O)
   |   |
 X | X | 3
___|___|___
   |   |
 4 | O | 6
___|___|___
   |   |
 7 | 8 | 9
Player 2,
 enter a choice :  4
   TICTACTOE
  PLAYER 1(X)  PLAYER 2(O)
   |   |
 X | X | 3
___|___|___
   |   |
 O | O | 6
___|___|___
   |   |
 7 | 8 | 9
Player 1,
 enter a choice :  3
   TICTACTOE
  PLAYER 1(X)  PLAYER 2(O)
   |   |
 X | X | X
___|___|___
   |   |
 O | O | 6
___|___|___
   |   |
 7 | 8 | 9
Player1win
 CONGRATULATIONS!


*/

No comments:

Post a Comment