描述
一个叫ACM的寻宝者找到了一个藏宝图,它根据藏宝图找到了一个迷宫,这是一个很特别的迷宫,迷宫里有N个编过号的门(N<=5),它们分别被编号为A,B,C,D,E.为了找到宝藏,ACM必须打开门(可以不打开全部的门),但是,开门之前必须在迷宫里找到这个打开这个门所需的所有钥匙(每个门都至少有一把钥匙),例如:现在A门有三把钥匙,ACM就必须找全三把钥匙才能打开A门。现在请你编写一个程序来告诉ACM,他能不能顺利的得到宝藏。
输入
输入可能会有多组测试数据(不超过10组)。
每组测试数据的第一行包含了两个整数M,N(1<N,M<20),分别代表了迷宫的行和列。接下来的M每行有N个字符,描述了迷宫的布局。其中每个字符的含义如下:
.表示可以走的路
S:表示ACM的出发点
G表示宝藏的位置
X表示这里有墙,ACM无法进入或者穿过。
A,B,C,D,E表示这里是门,a,b,c,d,e表示对应大写字母的门上的钥匙。
注意ACM只能在迷宫里向上下左右四个方向移动。
最后,输入0 0表示输入结束。
输出
每行输出一个YES表示ACM能找到宝藏,输出NO表示ACM找不到宝藏。
样例输入
4 4
S.X.
a.X.
..XG
....
3 4
S.Xa
.aXB
b.AG
0 0
样例输出
YES
NO
思路:
简单的广搜,但是搜索钥匙需要一定的技巧。
1.首先记录打开某个门需要的总钥匙数目。total[]。
2.搜索过程中记录找到的钥匙数。getnum[]。
3.遇到门
1).getnum == total,开门
2).getnum != total && 队列非空,则将起点入队。队列非空则可以搜索其他路径,可能找到剩下的钥匙,再搜索到此门,可能打开。
3).打不开
代码如下:
分享到:
相关推荐
迷宫寻宝可以修改迷宫大小入口位置和出口位置可自己编辑迷宫文件
scratch游戏制作-迷宫寻宝.docx
迷宫寻宝类游戏(免积分下载),人物可以上下左右移动,空格攻击可以获取各种装备宝物,钥匙,开门需要钥匙和体力,击败怪物需攻击值,击败怪物会掉落金币,拾取完所有物体后可以去下一层继续游戏 具体情况情况我的...
迷宫寻宝源码
68--[迷宫寻宝].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码68--[迷宫寻宝].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码68--[迷宫寻宝].zip源码scratch2.0 3.0编程项目源文件源码案例素材源...
基本迷宫寻宝,borland c运行环境,含菜单
scratch游戏制作-迷宫寻宝.doc
迷宫寻宝-少儿编程scratch项目源代码文件案例素材.zip
基于计算思维培养的Scratch程序设计教学实践——以迷宫寻宝为例.pdf
scratch编程项目源代码文件案例素材-[迷宫寻宝].zip
Week2.rar
STM32迷宫小车的源码
2023少儿编程Scratch案例100源代码
STM32 迷宫小车,第二遍自动循迹 STM32 迷宫小车,第二遍自动循迹
C语言编写的寻宝游戏源代码(探宝游戏源代码)不是经典我不发,相信我好了
类似走出迷宫,探索迷宫寻宝,一种探索与冒险的游戏,适合新手入门参考学习,能学到什么: ① 如何用一直canvas画布实现动画; ② 理解参数的传递,对象的引用; ③ 理解离屏绘制,异步处理; 相关指导教程请看作者...
迷宫寻路问题,通过深度优先,广度优先,astar算法 求解问题
【错误文件】上传出错,只传了编译好的可执行文件,不包含源代码。请下载另外一个“同名”文件。
python源码实例可直接运行