1> *Box1Stack; //定义一个栈用于存放寻最短路节点 int M;//迷宫矩阵的行 int N;//迷宫矩阵的列 6 bool first; bool remove_wall; //判断是否进行拆墙 bool repair_wall; //判断是否补墙//老鼠的坐标 int X; int Y; private slots: void on_way_clicked(); void on_shortway_clicked(); void on_removewall_clicked(); void on_cancelremove_clicked(); void on_makemaze_clicked(); void timerUpdate(); void on_repairwall_clicked(); void on_savemaze_clicked(); void on_readmaze_clicked(); 3.3 . 函数实现说明(1) void keyPressEvent(QKeyEvent *e) 功能:实现使用键盘完成对老鼠的控制。(2) void paintEvent (QPaintEvent *) 功能:打印迷宫、路径、老鼠和粮仓。(3) void creatMaze(); 功能:生成迷宫使用算法:回溯法、栈(4) void findWay(); 7 功能:寻找从老鼠到粮仓的路径。使用算法:深度优先遍历(5) void findShortWay(); 功能:寻找从老鼠到粮仓的最短路径。使用算法:广度优先遍历、队列(6) void timerUpdate(); 功能:更新剩余时间,当剩余时间为 0 时游戏结束。 8 4. 程序运行结果 1. 初始状态 2. 点击生成迷宫,生成一个默认大小为 25*25 的迷宫 9 3. 点击寻找路径 4. 点击最短路径