#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#include "ctype.h"
#define maxn 85
#define swap(a,b) a^=b^=a^=b//交换ab
int main()
{
int T,n;
int count=0;
char s[5][5];
char c;
int x,y;
char sequence[maxn];
int OFF=0;
int i;
int time;
memset(s,0,sizeof(s));
while (gets(s[0]))
{
OFF=0;
if (s[0][0]=='Z') break;
gets(s[1]);
gets(s[2]);
gets(s[3]);
gets(s[4]);
for (i=0;i<5;i++)
{
for (int j=0;j<5;j++)
{
if(s[i][j]==' ')
{x=i;y=j;}
}
}
i=0;
while ((c=getchar())!='0')//直到输入结束
{
if (isalpha(c)!=0)
{
sequence[i]=c;
i++;
}
}
getchar();//拿走\n
n=i;
for (i=0;i<n;i++)
{
switch (sequence[i])
{
case 'A':if(x-1>=0) {swap(s[x][y],s[x-1][y]);x--;}
else OFF=1;
break;
case 'B':if(x+1<=4) {swap(s[x][y],s[x+1][y]);x++;}
else OFF=1;
break;
case 'L':if(y-1>=0) {swap(s[x][y],s[x][y-1]);y--;}
else OFF=1;
break;
case 'R':if(y+1<=4) {swap(s[x][y],s[x][y+1]);y++;}
else OFF=1;
break;
case '0':
break;
}
}
if (count>0) putchar('\n');
printf("Puzzle #%d:\n",++count);
for (int i=0;i<5;i++)
{
if (OFF==1)
{
printf("This puzzle has no final configuration.\n");
break;
}
printf("%c %c %c %c %c\n",s[i][0],s[i][1],s[i][2],s[i][3],s[i][4]);
}
}
system("pause");
return 0;
}
UVa 227 Puzzle AC
最新推荐文章于 2023-12-23 23:03:36 发布