UVA227-Puzzle

Posted bianjunting

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UVA227-Puzzle相关的知识,希望对你有一定的参考价值。

2018-10-25-11:45:44

原题链接

  水题,卡输入输出,不然怎么能说是ACM World Finals呢。

  本题大意

      大体意思就是给你一个5*5的棋盘,每次你需要先输入棋盘,然后输入一连串指令,指令已‘0’结尾,当棋盘第0行第0列为‘Z‘时表示游戏结束。

  本题思路

      拿到题的第一反应就是输入棋盘,接着一 一读入命令并执行即可。但是一定要注意输入输出问题。

    每个样例输出之间有一个空行,但切记输入之间无换行。

    本题拿来练习输入输出是一道不错的题。

 1 #include <cstdio>
 2 #include <iostream>
 3 using namespace std;
 4 void Swap(char &s1,char &s2);
 5 
 6 int main()
 7 {
 8     char ans,s[5][5];
 9     int dx,dy,Case=0;//用于储存空格位置
10     while(true){
11       bool flag=true;
12       for(int i=0;i<5;i++){
13         for(int j=0;j<5;j++){
14           scanf("%c",&s[i][j]);
15           if(s[0][0]==Z)  return 0;
16           if(s[i][j]== ){
17             dx=i; dy=j;
18           }
19         }
20         getchar();
21       }
22       while((ans=getchar())!=0){
23         if(ans==A&&dx-1>=0){
24             Swap(s[dx][dy],s[dx-1][dy]);
25             dx-=1;
26         }
27         else if(ans==B&&dx+1<=4){
28             Swap(s[dx][dy],s[dx+1][dy]);
29             dx+=1;
30         }
31         else if(ans==L&&dy-1>=0){
32             Swap(s[dx][dy],s[dx][dy-1]);
33             dy-=1;
34         }
35         else if(ans==R&&dy+1<=4){
36             Swap(s[dx][dy],s[dx][dy+1]);
37             dy+=1;
38         }
39         else if(ans!=
) flag=false;
40       }
41       getchar();
42       if(Case)  printf("
");
43       printf("Puzzle #%d:
",++Case);
44       if(flag){
45         for(int i=0;i<5;i++){
46           for(int j=0;j<5;j++)
47             if(!j) printf("%c",s[i][j]);
48             else printf(" %c",s[i][j]);
49             printf("
");
50         }
51       }
52       else
53         printf("This puzzle has no final configuration.
");
54     }
55     return 0;
56 }
57 void Swap(char &s1,char &s2){
58     char c=s1;
59     s1=s2;
60     s2=c;
61 }

 

以上是关于UVA227-Puzzle的主要内容,如果未能解决你的问题,请参考以下文章

UVa - 227 - Puzzle

Uva 227-Puzzle 解题报告

UVa227 -- puzzle

UVA227-Puzzle

UVA 227 Puzzle(基础字符串处理)

UVA-227 Puzzle(傻屌之王)