Puzzle——模拟
原题链接: 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——模拟相关推荐
- 2018 German Collegiate Programming Contest (GCPC 18)
2018 German Collegiate Programming Contest (GCPC 18) Attack on Alpha-Zet 建树,求lca 代码: #include <al ...
- POJ的题目分类(两个版本)
版本一: 简单题 1000A+B Problem 1001Exponentiation 1003 Hangover 1004 Financial Management 1005 I Think I N ...
- 【UVA - 227】Puzzle (模拟,水题)
题干: Puzzle A children's puzzle that was popular 30 years ago consisted of a 5x5 frame which contain ...
- Puzzle(自认为是模拟)
题目(截图) 分析 这个题的难点有两个,一个是输入(不能用gets()),另一个是模拟移动空格的位置,搞定了这两点,AC就很easy啦. 代码+注释 #include<iostream> ...
- matlab模拟小游戏,基于MATLAB的小游戏(puzzle)
更新: 没有素材或者.mat文件看着博客也比较难实现,下面是完整的游戏文件 链接:https://pan.baidu.com/s/1CH_vFQQ_m2rIXde-VtkPWg 提取码:uo2x 游戏 ...
- HDU 4708 Rotation Lock Puzzle(模拟)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4708 题目大意:给定一个方形矩阵,边长为3-10的奇数.每一圈的数字可以沿着顺时针方向和逆时针方向旋转 ...
- 1128 N Queens Puzzle (20 分)【难度: 一般 / 知识点: 模拟】
https://pintia.cn/problem-sets/994805342720868352/problems/994805348915855360 每一个点只会出现一次 任意俩点的横距离和总距 ...
- CF1474A Puzzle From the Future (模拟
添加链接描述 #include<bits/stdc++.h> using namespace std; int main(){int T;cin>>T;while(T--){i ...
- Eight puzzle --HOJ 11918
1.题目类型:模拟.哈希表.BFS. 2.解题思路:(1)模拟Eigh Puzzle的变换方式,并记录在数组中 :(2)由于变换的最终结果相同,所以采用反向的BFS遍历所有情况,并记录所有情况:(3) ...
最新文章
- 图像检索中相似度度量公式:各种距离
- python读取表格数据_Python读取Excel数据并根据列名取值
- IBM发布JumpGate 连接OpenStack和公有云
- as3 php,[AS3]as3.0与PHP程序通信源代码示例
- 【华为云技术分享】手把手教你如何在ARM上源码编译Redis
- mysql导入库排除某个表_mysql导入数据排除表-mysql导入数据排除某张表或多张表-吾爱编程网...
- 机器学习笔记——决策树之回归树
- HDU_oj_2046 骨牌铺方格
- AD16查看不同层并修改走线(一般也就两层
- 修改了Excel默认打开方式后仍然使用WPS打开的解决办法
- 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制
- 艾肯micu声卡调试安装教程
- java gui容器_中国大学MOOC: (GUI容器)容器类java.awt.container的父类是_______。
- 冰封王座人工只能_魔兽争霸3玩家热议 人工智能能否轻松战war3胜职业选手?
- 网店推广之百度百科推广
- google play电子市场和gmail如何安装在国产手机、三星手机、摩托手机里
- 【CSS】:中文颜色名称对照
- DedeCMS找后台目录漏洞
- 数据结构——左倾红黑树
- SLAM导航机器人零基础实战系列:(五)树莓派3开发环境搭建——1.安装系统ubuntu_mate_16.04...