All pastes #1525059 Raw Edit

tic tac toe v3 by Pratik Anand

public cpp v1 · immutable
#1525059 ·published 2009-08-11 13:21 UTC
rendered paste body
/*******************************************************///            TIC TAC TOE with computer AI             //// Coded by PRATIK ANAND                               //// Modified by Haritosh Joshi                         //// Beta testing by Prateek Jain                       ////                                                    // /******************************************************/#include<iostream.h>#include<conio.h>#include<stdio.h>#include<stdlib.h>int flag=0;void display(char a[][3]);void check(char a[3][3],char stat){int i=0,j=0;if ((a[0][0]==a[1][1] && a[1][1]==a[2][2] && a[0][0]!='_') || (a[0][2]==a[1][1] && a[1][1]==a[2][0] && a[0][2]!='_'))if (stat=='u'){cout<<"\n\nYou have won";display(a);getch();exit(0);}else if (stat=='a'){cout<<"\n\nComputer has won";display(a);getch();exit(0);}for(i=0;i<3;i++)	if ((((a[i][j]==a[i][j+1]) && (a[i][j]==a[i][j+2])) && (a[i][j]!='_')))		{		if (stat=='u')		flag=1;		else if (stat=='a')		flag=2;		goto condition;		}for(i=0;i<3;i++)	if ((a[j][i]==a[j+1][i] && a[j][i]==a[j+2][i]) && a[j][i]!='_')                {		if (stat=='u')		flag=1;		else if (stat=='a')		flag=2;		}	condition:	if (flag==1)	{	cout<<"You have won";	display(a);	getch();	exit(0);	}	else if (flag==2)	{	cout<<"Computer has won";	display(a);	getch();	exit(0);	}	 }void user(char a[3][3]){if (flag) return;int row,col;sub:cout<<"\nEnter row and column no. b/w 1 and 3  :";cin>>row>>col;if (a[row-1][col-1]=='_')a[row-1][col-1]='x';else{cout<<"\n\nPlease enter a proper choice ";goto sub;}check(a,'u');}void ai(char a[3][3]){int i,j,k,l;if (flag) return;if (a[0][0]==a[1][1] && a[0][0]!='_')        //diag  {	if(a[2][2]=='_')		{a[2][2]='o';		 goto final;}  }  else if (a[0][0]==a[2][2] && a[0][0]!='_')       //diag {	if(a[1][1]=='_')	{a[1][1]='o';	goto final; }  }	else if (a[1][1]==a[2][2] && a[1][1]!='_')  //diag  { if(a[0][0]=='_')	 {a[0][0]='o';	goto final;}  }  else if (a[0][2]==a[1][1] && a[0][2]!='_')         //diag { if(a[2][0]=='_')	 { a[2][0]='o';  goto final; } }  else if (a[0][2]==a[2][0] && a[0][2]!='_')        //diag { if(a[2][2]=='_')	 {a[1][1]='o';	  goto final;} }  else if (a[1][1]==a[2][0] && a[1][1]!='_')     //diag {  if(a[2][2]=='_')	{ a[0][2]='o';  goto final;} } //------------------------------------ for(i=0;i<3;i++)  //for row for(j=0;j<3;j++) {	if((a[i][j]=='x' && a[i][j+2]=='x') || (a[i][j]=='o' && a[i][j+2]=='o'))  {      if(a[i][j+1]=='_')	 { a[i][j+1]='o';		 goto final;	 }  }  else if((a[i][j]=='x' && a[i][j+1]=='x') || (a[i][j]=='o' && a[i][j+1]=='o'))  { if(a[i][j+2]=='_')	 {a[i][j+2]='o';	goto final;}  } else if((a[i][j+1]=='x'&& a[i][j+2]=='x') || (a[i][j+1]=='o' && a[i][j+2]=='o')) {  if(a[i][j]=='_')  {a[i][j]='o';  goto final;} }   } for(i=0;i<3;i++)  //for col for(j=0;j<3;j++) {  if((a[j][i]=='x' && a[j+2][i]=='x') || (a[j][i]=='o' && a[j+2][i]=='o'))  {     if(a[j+1][i]=='_')		 {a[j+1][i]='o';	goto final;}  }	else if((a[j][i]=='x' && a[j+1][i]=='x') || (a[j][i]=='o' && a[j+1][i]=='o') )	  {    if(a[j+2][i]=='_')	{a[j+2][i]='o';	goto final;}	}	else if((a[j+1][i]=='x'&& a[j+2][i]=='x') || (a[j+1][i]=='o' && a[j+2][i]=='o'))	{ if(a[j][i]=='_')	a[j][i]='o';	goto final;	}}  sub:randomize();	 k=random(3);	 l=random(3);	if(a[k][l]=='_')	a[k][l]='o';	else goto sub;	final: check(a,'a');	}void display(char a[][3])		{ cout<<"\n";		 for(int i=0;i<3;i++)			{ for(int j=0;j<3;j++)			cout<<a[i][j]<<"\t";		cout<<endl;   }		 }int draw(char a[][3])  {   int tt=1;		for(int i=0;i<3;i++)			  for(int j=0;j<3;j++)				{ if(a[i][j]=='_')				 tt=0;				 }	 return tt;  }void main(){	clrscr();	char a[3][3];	for(int i=0;i<3;i++)	for(int j=0;j<3;j++)	a[i][j]='_';	while(flag!=1 || flag!=2)	{ cout<<"user :";		user(a);		display(a);		if(draw(a)){cout<<"Draw";break;}		cout<<"comp :";		ai(a);		display(a);		if(draw(a)){cout<<"Draw";break;}	 }      getch();}