[![](https://www.writebug.com/myres/static/uploads/2021/10/25/d866c0ba6b7f6e015eb15848425cbad8.writebug)](https://996.icu) [![](https://www.writebug.com/myres/static/uploads/2021/10/25/4c4351eb79a89ea7fc4dcb940ad92f16.writebug)](https://github.com/996icu/996.ICU/blob/master/LICENSE)
# 软件总体设计
## 软件总体框架
该软件主要分为如下三个模块:
1. 参数设置模块
2. 按钮功能模块按钮功能模块
3. 迷宫主界面模块迷宫主界面模块
## 软件各模块介绍
### 参数设置模块
1. 迷宫大小相关参数:
- ROWS(即迷宫行数,默认设置为奇数,最小值为 11,最大值为 99,默认值为 11);
- COLS(即迷宫列数,默认设置为奇数,最小值为 11,最大值为 99,默认值为 11);
- Lattice’s width(即组成迷宫的格子的宽度,迷宫格子默认设置为正方形,指定了迷宫格子的宽度相当于指定了迷宫格子的大小,默认设置为自然数,最小值为 5,最大值为 30,默认值为 15)。
这些参数设置的显示图下图所示:
![](https://www.writebug.com/myres/static/uploads/2021/10/25/4e5f46214335c2fa8568aa3bd344885e.writebug)
2. 迷宫创建算法相关参数
本游戏中创建一个迷宫的算法有三种:
- Depth First Search Algorithm(深度优先搜索算法)
- Randomized Prim's Algorithm(随机普利姆算法)
- Recursive Division Algorithm(递归分割算法)。
用户需在同时也只能在这三种迷宫创建算法中任意选择一种,默认选择的迷宫创建算法为 Depth First Search Algorithm(深度优先搜索算法)。迷宫创建算法相关参数的显示图如下图所示:
![](https://www.writebug.com/myres/static/uploads/2021/10/25/db5f60c4b0a7c160bbf119a8834b8bd2.writebug)
3. 迷宫寻路算法相关参数
本游戏中走出一个迷宫的迷宫寻路算法有两种:
- Depth First Search Algorithm(深度优先搜索算法)
- Breadth First Search Algorithm(广度优先搜索算法)。
用户需在同时也只能在这两种迷宫创建算法中任意选择一种,默认选择的迷宫创建算法为 Depth First Search Algorithm(深度优先搜索算法)。迷宫寻路算法相关参数的显示图如下图所示:
![](https://www.writebug.com/myres/static/uploads/2021/10/25/025c7849e64e78769fbd5c8b0ce1b591.writebug)
4. 整个参数设置模块的显示图如下图所示:
![](https://www.writebug.com/myres/static/uploads/2021/10/25/bccbb05cb48f46518a2daf7d14f5dd42.writebug)
### 按钮功能模块
本游戏中,按进行游戏的主体不同共设计两个游戏状态:
- 用户进行游戏的状态
- 计算机进行游戏的状态
本游戏软件刚刚运行时刻,按钮功能模块的显示图如下图所示:
![](https://www.writebug.com/myres/static/uploads/2021/10/25/52d8ea45e3638d07e8b9482e4a947fea.writebug)
该模块涉及到的游戏功能按钮及相关的适用状态有以下六种:
1. Restart 按钮:即重新开始游戏按钮,在用户进行游戏的状态和计算机进行游戏的状态两种状态下均可使用。点击该按钮,当前所有正在进行的游戏行为都立刻被终止,程序使用参数设置模块的相关参数——用户选中的迷宫创建算法按照用户选择的迷宫行列数创建一个新的迷宫,并以用户选择的格子宽度显示在游戏界面上。
2. Pause/Continue 按钮:即暂停/继续按钮,只能在用户进行游戏的状态下才能使用。在用户进行游戏的状态下,点击 Pause 按钮,当前迷宫游戏被暂停,游戏计时器、游戏计步器被停止,按钮上的 Pause 文字被立刻替换成 Continue 文字;当用户点击 Continue 按钮时,被暂停的迷宫游戏可以继续进行,游戏计时器、游戏计步器也在被停止的地方再次开始,按钮上的 Continue 文字被立刻替换成 Pause 文字。
3. Prompt 按钮:即提示按钮,只能在用户进行游戏的状态下才能使用。在用户进行游戏的状态下,Prompt 按钮的主要提示功能是在迷宫主界面上会显示出一条绿色的由用户当前的游戏位置到迷宫出口处的路径,进而对用户走出迷宫的路径进行提示。在用户点击 Prompt 按钮时,会跳出一个对话框要求用户指定提示路径的显示时间,用户可选择的显示时间有:1s、3s、5s、10s、forever。
4. Play do 按钮:即指定游戏转换为用户进行游戏状态的按钮,只能在计算机进行游戏的状态下才能使用。在用户进行游戏的状态下,点击 Play do 按钮,当前计算机进行的游戏行为被立刻终止,游戏状态切换到用户进行游戏的状态,将进行游戏的控制权由计算机转交给用户。
5. Computer do 按钮:即指定游戏转换为计算机进行游戏状态的按钮,只能在用户进行游戏的状态下才能使用。在用户进行游戏的状态下,点击 Computer do 按钮,会跳出一个对话框要求用户指定计算机进行游戏时每走一步的所用速度,用户可选择的速度有:lower seed 、low speed、 medium speed、 high speed、 higher speed。用户选择后,当前用户进行的游戏行为被立刻终止,游戏状态切换到计算机进行游戏的状态,将进行游戏的控制权由用户转交给计算机。在计算机取得游戏控制权后,程序将使用参数设置模块中用户选中的迷宫寻路算法计算出从游戏入口到游戏出口的路径,并按用户进行游戏的形式按用户选择的进行游戏时每走一步的所用时间将从入口到出口的行走路径演示一遍。
6. 声音设置按钮:即指定是否开启背景音乐的按钮,在用户进行游戏的状态和计算机进行游戏的状态两种状态下均可使用。
### 迷宫主界面模块
本游戏软件刚刚运行时刻,迷宫主界面模块的显示图如下图所示:
![](https://www.writebug.com/myres/static/uploads/2021/10/25/a32b9a6201cf068518f150407c3e1b51.writebug)
整个迷宫使用大量的方格(正方形)进行显示,其中,可行走的路径用白色方格显示,不可行走的路径即障碍物用黑色方格表示,出口用红色方格表示,用户用于行走的标识用绿色小球(圆形)表示。用户通过键盘上上下左右的方向键操纵小球在迷宫主界面上运动。
参数设计模块中的 ROWS(即迷宫行数)、COLS(即迷宫列数)在迷宫主界面的表示分别指的是迷宫主界面中每行、每列方格的数量,参数设计模块中的 Lattice’s width(即组成迷宫的格子的宽度)在迷宫主界面的表示是迷宫主界面中每个方格的宽。此外,在迷宫主界面模块的正上方,存在统计用户进行游戏的当前时刻的所用时间和所走步数的计时器和计步器。
### 迷宫整体界面
![](https://www.writebug.com/myres/static/uploads/2021/10/25/a54d5ae0b14b51da007b627b12d51361.writebug)
# 软件设计方案
## 软件相关原理说明
要设计一款迷宫的游戏软件,其中最主要也是必须要解决的两大主要问题就是如何去生成一个随机的迷宫以及如何在一个随机生成的迷宫中找到从迷宫入口到迷宫出口的路径。在图论中,这两个问题的表示就是:
1. 如何随机生成一个无权连通图
2. 如何在一个找到一个无权连通图中任意两点间的路径
关于这两个问题的解决,目前存在许多算法,本款软件采取并实现了目前应用最为广泛的三大随机无权连通图生成算法:
- Depth First Search Algorithm(深度优先搜索算法)
- Randomized Prim's Algorithm(随机普利姆算法)
- Recursive Division Algorithm(递归分割算法)
以及两大无权连通图遍历算法:
- Depth First Search Algorithm(深度优先搜索算法)
- Breadth First Search Algorithm(广度优先搜索算法)
## 迷宫生成算法
在对�
基于Java编写的迷宫小游戏【100012844】
版权申诉
165 浏览量
2023-06-26
16:16:58
上传
评论
收藏 2.17MB ZIP 举报
神仙别闹
- 粉丝: 2707
- 资源: 7662