www.pudn.com > A_TIC_TAC_AI_Game.zip > GTICTAC.C


#include 
#include 
#include 
#include 
int board[9],win=0; 
int i; 
int gdriver = DETECT, gmode; 
init() 
{ 
for(i=0;i<9;i++) 
board[i]=1; 
} 
 
void main() 
{ 
 int x,y; 
 initgraph(&gdriver, &gmode, ""); 
 clrscr(); 
 init(); 
 display(); 
 while(1) 
 { 
  gotoxy(0,0); 
  coin(400,200,1); 
  outtextxy(415,200," Player"); 
  coin(400,230,2); 
  outtextxy(415,230," System"); 
  printf("\n\nEnter your move (row/column) : "); 
  scanf("%d %d",&x,&y); 
  if (board[3*(x-1)+(y-1)]==1) 
  { 
   board[3*(x-1)+(y-1)]=3; 
   clrscr(); 
   display(); 
   check(); 
   getch(); 
   move(); 
   clrscr(); 
   display(); 
   check(); 
   if(win==-1) 
   { 
    settextstyle(5,0,4); 
    outtextxy(200,400,"MATCH DRAW"); 
    break; 
   } 
  } 
  else 
  printf("\nMove Not Allowed\n"); 
 } 
 getch(); 
} 
 
coin(int x,int y,int s) 
{ 
 if(s==1) 
 { 
  setfillstyle(1,2); 
  fillellipse(x,y,10,10); 
 } 
 else 
 { 
  setfillstyle(1,14); 
  fillellipse(x,y,10,10); 
 } 
} 
 
display() 
{ 
int l; 
cleardevice(); 
outtextxy(220,10,"TIC TAC TOE"); 
outtextxy(370,300,"Designed By K.Shyam Srinivas"); 
outtextxy(370,320,"Email : seenu_4321@yahoo.co.in"); 
outtextxy(370,340,"Website : www.seenu.bravehost.com"); 
setbkcolor(0); 
rectangle(199,199,351,351); 
rectangle(196,196,354,354); 
 
setfillstyle(8,4); 
bar3d(200,200,250,250,0,0); 
bar3d(300,200,350,250,0,0); 
bar3d(250,250,300,300,0,0); 
bar3d(200,300,250,350,0,0); 
bar3d(300,300,350,350,0,0); 
 
setfillstyle(8,1); 
bar3d(250,200,300,250,0,0); 
bar3d(200,250,250,300,0,0); 
bar3d(300,250,350,300,0,0); 
bar3d(250,300,300,350,0,0); 
 
if (board[0]==3) coin(225,225,1); 
if (board[0]==9) coin(225,225,2); 
if (board[1]==3) coin(275,225,1); 
if (board[1]==9) coin(275,225,2); 
if (board[2]==3) coin(325,225,1); 
if (board[2]==9) coin(325,225,2); 
 
if (board[3]==3) coin(225,275,1); 
if (board[3]==9) coin(225,275,2); 
if (board[4]==3) coin(275,275,1); 
if (board[4]==9) coin(275,275,2); 
if (board[5]==3) coin(325,275,1); 
if (board[5]==9) coin(325,275,2); 
 
if (board[6]==3) coin(225,325,1); 
if (board[6]==9) coin(225,325,2); 
if (board[7]==3) coin(275,325,1); 
if (board[7]==9) coin(275,325,2); 
if (board[8]==3) coin(325,325,1); 
if (board[8]==9) coin(325,325,2); 
 
return; 
} 
 
move() 
{ 
 int maxrt=0,maxpos=-1,rt; 
 for(i=0;i<9;i++) 
 { 
  if(board[i]==1) 
  { 
   board[i]=9; 
   if(board[0]+board[1]+board[2]==27) win=2; 
   if(board[3]+board[4]+board[5]==27) win=2; 
   if(board[6]+board[7]+board[8]==27) win=2; 
   if(board[0]+board[3]+board[6]==27) win=2; 
   if(board[1]+board[4]+board[7]==27) win=2; 
   if(board[2]+board[5]+board[8]==27) win=2; 
   if(board[0]+board[4]+board[8]==27) win=2; 
   if(board[2]+board[4]+board[6]==27) win=2; 
   if (win!=2) board[i]=1; 
   else break; 
  } 
 } 
 if(win==2) return; 
 for(i=0;i<9;i++) 
 { 
  if(board[i]==1) 
  { 
   board[i]=3; 
   rt=rate(); 
 
   if (maxrt