1、项目概述
1.1项目目标和主要内容
1)学习GUI图形界面的设计,基于C++ QT框架,创建交互友好的应用程序;
2)项目运行能随机生成一个迷宫,并求解迷宫;
3)查找理解迷宫生成的算法,并实现生成随机的迷宫。
4)迷宫游戏支持玩家走迷宫和系统走迷宫路径两种模式。玩家走迷宫,通过键盘方向键控制,并在行走路径上留下痕迹;系统提示迷宫路径,系统能输出玩家当前位置到迷宫出口的最优路径。设计交互友好的游戏图形界面。
1.2项目的主要功能
1)游戏界面上可创建迷宫和自动寻路;
2)点击创建迷宫,界面上能随机生成一套迷宫,并标记出迷宫的首尾点位置;
3)用户可通过WSAD键控制上下左右实现走迷宫;
4)点击自动寻路后,程序能在迷宫格子中标出最优路线,然后能继续按键走迷宫并隐去最优路径。
2、项目设计
2.1项目总体框架
根据项目目标和主要内容设计项目总体框架如下所示,整体项目分为UI初始化、实例迷宫对象、初始化迷宫、绘制UI、按钮绑定几个部分,通过创建迷宫和自动寻路实现完整功能,UI相关内容在MainWindow类中实现,创建路径和寻路在Maze类中实现。
2.2系统详细设计
2.2.1 MainWindow类
MainWindow类主要用于UI界面生成渲染、按键槽函数绑定、按键监听。
1)UI布局
首先在mainwindow.ui中添加控件进行初始布局,主要有两个按钮和spacer,布局界面如下:
![](https://img-blog.csdnimg.cn/img_convert/3d4705502dea1c7310c1aca1f22f827f.png)
迷宫网格和路线等将通过程序进行布局添加。
2)构造函数
构造函数中首先实例化一个迷宫类Maze为m_maze,设置迷宫网格宽度为31,然后调用mazeInit方法初始化生成一个迷宫,并将界面窗口