#包含?& ltstdlib.h & gt
#包含?& lttime.h & gt
#包含?& ltstring.h & gt
int?s[9];
作廢?prt()
{
int?I,j;
for(I = 0;我& lt9;i++)
{
如果(i%3==0)
{
printf(" \ n ");
}
開關
{
案子?0:
printf(" ");
打破;
案子?1:
printf("⑴");
打破;
案子?2:
printf("⑵");
打破;
案子?3:
printf("⑶");
打破;
案子?4:
printf("⑷");
打破;
案子?5:
printf("⑸");
打破;
案子?6:
printf("⑹");
打破;
案子?7:
printf("⑺”);
打破;
案子?8:
printf("⑻”);
打破;
}
}
printf(" \ n ");
}
作廢?初始化()
{
int?find,I,n,count = 0;
while(count & lt;9)
{
n = rand()% 9;
find = 0;
for(I = 0;我& lt數數;i++)
{
if(s[i]==n)
{
find = 1;
打破;
}
}
if(find==1)
{
繼續;
}
s[count++]= n;
}
}
int?檢查()
{
int?我;
for(I = 0;我& lt8;i++)
{
如果(s[i]!=i+1)
{
回歸?0;
}
}
回歸?1;
}
int?主()
{
srand((無符號)time(0));
int?I,x,y,t;
夏爾?d;
init();
PRT();
夏爾?在[10];
while(1)
{
fflush(stdin);
scanf("%s ",in);
if(strlen(in)& lt;3)
{
printf(" \ n輸入?錯誤!?");
系統(“暫停”);
}
if(in[0]& gt;'0'?& amp& amp?在[0]& lt;'9'?& amp& amp?在[1]>中;'0'?& amp& amp?in[1]& lt;'9'?& amp& amp?(在[2]=='d '?||?in[2]=='l '?||?in[2]=='u '?||?在[2]=='r '))
{
x = in[0]--0 '-1;
y = in[1]--0 '-1;
I = x * 3+y;
d = in[2];
開關(d)
{
案子?u ':
如果(I-3 & lt;0?||?s[i-3]!=0)
{
打破;
}
其他
{
s[I-3]= s[I];
s[I]= 0;
}
打破;
案子?d ':
if(I+3 & gt;8?||?s[i+3]!=0)
{
打破;
}
其他
{
s[I+3]= s[I];
s[I]= 0;
}
打破;
案子?l ':
if(i%3==0?||?s[i-1]!=0)
{
打破;
}
其他
{
s[I-1]= s[I];
s[I]= 0;
}
打破;
案子?r ':
if(i%3==2?||?s[i+1]!=0)
{
打破;
}
其他
{
s[I+1]= s[I];
s[I]= 0;
}
打破;
}
PRT();
if(check()==1)
{
printf(" \ n \ n成功!\ n \ n ");
打破;
}
}
其他
{
printf(" \ n輸入?錯誤!?");
系統(“暫停”);
}
}
回歸?0;
}