zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    python之list,tuple,str,dic简单记录(二)
    python 实现简单点名程序
    python random使用生成随机字符串
    第三方库PIL简单使用
    python Tkinter图形用户编程简单学习(一)
    python之list,tuple,str,dic简单记录(一)
    javascript 对象简单介绍(二)
    iOS使用NSMutableAttributedString 实现富文本(不同颜色字体、下划线等)
    iOS 10 因苹果健康导致闪退 crash
    iOS 10 创建iMessage App
  • 原文地址:https://www.cnblogs.com/bianjunting/p/9848909.html
Copyright © 2011-2022 走看看