#include<stdio.h>
#include<string.h>
#define maxn 26
int main(){
int i=0,j=0,count;int b_x=0,flag,x,y;int b_y=0,cases;
char a[5][7],s[maxn];
cases=0;
while(gets(a[0])){
if(a[0][0]=='Z') break;
for(i=1;i<5;i++)
gets(a[i]);
for(i=0;i<5;i++)
for(j=0;j<5;j++)
if(a[i][j]==' '){
b_x=i;b_y=j;
break;
};
count=0;
while(~scanf("%c",&s[count]))
if (s[count] != '0')
count++;
else
break;
s[count]=0;getchar();
flag=0;x=b_x;y=b_y;
for(i=0;s[i];i++){
switch(s[i]){
case 'A': x = b_x-1;y = b_y; break;
case 'B': x = b_x+1;y = b_y; break;
case 'L': x = b_x;y = b_y-1; break;
case 'R': x = b_x;y = b_y+1; break;
}
if(x < 0 || x>4 || y<0 ||y > 4){
flag = 1;break;
}
else{
a[b_x][b_y] = a[x][y];
a[x][y] = ' ';
b_x = x;b_y = y;
}
}
if (cases++) printf("\n");
printf("Puzzle #%d:\n",cases);
if (flag)
printf("This puzzle has no final configuration.\n");
else {
for (i=0;i<5;i++){
printf("%c",a[i][0]);
for(j=1;j<5;j++)
printf("%c",a[i][j]);
printf("\n");
}
}
}
return 0;
}
UVa227谜题
最新推荐文章于 2022-01-21 13:48:23 发布