#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>
void show_game(int a[3][3]);
void get_kbd1(int a[3][3]);
void move_rnd(int a[3][3]);
void move_2(int a[3][3]);
void move_4(int a[3][3]);
void move_random(int a[3][3]);
void move_clear(int a[3][3]);
void test_win(int a[3][3],int *);
void get_kbd3(int a[3][3]);
void main(void)
{
star:
int a[3][3]={0,0,0,0,0,0,0,0,0},win=0;
show_game(a);
get_kbd1(a);
show_game(a);
move_rnd(a);
show_game(a);
get_kbd1(a);
show_game(a);
move_2(a);
show_game(a);
get_kbd1(a);
show_game(a);
test_win(a,&win);
if(win)
goto star;
move_2(a);
show_game(a);
test_win(a,&win);
if(win)
goto star;
do
{
get_kbd3(a);
show_game(a);
test_win(a,&win);
if(win)
goto star;
move_4(a);
show_game(a);
test_win(a,&win);
if(win)
goto star;
}while(1);
}
void show_game(int a[3][3])
{
clrscr();
printf("\n\n A %d %d %d" , a[0][0] , a[0][1] , a[0][2]);
printf("\n\n B %d %d %d" , a[1][0] , a[1][1] , a[1][2]);
printf("\n\n C %d %d %d" , a[2][0] , a[2][1] , a[2][2]);
printf("\n\n\n 1 2 3 ");
printf("\n\n\n\n");
}
void get_kbd1(int a[3][3])
{
int n=0;
do
{
do
{
n=getch();
n-=48;
}while( n==0 || 9<n );
if( n==1 && a[2][0]==0 )
{
a[2][0]=1;
return;
}
if( n==2 && a[2][1]==0 )
{
a[2][1]=1;
return;
}
if( n==3 && a[2][2]==0 )
{
a[2][2]=1;
return;
}
if( n==4 && a[1][0]==0 )
{
a[1][0]=1;
return;
}
if( n==5 && a[1][1]==0 )
{
a[1][1]=1;
return;
}
if( n==6 && a[1][2]==0 )
{
a[1][2]=1;
return;
}
if( n==7 && a[0][0]==0 )
{
a[0][0]=1;
return;
}
if( n==8 && a[0][1]==0 )
{
a[0][1]=1;
return;
}
if( n==9 && a[0][2]==0 )
{
a[0][2]=1;
return;
}
}while(1);
}
void move_rnd(int a[3][3])
{
int i,j;
printf("\n\n LOADING ... ");
do
{
i=random(3);
j=random(3);
if(a[i][j]==0)
{
a[i][j]=2;
return;
}
}while(1);
}
void move_2(int a[3][3])
{
if ( a[0][0]==2 && a[0][1]==2 && a[0][2]==0 )
{
a[0][2]=2;
return;
}
if ( a[0][0]==2 && a[0][2]==2 && a[0][1]==0 )
{
a[0][1]=2;
return;
}
if ( a[0][1]==2 && a[0][2]==2 && a[0][0]==0 )
{
a[0][0]=2;
return;
}
if ( a[1][0]==2 && a[1][1]==2 && a[1][2]==0 )
{
a[1][2]=2;
return;
}
if ( a[1][0]==2 && a[1][2]==2 && a[1][1]==0 )
{
a[1][1]=2;
return;
}
if ( a[1][1]==2 && a[1][2]==2 && a[1][0]==0 )
{
a[1][0]=2;
return;
}
if ( a[2][0]==2 && a[2][1]==2 && a[2][2]==0 )
{
a[2][2]=2;
return;
}
if ( a[2][0]==2 && a[2][2]==2 && a[2][1]==0 )
{
a[2][1]=2;
return;
}
if ( a[2][1]==2 && a[2][2]==2 && a[2][0]==0 )
{
a[2][0]=2;
return;
}
if ( a[0][0]==2 && a[1][0]==2 && a[2][0]==0 )
{
a[2][0]=2;
return;
}
if ( a[0][0]==2 && a[2][0]==2 && a[1][0]==0 )
{
a[1][0]=2;
return;
}
if ( a[1][0]==2 && a[2][0]==2 && a[0][0]==0 )
{
a[0][0]=2;
return;
}
if ( a[0][1]==2 && a[1][1]==2 && a[2][1]==0 )
{
a[2][1]=2;
return;
}
if ( a[0][1]==2 && a[2][1]==2 && a[1][1]==0 )
{
a[1][1]=2;
return;
}
if ( a[1][1]==2 && a[2][1]==2 && a[0][1]==0 )
{
a[0][1]=2;
return;
}
if ( a[0][2]==2 && a[1][2]==2 && a[2][2]==0 )
{
a[2][2]=2;
return;
}
if ( a[0][2]==2 && a[2][2]==2 && a[1][2]==0 )
{
a[1][2]=2;
return;
}
if ( a[1][2]==2 && a[2][2]==2 && a[0][2]==0 )
{
a[0][2]=2;
return;
}
if ( a[0][0]==2 && a[1][1]==2 && a[2][2]==0 )
{
a[2][2]=2;
return;
}
if ( a[0][2]==2 && a[1][1]==2 && a[2][0]==0 )
{
a[2][0]=2;
return;
}
if( a[0][0]==1 && a[0][1]==1 && a[0][2]==0 )
{
a[0][2]=2;
return;
}
if( a[0][0]==1 && a[0][2]==1 && a[0][1]==0 )
{
a[0][1]=2;
return;
}
if( a[0][1]==1 && a[0][2]==1 && a[0][0]==0 )
{
a[0][0]=2;
return;
}
if( a[1][0]==1 && a[1][1]==1 && a[1][2]==0 )
{
a[1][2]=2;
return;
}
if( a[1][0]==1 && a[1][2]==1 && a[1][1]==0 )
{
a[1][1]=2;
return;
}
if( a[1][1]==1 && a[1][2]==1 && a[1][0]==0 )
{
a[1][0]=2;
return;
}
if( a[2][0]==1 && a[2][1]==1 && a[2][2]==0 )
{
a[2][2]=2;
return;
}
if( a[2][0]==1 && a[2][2]==1 && a[2][1]==0 )
{
a[2][1]=2;
return;
}
if( a[2][1]==1 && a[2][2]==1 && a[2][0]==0 )
{
a[2][0]=2;
return;
}
if( a[0][0]==1 && a[1][0]==1 && a[2][0]==0 )
{
a[2][0]=2;
return;
}
if( a[0][0]==1 && a[2][0]==1 && a[1][0]==0 )
{
a[1][0]=2;
return;
}
if( a[1][0]==1 && a[2][0]==1 && a[0][0]==0 )
{
a[0][0]=2;
return;
}
if( a[0][1]==1 && a[1][1]==1 && a[2][1]==0 )
{
a[2][1]=2;
return;
}
if( a[0][1]==1 && a[2][1]==1 && a[1][1]==0 )
{
a[1][1]=2;
return;
}
if( a[1][1]==1 && a[2][1]==1 && a[0][1]==0 )
{
a[0][1]=2;
return;
}
if( a[0][2]==1 && a[1][2]==1 && a[2][2]==0 )
{
a[2][2]=2;
return;
}
if( a[0][2]==1 && a[2][2]==1 && a[1][2]==0 )
{
a[1][2]=2;
return;
}
if( a[1][2]==1 && a[2][2]==1 && a[0][2]==0 )
{
a[0][2]=2;
return;
}
if( a[0][0]==1 && a[1][1]==1 && a[2][2]==0 )
{
a[2][2]=2;
return;
}
if( a[0][0]==1 && a[2][2]==1 && a[1][1]==0 )
{
a[1][1]=2;
return;
}
if( a[1][1]==1 && a[2][2]==1 && a[0][0]==0 )
{
a[0][0]=2;
return;
}
if( a[0][2]==1 && a[1][1]==1 && a[2][0]==0 )
{
a[2][0]=2;
return;
}
if( a[0][2]==1 && a[2][0]==1 && a[1][1]==0 )
{
a[1][1]=2;
return;
}
if( a[1][1]==1 && a[2][0]==1 && a[0][2]==0 )
{
a[0][2]=2;
return;
}
if( a[2][0]==0 && a[1][0]==1 && a[0][0]==0 && a[0][1]==1 && a[0][2]== 0 )
{
a[0][0]=2;
return;
}
if( a[0][0]==0 && a[0][1]==1 && a[0][2]==0 && a[1][2]==1 && a[2][2]== 0 )
{
a[0][2]=2;
return;
}
if( a[0][2]==0 && a[1][2]==1 && a[2][2]==0 && a[2][1]==1 && a[2][0]== 0 )
{
a[2][2]=2;
return;
}
if( a[2][2]==0 && a[2][1]==1 && a[2][0]==0 && a[1][0]==1 && a[0][0]== 0 )
{
a[2][0]=2;
return;
}
if( a[2][0]==0 && a[1][0]==2 && a[0][0]==0 && a[0][1]==2 && a[0][2]== 0 )
{
a[0][0]=2;
return;
}
if( a[0][0]==0 && a[0][1]==2 && a[0][2]==0 && a[1][2]==2 && a[2][2]== 0 )
{
a[0][2]=2;
return;
}
if( a[0][2]==0 && a[1][2]==2 && a[2][2]==0 && a[2][1]==2 && a[2][0]== 0 )
{
a[2][2]=2;
return;
}
if( a[2][2]==0 && a[2][1]==2 && a[2][0]==0 && a[1][0]==2 && a[0][0]== 0 )
{
a[2][0]=2;
return;
}
move_rnd(a);
}
void move_random(int a[3][3])
{
int i,j,m,n;
do
{
i=random(3);
j=random(3);
if(a[i][j]==2)
break;
}while(1);
do
{
m=random(3);
n=random(3);
if(a[m][n]==0)
break;
}while(1);
a[i][j]=0;
a[m][n]=2;
}
void move_4(int a[3][3])
{
int n;
printf("\n\n LOADING ...");
if ( a[0][0]==2 && a[0][1]==2 && a[0][2]==0 && a[1][0]==2 )
{
a[0][2]=2;
a[1][0]=0;
return;
}
if ( a[0][0]==2 && a[0][1]==2 && a[0][2]==0 && a[1][1]==2 )
{
a[0][2]=2;
a[1][1]=0;
return;
}
if ( a[0][0]==2 && a[0][1]==2 && a[0][2]==0 && a[1][2]==2 )
{
a[0][2]=2;
a[1][2]=0;
return;
}
if ( a[0][0]==2 && a[0][1]==2 && a[0][2]==0 && a[2][0]==2 )
{
a[0][2]=2;
a[2][0]=0;
return;
}
if ( a[0][0]==2 && a[0][1]==2 && a[0][2]==0 && a[2][1]==2 )
{
a[0][2]=2;
a[2][1]=0;
return;
}
if ( a[0][0]==2 && a[0][1]==2 && a[0][2]==0 && a[2][2]==2 )
{
a[0][2]=2;
a[2][2]=0;
return;
}
if ( a[0][0]==2 && a[0][2]==2 && a[0][1]==0 && a[1][0]==2 )
{
a[0][1]=2;
a[1][0]=0;
return;
}
if ( a[0][0]==2 && a[0][2]==2 && a[0][1]==0 && a[1][1]==2 )
{
a[0][1]=2;
a[1][1]=0;
return;
}
if ( a[0][0]==2 && a[0][2]==2 && a[0][1]==0 && a[1][2]==2 )
{
a[0][1]=2;
a[1][2]=0;
return;
}
if ( a[0][0]==2 && a[0][2]==2 && a[0][1]==0 && a[2][0]==2 )
{
a[0][1]=2;
a[2][0]=0;
return;
}
if ( a[0][0]==2 && a[0][2]==2 && a[0][1]==0 && a[2][1]==2 )
{
a[0][1]=2;
a[2][1]=0;
return;
}
if ( a[0][0]==2 && a[0][2]==2 && a[0][1]==0 && a[2][2]==2 )
{
a[0][1]=2;
a[2][2]=0;
return;
}
if ( a[0][2]==2 && a[0][1]==2 && a[0][0]==0 && a[1][0]==2 )
{
a[0][0]=2;
a[1][0]=0;
return;
}
if ( a[0][2]==2 && a[0][1]==2 && a[0][0]==0 && a[1][1]==2 )
{
a[0][0]=2;
a[1][1]=0;
return;
}
if ( a[0][2]==2 && a[0][1]==2 && a[0][0]==0 && a[1][2]==2 )
{
a[0][0]=2;
a[1][2]=0;
return;
}
if ( a[0][2]==2 && a[0][1]==2 && a[0][0]==0 && a[2][0]==2 )
{
a[0][0]=2;
a[2][0]=0;
return;
}
if ( a[0][2]==2 && a[0][1]==2 && a[0][0]==0 && a[2][1]==2 )
{
a[0][0]=2;
a[2][1]=0;
return;
}
if ( a[0][2]==2 && a[0][1]==2 && a[0][0]==0 && a[2][2]==2 )
{
a[0][0]=2;
a[2][2]=0;
return;
}
if ( a[1][0]==2 && a[1][1]==2 && a[1][2]==0 && a[0][0]==2 )
{
a[1][2]=2;
a[0][0]=0;
return;
}
if ( a[1][0]==2 && a[1][1]==2 && a[1][2]==0 && a[0][1]==2 )
{
a[1][2]=2;
a[0][1]=0;
return;
}
if ( a[1][0]==2 && a[1][1]==2 && a[1][2]==0 && a[0][2]==2 )
{
a[1][2]=2;
a[0][2]=0;
return;
}
if ( a[1][0]==2 && a[1][1]==2 && a[1][2]==0 && a[2][0]==2 )
{
a[1][2]=2;
a[2][0]=0;
return;
}
if ( a[1][0]==2 && a[1][1]==2 && a[1][2]==0 && a[2][1]==2 )
{
a[1][2]=2;
a[2][1]=0;
return;
}
if ( a[1][0]==2 && a[1][1]==2 && a[1][2]==0 && a[2][2]==2 )
{
a[1][2]=2;
a[2][2]=0;
return;
}
if ( a[1][0]==2 && a[1][2]==2 && a[1][1]==0 && a[0][0]==2 )
{
a[1][1]=2;
a[0][0]=0;
return;
}
if ( a[1][0]==2 && a[1][2]==2 && a[1][1]==0 && a[0][1]==2 )
{
a[1][1]=2;
a[0][1]=0;
return;
}
if ( a[1][0]==2 && a[1][2]==2 && a[1][1]==0 && a[0][2]==2 )
{
a[1][1]=2;
a[0][2]=0;
return;
}
if ( a[1][0]==2 && a[1][2]==2 && a[1][1]==0 && a[2][0]==2 )
{
a[1][1]=2;
a[2][0]=0;
return;
}
if ( a[1][0]==2 && a[1][2]==2 && a[1][1]==0 && a[2][1]==2 )
{
a[1][1]=2;
a[2][1]=0;
return;
}
if ( a[1][0]==2 && a[1][2]==2 && a[1][1]==0 && a[2][2]==2 )
{
a[1][1]=2;
a[2][2]=0;
return;
}
if ( a[1][2]==2 && a[1][1]==2 && a[1][0]==0 && a[0][0]==2 )
{
a[1][0]=2;
a[0][0]=0;
return;
}
if ( a[1][2]==2 && a[1][1]==2 && a[1][0]==0 && a[0][1]==2 )
{
a[1][0]=2;
a[0][1]=0;
return;
}
if ( a[1][2]==2 && a[1][1]==2 && a[1][0]==0 && a[0][2]==2 )
{
a[1][0]=2;
a[0][2]=0;
return;
}
if ( a[1][2]==2 && a[1][1]==2 && a[1][0]==0 && a[2][0]==2 )
{
a[1][0]=2;
a[2][0]=0;
return;
}
if ( a[1][2]==2 && a[1][1]==2 && a[1][0]==0 && a[2][1]==2 )
{
a[1][0]=2;
a[2][1]=0;
return;
}
if ( a[1][2]==2 && a[1][1]==2 && a[1][0]==0 && a[2][2]==2 )
{
a[1][0]=2;
a[2][2]=0;
return;
}
if ( a[2][0]==2 && a[2][1]==2 && a[2][2]==0 && a[0][0]==2 )
{
a[2][2]=2;
a[0][0]=0;
return;
}
if ( a[2][0]==2 && a[2][1]==2 && a[2][2]==0 && a[0][1]==2 )
{
a[2][2]=2;
a[0][1]=0;
return;
}
if ( a[2][0]==2 && a[2][1]==2 && a[2][2]==0 && a[0][2]==2 )
{
a[2][2]=2;
a[0][2]=0;
return;
}
if ( a[2][0]==2 && a[2][1]==2 && a[2][2]==0 && a[1][0]==2 )
{
a[2][2]=2;
a[1][0]=0;
return;
}
if ( a[2][0]==2 && a[2][1]==2 && a[2][2]==0 && a[1][1]==2 )
{
a[2][2]=2;
a[1][1]=0;
return;
}
if ( a[2][0]==2 && a[2][1]==2 && a[2][2]==0 && a[1][2]==2 )
{
a[2][2]=2;
a[1][2]=0;
return;
}
if ( a[2][0]==2 && a[2][2]==2 && a[2][1]==0 && a[0][0]==2 )
{
a[2][1]=2;
a[0][0]=0;
return;
}
if ( a[2][0]==2 && a[2][2]==2 && a[2][1]==0 && a[0][1]==2 )
{
a[2][1]=2;
a[0][1]=0;
return;
}
if ( a[2][0]==2 && a[2][2]==2 && a[2][1]==0 && a[0][2]==2 )
{
a[2][1]=2;
a[0][2]=0;
return;
}
if ( a[2][0]==2 && a[2][2]==2 && a[2][1]==0 && a[1][0]==2 )
{
a[2][1]=2;
a[1][0]=0;
return;
}
if ( a[2][0]==2 && a[2][2]==2 && a[2][1]==0 && a[1][1]==2 )
{
a[2][1]=2;
a[1][1]=0;
return;
}
if ( a[2][0]==2 && a[2][2]==2 && a[2][1]==0 && a[1][2]==2 )
{
a[2][1]=2;
a[1][2]=0;
return;
}
if ( a[2][1]==2 && a[2][2]==2 && a[2][0]==0 && a[0][0]==2 )
{
a[2][0]=2;
a[0][0]=0;
return;
}
if ( a[2][1]==2 && a[2][2]==2 && a[2][0]==0 && a[0][1]==2 )
{
a[2][0]=2;
a[0][1]=0;
return;
}
if ( a[2][1]==2 && a[2][2]==2 && a[2][0]==0 && a[0][2]==2 )
{
a[2][0]=2;
a[0][2]=0;
return;
}
if ( a[2][1]==2 && a[2][2]==2 && a[2][0]==0 && a[1][0]==2 )
{
a[2][0]=2;
a[1][0]=0;
return;
}
if ( a[2][1]==2 && a[2][2]==2 && a[2][0]==0 && a[1][1]==2 )
{
a[2][0]=2;
a[1][1]=0;
return;
}
if ( a[2][1]==2 && a[2][2]==2 && a[2][0]==0 && a[1][2]==2 )
{
a[2][0]=2;
a[1][2]=0;
return;
}
if ( a[0][0]==2 && a[1][0]==2 && a[2][0]==0 && a[0][1]==2 )
{
a[2][0]=2;
a[0][1]=0;
return;
}
if ( a[0][0]==2 && a[1][0]==2 && a[2][0]==0 && a[0][2]==2 )
{
a[2][0]=2;
a[0][2]=0;
return;
}
if ( a[0][0]==2 && a[1][0]==2 && a[2][0]==0 && a[1][1]==2 )
{
a[2][0]=2;
a[1][1]=0;
return;
}
if ( a[0][0]==2 && a[1][0]==2 && a[2][0]==0 && a[1][2]==2 )
{
a[2][0]=2;
a[1][2]=0;
return;
}
if ( a[0][0]==2 && a[1][0]==2 && a[2][0]==0 && a[2][1]==2 )
{
a[2][0]=2;
a[2][1]=0;
return;
}
if ( a[0][0]==2 && a[1][0]==2 && a[2][0]==0 && a[2][2]==2 )
{
a[2][0]=2;
a[2][2]=0;
return;
}
if ( a[0][0]==2 && a[2][0]==2 && a[1][0]==0 && a[0][1]==2 )
{
a[1][0]=2;
a[0][1]=0;
return;
}
if ( a[0][0]==2 && a[2][0]==2 && a[1][0]==0 && a[0][2]==2 )
{
a[1][0]=2;
a[0][2]=0;
return;
}
if ( a[0][0]==2 && a[2][0]==2 && a[1][0]==0 && a[1][1]==2 )
{
a[1][0]=2;
a[1][1]=0;
return;
}
if ( a[0][0]==2 && a[2][0]==2 && a[1][0]==0 && a[1][2]==2 )
{
a[1][0]=2;
a[1][2]=0;
return;
}
if ( a[0][0]==2 && a[2][0]==2 && a[1][0]==0 && a[2][1]==2 )
{
a[1][0]=2;
a[2][1]=0;
return;
}
if ( a[0][0]==2 && a[2][0]==2 && a[1][0]==0 && a[2][2]==2 )
{
a[1][0]=2;
a[2][2]=0;
return;
}
if ( a[1][0]==2 && a[2][0]==2 && a[0][0]==0 && a[0][1]==2 )
{
a[0][0]=2;
a[0][1]=0;
return;
}
if ( a[1][0]==2 && a[2][0]==2 && a[0][0]==0 && a[0][2]==2 )
{
a[0][0]=2;
a[0][2]=0;
return;
}
if ( a[1][0]==2 && a[2][0]==2 && a[0][0]==0 && a[1][1]==2 )
{
a[0][0]=2;
a[1][1]=0;
return;
}
if ( a[1][0]==2 && a[2][0]==2 && a[0][0]==0 && a[1][2]==2 )
{
a[0][0]=2;
a[1][2]=0;
return;
}
if ( a[1][0]==2 && a[2][0]==2 && a[0][0]==0 && a[2][1]==2 )
{
a[0][0]=2;
a[2][1]=0;
return;
}
if ( a[1][0]==2 && a[2][0]==2 && a[0][0]==0 && a[2][2]==2 )
{
a[0][0]=2;
a[2][2]=0;
return;
}
if ( a[0][1]==2 && a[1][1]==2 && a[2][1]==0 && a[0][0]==2 )
{
a[2][1]=2;
a[0][0]=0;
return;
}
if ( a[0][1]==2 && a[1][1]==2 && a[2][1]==0 && a[0][2]==2 )
{
a[2][1]=2;
a[0][2]=0;
return;
}
if ( a[0][1]==2 && a[1][1]==2 && a[2][1]==0 && a[1][0]==2 )
{
a[2][1]=2;
a[1][0]=0;
return;
}
if ( a[0][1]==2 && a[1][1]==2 && a[2][1]==0 && a[1][2]==2 )
{
a[2][1]=2;
a[1][2]=0;
return;
}
if ( a[0][1]==2 && a[1][1]==2 && a[2][1]==0 && a[2][0]==2 )
{
a[2][1]=2;
a[2][0]=0;
return;
}
if ( a[0][1]==2 && a[1][1]==2 && a[2][1]==0 && a[2][2]==2 )
{
a[2][1]=2;
a[2][2]=0;
return;
}
if ( a[0][1]==2 && a[1][2]==2 && a[1][1]==0 && a[0][0]==2 )
{
a[1][1]=2;
a[0][0]=0;
return;
}
if ( a[0][1]==2 && a[1][1]==2 && a[2][1]==0 && a[0][2]==2 )
{
a[1][1]=2;
a[0][2]=0;
return;
}
if ( a[0][1]==2 && a[1][1]==2 && a[2][1]==0 && a[1][0]==2 )
{
a[1][1]=2;
a[1][0]=0;
return;
}
if ( a[0][1]==2 && a[1][1]==2 && a[2][1]==0 && a[1][2]==2 )
{
a[1][1]=2;
a[1][2]=0;
return;
}
if ( a[0][1]==2 && a[1][1]==2 && a[2][1]==0 && a[2][0]==2 )
{
a[1][1]=2;
a[2][0]=0;
return;
}
if ( a[0][1]==2 && a[1][1]==2 && a[2][1]==0 && a[2][2]==2 )
{
a[1][1]=2;
a[2][2]=0;
return;
}
if ( a[0][2]==2 && a[1][2]==2 && a[2][2]==0 && a[0][0]==2 )
{
a[2][2]=2;
a[0][0]=0;
return;
}
if ( a[0][2]==2 && a[1][2]==2 && a[2][2]==0 && a[0][1]==2 )
{
a[2][2]=2;
a[0][1]=0;
return;
}
if ( a[0][2]==2 && a[1][2]==2 && a[2][2]==0 && a[1][0]==2 )
{
a[2][2]=2;
a[1][0]=0;
return;
}
if ( a[0][2]==2 && a[1][2]==2 && a[2][2]==0 && a[1][1]==2 )
{
a[2][2]=2;
a[1][1]=0;
return;
}
if ( a[0][2]==2 && a[1][2]==2 && a[2][2]==0 && a[2][0]==2 )
{
a[2][2]=2;
a[2][0]=0;
return;
}
if ( a[0][2]==2 && a[1][2]==2 && a[2][2]==0 && a[2][1]==2 )
{
a[2][2]=2;
a[2][1]=0;
return;
}
if ( a[0][2]==2 && a[2][2]==2 && a[1][2]==0 && a[0][0]==2 )
{
a[1][2]=2;
a[0][0]=0;
return;
}
if ( a[0][2]==2 && a[2][2]==2 && a[1][2]==0 && a[0][1]==2 )
{
a[1][2]=2;
a[0][1]=0;
return;
}
if ( a[0][2]==2 && a[2][2]==2 && a[1][2]==0 && a[1][0]==2 )
{
a[1][2]=2;
a[1][0]=0;
return;
}
if ( a[0][2]==2 && a[2][2]==2 && a[1][2]==0 && a[1][1]==2 )
{
a[1][2]=2;
a[1][1]=0;
return;
}
if ( a[0][2]==2 && a[2][2]==2 && a[1][2]==0 && a[2][0]==2 )
{
a[1][2]=2;
a[2][0]=0;
return;
}
if ( a[0][2]==2 && a[2][2]==2 && a[1][2]==0 && a[2][1]==2 )
{
a[1][2]=2;
a[2][1]=0;
return;
}
if ( a[0][0]==1 && a[0][1]==1 && a[0][2]==0 )
{
move_clear(a);
a[0][2]=2;
return;
}
if ( a[0][0]==1 && a[0][2]==1 && a[0][1]==0 )
{
move_clear(a);
a[0][1]=2;
return;
}
if ( a[0][2]==1 && a[0][1]==1 && a[0][0]==0 )
{
move_clear(a);
a[0][0]=2;
return;
}
if ( a[1][0]==1 && a[1][1]==1 && a[1][2]==0 )
{
move_clear(a);
a[1][2]=2;
return;
}
if ( a[1][0]==1 && a[1][2]==1 && a[1][1]==0 )
{
move_clear(a);
a[1][1]=2;
return;
}
if ( a[1][2]==1 && a[1][1]==1 && a[1][0]==0 )
{
move_clear(a);
a[1][0]=2;
return;
}
if ( a[2][0]==1 && a[2][1]==1 && a[2][2]==0 )
{
move_clear(a);
a[2][2]=2;
return;
}
if ( a[2][0]==1 && a[2][2]==1 && a[2][1]==0 )
{
move_clear(a);
a[2][1]=2;
return;
}
if ( a[2][1]==1 && a[2][2]==1 && a[2][0]==0 )
{
move_clear(a);
a[2][0]=2;
return;
}
if ( a[0][0]==1 && a[1][0]==1 && a[2][0]==0 )
{
move_clear(a);
a[2][0]=2;
return;
}
if ( a[0][0]==1 && a[2][0]==1 && a[1][0]==0 )
{
move_clear(a);
a[1][0]=2;
return;
}
if ( a[1][0]==1 && a[2][0]==1 && a[0][0]==0 )
{
move_clear(a);
a[0][0]=2;
return;
}
if ( a[0][1]==1 && a[1][1]==1 && a[2][1]==0 )
{
move_clear(a);
a[2][1]=2;
return;
}
if ( a[0][1]==1 && a[1][2]==1 && a[1][1]==0 )
{
move_clear(a);
a[1][1]=2;
return;
}
if ( a[0][2]==1 && a[1][2]==1 && a[2][2]==0 )
{
move_clear(a);
a[2][2]=2;
return;
}
if ( a[0][2]==1 && a[2][2]==1 && a[1][2]==0 )
{
move_clear(a);
a[1][2]=2;
return;
}
if ( a[0][0]==1 && a[1][1]==1 && a[2][2]==0 )
{
move_clear(a);
a[2][2]=2;
return;
}
if ( a[0][0]==1 && a[2][2]==1 && a[1][1]==0 )
{
move_clear(a);
a[1][1]=2;
return;
}
if ( a[1][1]==1 && a[2][2]==1 && a[0][0]==0 )
{
move_clear(a);
a[0][0]=2;
return;
}
if ( a[0][2]==1 && a[1][1]==1 && a[2][0]==0 )
{
move_clear(a);
a[2][0]=2;
return;
}
if ( a[0][2]==1 && a[2][0]==1 && a[1][1]==0 )
{
move_clear(a);
a[1][1]=2;
return;
}
if ( a[1][1]==1 && a[2][0]==1 && a[0][2]==0 )
{
move_clear(a);
a[0][2]=2;
return;
}
if ( a[0][0]==0 && a[0][1]==1 && a[0][2]==0 && a[1][2]==1 && a[2][2]==0 )
{
move_clear(a);
a[0][2]=2;
return;
}
if ( a[0][2]==0 && a[1][2]==1 && a[2][2]==0 && a[2][1]==1 && a[2][0]==0 )
{
move_clear(a);
a[2][2]=2;
return;
}
if ( a[2][2]==0 && a[2][1]==1 && a[2][0]==0 && a[1][0]==1 && a[0][0]==0 )
{
move_clear(a);
a[2][0]=2;
return;
}
if ( a[2][0]==0 && a[1][0]==1 && a[0][0]==0 && a[0][1]==1 && a[0][2]==0 )
{
move_clear(a);
a[0][0]=2;
return;
}
move_random(a);
}
void move_clear(int a[3][3])
{
int i,j;
do
{
i=random(3);
j=random(3);
if(a[i][j]==2)
break;
}while(1);
a[i][j]=0;
}
void test_win(int a[3][3],int *win)
{
int f=0;
if( a[0][0]==1 && a[0][1]==1 && a[0][2]==1 )
f=1;
if( a[1][0]==1 && a[1][1]==1 && a[1][2]==1 )
f=1;
if( a[2][0]==1 && a[2][1]==1 && a[2][2]==1 )
f=1;
if( a[0][0]==1 && a[1][0]==1 && a[2][0]==1 )
f=1;
if( a[0][1]==1 && a[1][1]==1 && a[2][1]==1 )
f=1;
if( a[0][2]==1 && a[1][2]==1 && a[2][2]==1 )
f=1;
if( a[0][0]==1 && a[1][1]==1 && a[2][2]==1 )
f=1;
if( a[2][0]==1 && a[1][1]==1 && a[0][2]==1 )
f=1;
if( a[0][0]==2 && a[0][1]==2 && a[0][2]==2 )
f=2;
if( a[1][0]==2 && a[1][1]==2 && a[1][2]==2 )
f=2;
if( a[2][0]==2 && a[2][1]==2 && a[2][2]==2 )
f=2;
if( a[0][0]==2 && a[1][0]==2 && a[2][0]==2 )
f=2;
if( a[0][1]==2 && a[1][1]==2 && a[2][1]==2 )
f=2;
if( a[0][2]==2 && a[1][2]==2 && a[2][2]==2 )
f=2;
if( a[0][0]==2 && a[1][1]==2 && a[2][2]==2 )
f=2;
if( a[2][0]==2 && a[1][1]==2 && a[0][2]==2 )
f=2;
if(f==1)
printf("\n YOU WIN.");
if(f==2)
printf("\n YOU LOST.");
if(f)
{
printf("\n\n GAME OVER !");
printf("\n\n PRESS ANY KEY TO RESTART GAME.\n");
getch();
*win=1;
}
}
void get_kbd3(int a[3][3])
{
int x,i,j,m,n;
do
{
do
{
x=getch();
x-=48;
}while( x==0 || 9<x );
if( x==1 && a[2][0]==1 )
{
printf("Select C1");
i=2;
j=0;
break;
}
if( x==2 && a[2][1]==1 )
{
printf("Select C2");
i=2;
j=1;
break;
}
if( x==3 && a[2][2]==1 )
{
printf("Select C3");
i=2;
j=2;
break;
}
if( x==4 && a[1][0]==1 )
{
printf("Select B1");
i=1;
j=0;
break;
}
if( x==5 && a[1][1]==1 )
{
printf("Select B2");
i=1;
j=1;
break;
}
if( x==6 && a[1][2]==1 )
{
printf("Select B3");
i=1;
j=2;
break;
}
if( x==7 && a[0][0]==1 )
{
printf("Select A1");
i=0;
j=0;
break;
}
if( x==8 && a[0][1]==1 )
{
printf("Select A2");
i=0;
j=1;
break;
}
if( x==9 && a[0][2]==1 )
{
printf("Select A3");
i=0;
j=2;
break;
}
}while(1);
do
{
do
{
x=getch();
x-=48;
}while( x==0 || 9<x );
if( x==1 && a[2][0]==0 )
{
m=2;
n=0;
break;
}
if( x==2 && a[2][1]==0 )
{
m=2;
n=1;
break;
}
if( x==3 && a[2][2]==0 )
{
m=2;
n=2;
break;
}
if( x==4 && a[1][0]==0 )
{
m=1;
n=0;
break;
}
if( x==5 && a[1][1]==0 )
{
m=1;
n=1;
break;
}
if( x==6 && a[1][2]==0 )
{
m=1;
n=2;
break;
}
if( x==7 && a[0][0]==0 )
{
m=0;
n=0;
break;
}
if( x==8 && a[0][1]==0 )
{
m=0;
n=1;
break;
}
if( x==9 && a[0][2]==0 )
{
m=0;
n=2;
break;
}
}while(1);
a[m][n]=1;
a[i][j]=0;
}