Sunteți pe pagina 1din 17

TIC TAC TOE

WITH
ARTIFICIAL
INTELLIGEN
CE
C++ code

Just paste the code in


main.cpp file,bulid,run
and enjoy

/********************************************************************
Submitted by:

NAME: ABDUL WAHAB

: ROLL NO: (2014-MC-03)

RANA AQIB LATIF: ROLL NO: (2014-MC-09)

____________________________________________________________________|

PROJECT :

SEMESTER PROJECT

3 by 3 ***INTELLIGENT*** TIC TAC TOE

____________________________________________________________________|
DATE:

8th june 2015

********************************************************************/
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
using namespace std;

char square[10] = {'0','1','2','3','4','5','6','7','8','9'}; /** DECLARING STRING


ARRAY**/

int checkwin();

/**DECLARING FUNCTIONS USED**/

void board();
void comp_logic ();
/**VARIABLES USED**/
int player,i;
char choice,wish,playagain;
int main()
{

system( "color FD" );


do{

cout <<"WELCOME TO 3 BY 3 INTELLIGENT TIC TAC TOE "<<endl;

board();

wishi:
cout <<"Want to play ist or not ? :: ENTER Y FOR YES/ N FOR
NO :";
cin >>wish;
cin.ignore();
if (wish=='y'||wish=='Y'){player=1;
cout<<"\n\nOOOOOKK!! THEN PLAY !!\n \t\t HERE we
go.............." <<endl;}
else if (wish=='N'||wish=='n'){player=2;
cout<<"\n\nAS U WISH!! NOW LET THE COMPUTER PLAY IST\n\t\t HERE
we go.............. !!" <<endl;}

else if (wish!='y'||wish!='Y'||wish!='N'||wish!='n')
{ cout<<"please type valid input"<<endl;
goto wishi;

}
Sleep(1400);
system("cls");

do
{ board();

player=(player%2);

cout <<"\n****Press the same button in the block to mark it with X


*****"<<endl;
if (player!=0)
{cout <<"\nHEYYY....U HUMAN!!, Press the button now:";
cin >> choice;

if (choice == '1' && square[1] == '1') /**placement of 'X' FROM USER


**/

square[1] = 'X';
else if (choice == '2' && square[2] == '2')

square[2] = 'X';

else if (choice == '3' && square[3] == '3')

square[3] = 'X';
else if (choice == '4' && square[4] == '4')

square[4] = 'X';
else if (choice == '5' && square[5] == '5')

square[5] = 'X';
else if (choice == '6' && square[6] == '6')

square[6] = 'X';
else if (choice == '7' && square[7] == '7')

square[7] = 'X';
else if (choice == '8' && square[8] == '8')

square[8] = 'X';
else if (choice == '9' && square[9] == '9')

square[9] = 'X';

else
/**IF PLACEMENT TAKE PLACE AT THE ALREADY
OOCUPIED PLACE BY USER**/

cout<<" ARE U BLIND !! OOR DOING THIS


INTENTIONALLY ..Invalid move!";

player--;
cin.ignore();
cin.get();
}

i=checkwin();

player++;

system("cls");}
else if (player==0) /**COMPUTER TURN **/
{ comp_logic();
i=checkwin();
player++;

system("cls");

}while(i==-1);
board();
if(i==1)

{
if (player!=0)
{cout<<"O.o WOW! u win ,congratulations :)";}
else
{cout <<"Sorry dear! :( computer wins...,,BEtter luck next time";}

else if (i==0)
{cout<<"WELL PLAYED!! BUT Game IS drawn";}

cin.ignore();
cin.get();
cout<<"Would u like to play again:(ENTER Y FOR YES ; N FOR NO)";
cin>>playagain;
if (playagain=='y'||'Y')
{square[1]='1';square[2]='2'; square[3]='3';square[4]='4';
square[5]='5';square[6]='6';square[7]='7';square[8]='8';square[9]='9';}
system("cls");
}

while (playagain=='y'||playagain=='Y');

return 0;
}

/*********************************************

FUNCTION TO RETURN GAME STATUS


1 FOR GAME IS OVER WITH RESULT
-1 FOR GAME IS IN PROGRESS
O GAME IS OVER AND NO RESULT
**********************************************/

int checkwin()
{

/**horizontal checks**/
if (square[1] == square[2] && square[1] == square[3])

return 1;
else if (square[4] == square[5] && square[4] == square[6])

return 1;
else if (square[7] == square[8] && square[7] == square[9])

return 1;

/**verical checks**/
else if (square[1] == square[4] && square[1] == square[7])

return 1;
else if (square[2] == square[5] && square[2] == square[8])

return 1;

else if (square[3] == square[6] && square[3] == square[9])

return 1;

/**diagonal checks**/
else if (square[1] == square[5] && square[1] == square[9])

return 1;
else if (square[3] == square[5] && square[3] == square[7])

return 1;

/**FOR DRAW**/
else if (square[1] != '1' && square[2] != '2' && square[3] != '3'
&& square[4] != '4' && square[5] != '5' && square[6] != '6'
&& square[7] != '7' && square[8] != '8' && square[9] != '9' )

return 0;
else
return -1;

/*******************************************************************
FUNCTION TO DRAW BOARD OF TIC TAC TOE WITH PLAYERS MARK
********************************************************************/

void board()

cout <<
"**********************************************************"<<endl;
cout << "**\t\tTic Tac Toe\t\t\t\t**\n**\t\t\t\t\t\t\t**\n";

cout << "**\tHUMAN (X) - COMPUTER (O)\t\t\t**"<<endl;


cout << "**\t\t\t\t\t\t\t**"<<endl;

cout << "**\t\t

\t\t\t**" << endl;

cout << "**\t\t " << square[1] << " | " << square[2] << " | " <<
square[3] <<"\t\t\t\t**"<< endl;

cout << "**\t\t_____|_____|_____\t\t\t**" << endl;


cout << "**\t\t

\t\t\t**" << endl;

cout << "**\t\t " << square[4] << " | " << square[5] << " | " <<
square[6]<<"\t\t\t\t**"<< endl;

cout << "**\t\t_____|_____|_____\t\t\t**" << endl;


cout << "**\t\t

\t\t\t**" << endl;

cout << "**\t\t " << square[7] << " | " << square[8] << " | " <<
square[9]<< "\t\t\t\t**"<< endl;

cout << "**\t\t

\t\t\t**" <<endl;

cout <<
"**********************************************************"<<endl;

/************ Following is he computer logic **********************/


void comp_logic ()
{
if(square[1] =='O' && square[2] =='O' && square[3] =='3')
{square[3]='O';}

else if(square[4] =='O' && square[5] =='O' && square[6] =='6')


{square[6]='O';}

else if(square[7] =='O' && square[8] =='O' && square[9] =='9')


{square[9]='O';}

else if(square[2] =='O' && square[3] =='O' && square[1] =='1')


{square[1]='O';}

else if(square[5] =='O' && square[6] =='O' && square[4] =='4')


{square[4]='O';}

else if(square[8] =='O' && square[9] =='O' && square[7] =='7')


{square[7]='O';}

else if(square[1] =='O' && square[3] =='O' && square[2] =='2')


{square[2]='O';}

else if(square[4] =='O' && square[6] =='O' && square[5] =='5')


{square[5]='O';}

else if(square[7] =='O' && square[9] =='O' && square[8] =='8')


{square[8]='O';}

else if(square[1] =='O' && square[4] =='O' && square[7] =='7')


{square[7]='O';}

else if(square[2] =='O' && square[5] =='O' && square[8] =='8')


{square[4]='O';}

else if(square[3] =='O' && square[6] =='O' && square[9] =='9')


{square[9]='O';}

else if(square[4] =='O' && square[7] =='O' && square[1] =='1')


{square[1]='O';}

else if(square[5] =='O' && square[8] =='O' && square[2] =='2')


{square[2]='O';}

else if(square[6] =='O' && square[9] =='O' && square[3] =='3')


{square[3]='O';}

else if(square[1] =='O' && square[7] =='O' && square[4] =='4')


{square[4]='O';}

else if(square[2] =='O' && square[8] =='O' && square[5] =='5')


{square[5]='O';}

else if(square[3] =='O' && square[9] =='O' && square[6] =='6')


{square[6]='O';}

else if(square[1] =='O' && square[5] =='O' && square[9] =='9')


{square[9]='O';}

else if(square[5] =='O' && square[9] =='O' && square[1] =='1')


{square[1]='O';}

else if(square[1] =='O' && square[9] =='O' && square[5] =='5')


{square[5]='O';}

else if(square[3] =='O' && square[5] =='O' && square[7] =='7')


{square[7]='O';}

else if(square[7] =='O' && square[5] =='O' && square[3] =='3')


{square[3]='O';}

else if(square[7] =='O' && square[3] =='O' && square[5] =='5')


{square[5]='O';}

else if(square[1] =='X' && square[2] =='X' && square[3] =='3')


{square[3]='O';}

else if(square[4] =='X' && square[5] =='X' && square[6] =='6')


{square[6]='O';}

else if(square[7] =='X' && square[8] =='X' && square[9] =='9')


{square[9]='O';}

else if(square[2] =='X' && square[3] =='X' && square[1] =='1')


{square[1]='O';}

else if(square[5] =='X' && square[6] =='X' && square[4] =='4')


{square[4]='O';}

else if(square[8] =='X' && square[9] =='X' && square[7] =='7')


{square[7]='O';}

else if(square[1] =='X' && square[3] =='X' && square[2] =='2')


{square[2]='O';}

else if(square[4] =='X' && square[6] =='X' && square[5] =='5')


{square[5]='O';}

else if(square[7] =='X' && square[9] =='X' && square[8] =='8')


{square[8]='O';}

else if(square[1] =='X' && square[4] =='X' && square[7] =='7')


{square[7]='O';}

else if(square[2] =='X' && square[5] =='X' && square[8] =='8')


{square[8]='O';}

else if(square[3] =='X' && square[6] =='X' && square[9] =='9')


{square[9]='O';}

else if(square[4] =='X' && square[7] =='X' && square[1] =='1')


{square[1]='O';}

else if(square[5] =='X' && square[8] =='X' && square[2] =='2')


{square[2]='O';}

else if(square[6] =='X' && square[9] =='X' && square[3] =='3')


{square[3]='O';}

else if(square[1] =='X' && square[7] =='X' && square[4] =='4')


{square[4]='O';}

else if(square[2] =='X' && square[8] =='X' && square[5] =='5')


{square[5]='O';}

else if(square[3] =='X' && square[9] =='X' && square[6] =='6')


{square[6]='O';}

else if(square[1] =='X' && square[5] =='X' && square[9] =='9')


{square[9]='O';}

else if(square[5] =='X' && square[9] =='X' && square[1] =='1')


{square[1]='O';}

else if(square[1] =='X' && square[9] =='X' && square[5] =='5')


{square[5]='O';}

else if(square[3] =='X' && square[5] =='X' && square[7] =='7')


{square[7]='O';}

else if(square[7] =='X' && square[5] =='X' && square[3] =='3')


{square[3]='O';}

else if(square[7] =='X' && square[3] =='X' && square[5] =='5')


{square[5]='O';}

else if(square[1] =='X' && square[5] =='O' && square[9] =='X')


{square[6]='O';}

else if(square[3] =='X' && square[5] =='O' && square[7] =='X')


{square[4]='O';}

else if(square[5] =='5'){square[5]='O';}

else if(square[1] =='1'){square[1]='O';}

else if(square[9] =='9'){square[9]='O';}

else if(square[7] =='7'){square[7]='O';}

else if(square[3] =='3'){square[3]='O';}


/***"****************WE can add
else if(square[7] =='7'){square[7]='O';} or
else if(square[3] =='3'){square[3]='O';} or
both

to increase the difficulty level*************/


else if(square[2] =='2'){square[2]='O';}

else if(square[4] =='4'){square[4]='O';}

else if(square[6] =='6'){square[6]='O';}

else if (square[8] =='8'){square[8]='O';}

S-ar putea să vă placă și