uva227

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char a[6][7];
    int flag=0;
    while(gets(a[0]))
    {
        if(a[0][0]=='Z')
            break;
        flag++;
        for(int i=1; i<5; i++)
            gets(a[i]);
        int x,y;
        for(int i=0; i<5; i++)
            for(int j=0; j<5; j++)
            {
                if(a[i][j]==' ')
                {
                    x=i,y=j;
                    break;
                }
            }
        char c,d[1000];
        int flag1=0,g=0;
        while((d[g++]=getchar())!='0');
        c=getchar();
        d[g-1]='\0';
        int x1=x,y1=y;
        for(int i=0; i<g; i++)
        {
            if(d[i]=='A')
            {
                x1=x-1;
                y1=y;
            }
            else if(d[i]=='B')
            {
                x1=x+1;
                y1=y;
            }
            else if(d[i]=='L')
            {
                x1=x;
                y1=y-1;
            }
            else if(d[i]=='R')
            {
                x1=x;
                y1=y+1;
            }
            if(x1<0||x1>4||y1<0||y1>4)
            {
                flag1=1;
                break;
            }
            else
            {
                char e=a[x][y];
                a[x][y]=a[x1][y1];
                a[x1][y1]=e;
                x=x1,y=y1;
            }
        }
        if(flag>1)
            printf("\n");
        printf("Puzzle #%d:\n",flag);
        if(flag1)
            printf("This puzzle has no final configuration.\n");
        else
        {
            for(int i=0; i<5; i++)
            {
                for(int j=0; j<4; j++)
                    printf("%c ",a[i][j]);
                printf("%c\n",a[i][4]);

            }
        }
    }
    return 0;
}

posted on 2017-02-19 11:33  发牌员  阅读(192)  评论(0)    收藏  举报

导航