#include<stdio.h>
#include<string.h>
int main(){
int counter=0,i,j,blank_x,blank_y;
char str[5][7],command;
bool line=false;
while(gets(str[0])){
if(strcmp(str[0],"Z")==0)
return 0;
gets(str[1]);
gets(str[2]);
gets(str[3]);
gets(str[4]);
for(i=0;i<5;i++){
for(j=0;j<5;j++){
if(str[i][j]==' '){
blank_x=i;
blank_y=j;
}
}
}
bool valid=true;
scanf("%c",&command);
while(command!='0'){
switch(command){
case 'A':if (blank_x==0)
{
valid=false;
}
else {
str[blank_x][blank_y]=str[blank_x-1][blank_y];
str[blank_x-1][blank_y]=' ';
blank_x--;
}
break;
case 'B':if (blank_x==4)
{
valid=false;
}
else {
str[blank_x][blank_y]=str[blank_x+1][blank_y];
str[blank_x+1][blank_y]=' ';
blank_x++;
}
break;
case 'L':if (blank_y==0)
{
valid=false;
}
else {
str[blank_x][blank_y]=str[blank_x][blank_y-1];
str[blank_x][blank_y-1]=' ';
blank_y--;
}
break;
case 'R':if (blank_y==4)
{
valid=false;
}
else {
str[blank_x][blank_y]=str[blank_x][blank_y+1];
str[blank_x][blank_y+1]=' ';
blank_y++;
}
break;
}
scanf("%c",&command);
}
if ( line )
printf ("\n");
line = true;
printf ("Puzzle #%d:\n", ++counter);
if ( valid ) {
for ( int i = 0; i < 5; i++ ) {
printf ("%c %c %c %c %c\n", str[i] [0], str[i] [1],
str[i] [2], str[i] [3], str[i] [4]);
}
}
else
printf ("This puzzle has no final configuration.\n");
getchar();
}
return 0;
}
Uva227
最新推荐文章于 2022-01-21 13:48:23 发布