#include <stdio.h>
#include <math.h>
#include <time.h>
#include <windows.h>
int n[10][10] = {0},z[6],l[4];
void gotoxy(int x,int y)
{
COORD pos= {x,y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
}
void setColor(int x)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);
}
int main()
{
int r=0,m=0,p[12]={0},u[12]={0},q[12]={0},v=0,o=0;
int i,j,s=0,d,a=0,b=0;
srand(time(NULL));
for(i=1;i<=5;i++)
{
n[4][i]=1;
}
for (j=1; j<=7; j++)
{
for(i=1; i<=9; i++)
{
if (j%2==1||i==1||i==9)
{
for(d=1; d<=5; d++)
{
gotoxy(i+s,j);
printf ("=");
s=s+11;
}
s=0;
}
}
}
for(i=1; i<=5; i++)
{
v=v+2;
l[i]=v;
}
v=5;
for(i=1; i<=5; i++)
{
z[i]=v;
v=v+11;
}
v=0;
for(i=1;i<=4;i++)
{
for(j=1;j<=3;j++)
{
for (d=1;d<=12;d++)
{
r=rand()%12+1;
if(u[r]==0)
{
u[r]=1;
q[r]=i;
break;
}
}
}
}
v=0;
r=0;
for(i=1; i<=3; i++)
{
for(j=1; j<=4; j++)
{
v++;
n[i][j]=q[v];
gotoxy(z[j],l[i]);
gotoxy(z[j]-2,l[i]);
for(o=1;o<=4;o++)
{
printf("%d",q[v]);
}
}
}
v=0;
s=0;
while(1)
{
s=0;
for(i=1;i<=5;i++)
{
if(n[1][i]==n[2][i]&&n[3][i]==n[2][i])
{
s++;
}
}
if(s==5)
{
break;
}
gotoxy(57,5);
printf("입력 = ");
gotoxy(64,5);
scanf("%d %d",&a,&b);
v=0;
if(n[3][a]!=0)
{
if(n[1][b]==0)
{
for(i=1;i<=3;i++)
{
if (n[i][a]!=0)
{
v=n[i][a];
n[i][a]=0;
gotoxy(z[a],l[i]);
gotoxy(z[a]-2,l[i]);
for(o=1;o<=4;o++)
{
printf(" ");
}
break;
}
}
for(i=1;i<=3;i++)
{
if(n[i+1][b]!=0)
{
n[i][b]=v;
gotoxy(z[b],l[i]);
r=v/2;
gotoxy(z[b]-2,l[i]);
for(o=1;o<=4;o++)
{
printf("%d",v);
}
break;
}
}
}
}
}
for(i=0;i<=40;i++)
{
for(j=0;j<=8;j++)
{
gotoxy(i,j);
printf(" ");
Sleep(2);
}
}
gotoxy(57,5);
printf(" ");
gotoxy(50,20);
printf("게임 끝!");
Sleep(800);
gotoxy(0,0);
return 0;
}