原题链接: https://vjudge.net/problem/UVA-227

题目描述:

1 > 有一个5*5的网格,只有一个格子是空格,其余的都是字母。
2 > 4个指令 A,B,L,R,分别代表向上向下向左向右。
3 > 输出执行完后的网格内的情况。
4 > 若有越界则单独输出

思路:使用scanf输入,用getchar()吸收换行符,题目要求跟华容道游戏类似,先记录空白的位置,然后按照步骤移动即可。另外这里用isspace()函数判断输入的字符是否为换行符

#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string.h>
using namespace std;
int main()
{char a[5][5];char c;int b=0;while(1){for(int i=0;i<5;i++){for(int j=0;j<5;j++){scanf("%c",&c);a[i][j]=c;if(a[0][0]=='Z')return 0;}getchar();   //吸收换行符}int i,j,flag1=0,flag2=0;for(i=0;i<5;i++){for(j=0;j<5;j++){if(a[i][j]==' '){   //记录空白的位置flag1=1;break;}}if(flag1)break;}while((c=getchar())!='0'){     //做出操作if(c == 'A' && i-1 >= 0){a[i][j] = a[i-1][j];a[i-1][j] = ' ';i -= 1;             //更改空格的位置 下同}else if(c == 'B' && i+1 < 5){a[i][j] = a[i+1][j];a[i+1][j] = ' ';i += 1;}else if(c == 'L' && j-1 >= 0){a[i][j] = a[i][j-1];a[i][j-1] = ' ';j -= 1;}else if(c == 'R' && j+1 < 5){a[i][j] = a[i][j+1];a[i][j+1] = ' ';j += 1;}else if(isspace(c))continue;  //判断c是否为换行符等else flag2=1;          //非法指令}getchar();if(!b)printf("Puzzle #%d:\n", ++b);  //按照格式输出else printf("\nPuzzle #%d:\n", ++b);if(flag2){                     //如果有非法指令printf("This puzzle has no final configuration.\n");continue;}for(int i=0;i<5;i++){        //输出操作后的结果for(int j=0;j<5;j++){if(!j)printf("%c",a[i][j]);else printf(" %c",a[i][j]);}printf("\n");}}return 0;
}

Puzzle——模拟相关推荐

  1. 2018 German Collegiate Programming Contest (GCPC 18)

    2018 German Collegiate Programming Contest (GCPC 18) Attack on Alpha-Zet 建树,求lca 代码: #include <al ...

  2. POJ的题目分类(两个版本)

    版本一: 简单题 1000A+B Problem 1001Exponentiation 1003 Hangover 1004 Financial Management 1005 I Think I N ...

  3. 【UVA - 227】Puzzle (模拟,水题)

    题干: Puzzle  A children's puzzle that was popular 30 years ago consisted of a 5x5 frame which contain ...

  4. Puzzle(自认为是模拟)

    题目(截图) 分析 这个题的难点有两个,一个是输入(不能用gets()),另一个是模拟移动空格的位置,搞定了这两点,AC就很easy啦. 代码+注释 #include<iostream> ...

  5. matlab模拟小游戏,基于MATLAB的小游戏(puzzle)

    更新: 没有素材或者.mat文件看着博客也比较难实现,下面是完整的游戏文件 链接:https://pan.baidu.com/s/1CH_vFQQ_m2rIXde-VtkPWg 提取码:uo2x 游戏 ...

  6. HDU 4708 Rotation Lock Puzzle(模拟)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4708 题目大意:给定一个方形矩阵,边长为3-10的奇数.每一圈的数字可以沿着顺时针方向和逆时针方向旋转 ...

  7. 1128 N Queens Puzzle (20 分)【难度: 一般 / 知识点: 模拟】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805348915855360 每一个点只会出现一次 任意俩点的横距离和总距 ...

  8. CF1474A Puzzle From the Future (模拟

    添加链接描述 #include<bits/stdc++.h> using namespace std; int main(){int T;cin>>T;while(T--){i ...

  9. Eight puzzle --HOJ 11918

    1.题目类型:模拟.哈希表.BFS. 2.解题思路:(1)模拟Eigh Puzzle的变换方式,并记录在数组中 :(2)由于变换的最终结果相同,所以采用反向的BFS遍历所有情况,并记录所有情况:(3) ...

最新文章

  1. 图像检索中相似度度量公式:各种距离
  2. python读取表格数据_Python读取Excel数据并根据列名取值
  3. IBM发布JumpGate 连接OpenStack和公有云
  4. as3 php,[AS3]as3.0与PHP程序通信源代码示例
  5. 【华为云技术分享】手把手教你如何在ARM上源码编译Redis
  6. mysql导入库排除某个表_mysql导入数据排除表-mysql导入数据排除某张表或多张表-吾爱编程网...
  7. 机器学习笔记——决策树之回归树
  8. HDU_oj_2046 骨牌铺方格
  9. AD16查看不同层并修改走线(一般也就两层
  10. 修改了Excel默认打开方式后仍然使用WPS打开的解决办法
  11. 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制
  12. 艾肯micu声卡调试安装教程
  13. java gui容器_中国大学MOOC: (GUI容器)容器类java.awt.container的父类是_______。
  14. 冰封王座人工只能_魔兽争霸3玩家热议 人工智能能否轻松战war3胜职业选手?
  15. 网店推广之百度百科推广
  16. google play电子市场和gmail如何安装在国产手机、三星手机、摩托手机里
  17. 【CSS】:中文颜色名称对照
  18. DedeCMS找后台目录漏洞
  19. 数据结构——左倾红黑树
  20. SLAM导航机器人零基础实战系列:(五)树莓派3开发环境搭建——1.安装系统ubuntu_mate_16.04...

热门文章

  1. SPOJ104 Highways,跨越数
  2. Web常用字體-Font-Family
  3. get请求400错误 vue_vue用get请求,一个很奇怪的现象
  4. rocketmq集成boot
  5. vitual dom实现(转)
  6. nginx优化_安全方面的优化
  7. 117. Populating Next Right Pointers in Each Node II 计算右边的附属节点
  8. express+mysqle
  9. sqlserver 缩小表空间
  10. 阿根廷点杀荷兰,24年后再进决赛