首页 > 其他 > 详细

UVa227 Puzzle(谜题)

时间:2019-07-06 09:35:07      阅读:172      评论:0      收藏:0      [点我收藏+]

技术分享图片

解答:

 

 

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
char s[7][7],op,a; 
int n=0,x,y,b=1,bb=1;
void putout()
{
    printf("This puzzle has no final configuration.\n");
    b=0;
    return;
}
int main()
{
    //freopen("1.txt","r",stdin);
   while(1)
   {
           n++;
           b=1;
           for(int i=1;i<=5;i++)
        {
               for(int j=1;j<=5;j++)
               {
                   s[i][j]=getchar();
                   if(s[i][j]==Z) return 0;
                   if(s[i][j]== )
                   {
                       x=i;
                       y=j;
                }
            }
            s[0][0]=getchar();
        }
        printf("Puzzle #%d\n",n);
        op=1;
        for(int i=0;op!=0;i++)
        {
            op=getchar();
            if(op==A)
            {
                if(x-1>=1)
                {
                    swap(s[x-1][y],s[x][y]);
                    x=x-1;
                    continue;
                }
                else
                {
                    putout();
                    break;
                }
            }
            else if(op==B)
            {
                if(x+1<=5)
                {
                    swap(s[x+1][y],s[x][y]);
                    x=x+1;
                    continue;
                }
                else
                {
                    putout();
                    break;
                }
            }
            else if(op==L)
            {
                if(y-1>=1)
                {
                    swap(s[x][y-1],s[x][y]);
                    y=y-1;
                    continue;
                }
                else
                {
                    putout();
                    break;
                }
            }
            else if(op==R)
            {
                if(y+1<=5)
                {
                    swap(s[x][y+1],s[x][y]);
                    y=y+1;
                    continue;
                }
                else
                {
                    putout();
                    break;
                }
            }
            else if(op== ||op==\n||op==0) continue;
            putout();
            break;
        }
        while(op!=0) op=getchar();
        op=getchar();
        if(b)
        {
            for(int i=1;i<=5;i++)
            {
                for(int j=1;j<=5;j++)
                {
                    cout<<s[i][j]<<" ";
                }
                cout<<endl;
            }
        }
        cout<<endl;
   }
     // cout<<x<<y<<‘*‘;
}  

 

UVa227 Puzzle(谜题)

原文:https://www.cnblogs.com/satans/p/11141569.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!