飞道的博客

数据结构课设-小老鼠走迷宫(JAVA版)

383人阅读  评论(0)

学校题目:

题目内容:

程序开始运行时显示一个迷宫地图,迷宫中央有一只老鼠,迷宫的右下方有一个粮仓。游戏的任务是使用键盘上的方向健操纵老鼠在规定的时间内走到粮仓处。

基本要求:

⑴老鼠形象可以辨认,可用键盘操纵老鼠上下左右移动;

⑵迷宫的墙足够结实,老鼠不能穿墙而过;

⑶正确检测结果,若老鼠在规定时间内走到粮仓处,提示成功,并给出一条路径,否则提示失败。

⑷添加编辑迷宫功能,可修改当前迷宫,修改内容:墙变路、路变墙。

提高要求:

⑴增加闯关和计分功能;

⑵找出走出迷宫的所有路径及最短路径

 

题主在实现这些功能之后 又增加了猫咪追击老鼠

迷宫生成算法:

迷宫的核心算法设计:

1.迷宫生成算法

(1)算法功能描述

利用递归回溯/深度优先随机生成迷宫

(2)算法描述

a.将起点作为当前迷宫单元并标记为已访问

b.当还存在未标记的迷宫单元,进行循环

①.如果当前迷宫单元有未被访问过的的相邻的迷宫单元

㈠.随机选择一个未访问的相邻迷宫单元

㈡.将当前迷宫单元入栈

㈢.移除当前迷宫单元与相邻迷宫单元的墙

㈣.标记相邻迷宫单元并用它作为当前迷宫单元

②.如果当前迷宫单元不存在未访问的相邻迷宫单元,并且栈不空

㈠.栈顶的迷宫单元出栈

㈡.令其成为当前迷宫单元

 

2.迷宫查找算法

(1)算法功能描述

利用深度优先DFS递归查找路径

(2)算法描述

定义DFS  如果我们超过边界或者已访问过,如果有墙就返回

如果我们走到了终点 我们将整条路径加入集合中 然后回溯一格

如果没有走到终点 我们添加当前坐标 并且将当前坐标设置为已访问

然后递归 向右 向下 向左 向上 依次递归

将当前坐标设置为未访问  然后回溯

 

 

运行结果:

最短路径界面

所有路径 

 

 

通关后界面

 

 

 附上阿里云盘链接:

https://www.aliyundrive.com/s/jVaa9imNXHf 点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。

 

已上传csdn资源仓库  有需者自取  免费答疑

 

 

 


转载:https://blog.csdn.net/Haenu0317/article/details/128513370
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场