UVa 227 Puzzle(谜题)

这篇博客介绍了UVa 227题目的谜题挑战,涉及一个55宫格的字符布局和四种移动指令(A, B, L, R)。博主详细分析了题目的要求,包括读取初始状态、确定空格位置、处理边界条件、执行指令以及非法指令的判断。此外,博主还分享了学习笔记,强调了输入输出的处理方式和边界条件的处理,以及非法指令的检测和处理策略。最后,提供了参考代码用于解决这个问题。" 21656277,2736815,Web中文乱码:解决Webx编解码问题,"['Web开发', '字符编码', 'HTTP请求', '服务器配置']
摘要由CSDN通过智能技术生成

UVa 227 Puzzle(谜题)
UVa题目链接
题目名称:谜题
题目描述:
有一个55的网格,其中恰好有一个格子是空的,其他格子各有一个字母,一共有四种指令:A,B,L,R,分别表示把空格上、下、左、右的相邻字母移到空格中。输入初始网格和指令序列(分别以数字0结束),输出指令执行完毕后的网格。如果有非法指令,应输出"This puzzle has no final configuration.",例如,图执行ARRBBL0后,效果如图所示
Alt text
题目分析:
题目需要做的事情
①输入5
5的字符,每个格子有一个字母,有一个格子是空格
②找出输入字符空格的具体位置,保存下来
③之后分别检测指令A,B,L,R,这里还需要注意边界的地方,
④最后根据指令进行移动,最后从新输出每个格子的每个字符
学习笔记:
①这道题跟以前那道填数字的题目,有区别,因为题目中需要两个输入,格子形状输入用gets(a[i])表示第几行。输出的时候可以采用循环printf("%c %c %c %c %c\n", a[i][0], a[i][1], a[i][2], a[i][3], a[i][4]); 注意这里输入不能用scanf因为有一个是空格。这样就输出我们需要的结果了。
②对于检测指令,第一步是如果是非法指令,但是我们不好描述条件时,输出,这个时候为了和和发指令区分开来,所以我们设置了一个flag,如果非法时,我们设为0这样最后输出的时候,我们就有条件
③检测指令的时候,还需要注意边界问题,记住a[x][y] x代表的是竖直方向,y代表的是水平方向。一定要注意边界问题
④检测到指令的时候,我们首先需要将空格移动到目标位置的值放在空格区域,之后把空格放入目标区域这个与以前填数多一步,因为以前那个目标区域全是0

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值