33% found this document useful (9 votes)
4K views17 pages

Tic Tac Toe C++ Code With Artificial Intelligence Computer Vs Human

A guiding CODE for tic tac toe for c++ tic tac toe with ai.project . THIS is a document written in word(.docx) format.just copy the code from here and paste it into relevant software u r using e.g code blocks and enjoy...run if there is any error in the output please try to correct it urself ...just minor errors are there only in declaring winning sttements in output window.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
33% found this document useful (9 votes)
4K views17 pages

Tic Tac Toe C++ Code With Artificial Intelligence Computer Vs Human

A guiding CODE for tic tac toe for c++ tic tac toe with ai.project . THIS is a document written in word(.docx) format.just copy the code from here and paste it into relevant software u r using e.g code blocks and enjoy...run if there is any error in the output please try to correct it urself ...just minor errors are there only in declaring winning sttements in output window.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 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';}

You might also like