Friday, August 9, 2013

TIC TAC TOE GAME NEW CONCEPT (C++ PROGRAM)


TIC TAC TOE GAME NEW CONCEPT (C++ PROGRAM)


‪#‎include‬<iostream.h> //opening headerfile iostream for in-out
#include<conio.h> //opening headerfile conio for clrscr();
#include<stdlib.h> //opening headerfile stdlib for
char tic[3][3]; //global matrix declerations
int d,e,f,a,t,i,j,x,y; //global variables declerations
void display(); //displays the matrix
void user(); //function for user's move
void newdisp(); //function for display of matrix after every move
void pc(); //function for pc's move
int check(); //function for finding out the winner
int horcheck(); //function for horizontal line check
int vercheck(); //function for vertical line check
int diagcheck(); //function for diagonal line check
main() //main function
{
clrscr(); //clears the previous output screen
randomize(); //initialize random function calling
int d=random(2); //random function call
for(i=0;i♥;i++)
for(j=0;j♥;j++)
tic[i][j]=' '; //assigning space ' ' to all elements of matrix
display(); //display function call
if(d==0)
{
user();
}
else
{ pc();
} //random starting of the game dependingo
getch(); //provides output by getting input withoutreturning to program
return 0; //return int to main function
}
void display() //display function definition
{
for(t=0;t♥;t++)
{
cout<<" "<<tic[t][0]<<" | "<<tic[t][1]<<" | "<<tic[t][2]<<endl; //figure formation
if(t!=2)
cout<<" --|---|--"<<endl;
}
}
void user() //user function definition
{
cout<<endl<<endl<<endl;
cout<<"ENTER THE CO-ORDINATES WHERE YOU WANT TO PUT UR 'X'";
cout<<endl<<"Enter x(co-ordinate)";
cin>>x;
cout<<endl<<"Enter y(co-ordinate)";
cin>>y;
cout<<"Values are"<<x<<y;
cout<<endl;
if((x<0)||(x>2)&&(y<0)||(y>2)) //check for valid co-ordinates
{
cout<<" ENTER THE CORRECT CO-ORDINATES"<<endl;
user(); //user function call
}
else
{
if(tic[x][y]==' ') //check for vacant space at entered co-ordinates
{
tic[x][y]='X'; //assigning user 'X' to the co-ordinates
newdisp(); //newdisp function call
}
else
{
cout<<"THIS POSITION IS ALREADY FILLED. CHOOSE SOME OTHERCO-ORDINATES";
user(); //user function call
}
}
d=check(); //check function call
if(d==0)
pc(); //pc function call
else
{
cout<<"YOU ARE THE WINNER";
getche(); //requires enter to return to program. prevents returnwithout display
exit(1); //program termination
}
}
void newdisp() //newdisp function definition
{
for(t=0;t♥;t++)
{
cout<<" "<<tic[t][0]<<" | "<<tic[t][1]<<" | "<<tic[t][2]<<endl;
//displays new tictactoe after user or pc turn
if(t!=2)
cout<<" --|---|--"<<endl;
}
}
void pc() //pc function call
{
int f,z;
randomize(); //initialize random function calling
cout<<" THIS IS THE COMPUTER'S MOVE"<<endl<<endl;
for(i=0;i<=20;i++)
{
f=random(3);
z=random(3);
if(tic[f][z]==' ') //check for vacant space at enteredco-ordinates
{
tic[f][z]='O'; //assigning pc 'O' to the co-ordinates
goto x; //exiting for loop to display new tictactoe
}
else
continue; //
}
x:newdisp(); //newdisp function call
d=check(); //check function call
if(d==0)
user(); //user function call
else
{
cout<<" MR. COMPUTER IS THE WINNER";
getche(); //requires enter to return to program. preventsreturn without display
exit(1); //program termination
}
}
check() //check function definition
{
horcheck(); //horcheck function call
vercheck(); //vercheck function call
diagcheck(); //diagcheck function call
return (d||e||f);
}
horcheck() //horcheck function definition
{
if(((tic[0][0]==tic[0][1])&&(tic[0][1]==tic[0][2])&&(tic[0][1]!=' '))||((tic[1][0]==tic[1][1])&&(tic[1][1]==tic[1][2])&&(tic[1][1]!=' '))||((tic[2][0]==tic[2][1])&&(tic[2][1]==tic[2][2])&&(tic[2][2]!=' ')))
d=1; //checks each element of a horizontal linetobe same
else //returns 1 if all 3 elements of any horizontal line are same
d=0; //else returns 0
return d;
}
vercheck() //vercheck function definition
{
if(((tic[0][0]==tic[1][0])&&(tic[1][0]==tic[2][0])&&(tic[0][0]!=' '))||((tic[0][1]==tic[1][1])&&(tic[1][1]==tic[2][1])&&(tic[0][1]!=' '))||((tic[0][2]==tic[1][2])&&(tic[1][2]==tic[2][2])&&(tic[0][2]!=' ')))
e=1; //checks each element of a vertical line to be same
else //returns 1 if all 3 elements of any vertical line are same
e=0; //else returns 0
return e;
}
diagcheck() //diagcheck function definition
{
if(((tic[0][0]==tic[1][1])&&(tic[1][1]==tic[2][2])&&(tic[0][0]!=' '))||((tic[0][2]==tic[1][1])&&(tic[1][1]==tic[2][0])&&(tic[1][1]!=' ')))
f=1; //checks each element of a diagonal line tobesame
else //returns 1 if all 3 elements of anydiagonalline are same
f=0; //else returns 0
return f;
}

No comments:

Post a Comment