(完整版)C++毕业课程设计自动走迷宫小游戏 下载本文

内容发布更新时间 : 2024/9/29 14:26:16星期一 下面是文章的全部内容请认真阅读。

自动走迷宫小游戏

第一章 课程设计目的和要求

1.1 课程设计的目的

根据课堂讲授内容,做相应的自主练习,消化课堂所讲解的内容;通过调试典型例题或习题积累调试C++程序的经验;通过完成辅导教材中的编程题,逐渐培养学生的编程能力、用计算机解决实际问题的能力。同时在设计的过程中发现自己的不足之处,对以前所学过的知识理解的更加深刻,掌握得更加牢固。

1.2课程设计的要求

迷宫生成。迷宫有起点和终点,生成的迷宫需要满足从起点到终点有通路,不需要唯一;

尝试走迷宫。迷宫中每个位置有8个方向,每个方向都有可能有障碍。从起点出发,行进过程中遇到岔路口需要记录,选择一条路继续,如果此路不通,能够回溯到刚才的岔路口继续,直到走到终点;

记录走迷宫成功的路线到文本文件。

第二章 课程设计任务内容

选择手动或者自动生成一个n×m的迷宫,将迷宫的左上角作入口,右下角作出口,设“0”为通路,“1”为墙,即无法穿越。假设从起点出发,目的为右下角终点,可向“上、下、左、右、左上、左下、右上、右下”8个方向行走。如果迷宫可以走通,则用“■”代表“1”,用“□”代表“0”,用“☆”代表行走迷宫的路径。输出迷宫原型图、迷宫路线图以及迷宫行走路径。如果迷宫为死迷宫,则只输出迷宫原型图。

第三章 详细设计说明

3.1模块描述

整个实验将实现迷宫路径的查找,并图形化输出其中最短的路径,迷宫使用二维数组存放。机器通过穷举法解出迷宫的路径,最后输出。整个实验分为以下几个模块:

创建模块。本实验的创建包含两方面,迷宫的定义和脚步的初始化。迷宫的定义通过修改二维数组实现,最终创建一个确定的迷宫。脚步的初始化由程序自行完成.

路径查找模块。路径查找核心分为两个部分:路径查找、更优解替换。路径查找包括可通性检查、脚步前进、脚步后退三个模块。可通性检查会检查当前脚步的四个方向是否有通路。脚步前进可以在有通路的情况下抵达下一个点,并记录在脚步双向链表中。脚步后退使在当前脚步无路的情况下后退一步,并转向其他方向,同时删除最后一个脚步。

可通性检查。可通性检查用来判断指定的方向是否可以通过。需要判断两方面内容,即下一点是否有障碍和下一点是否已包含在了已有路径之中。若同时满足无障碍和无包含条件,则可以通过。否则不能通过。

脚步前进。下一点若经过检查可以通过,则通过move()函数完成前进。“前进”的实现有两方面,第一方面,将新脚步纳入双向链表中,另一方面,在迷宫数组中将本步坐标所指标记为“已走”。 脚步后退。若本步四个方向都不能行走,则通过back()函数退后。退后包括两方面,一方面把链表中最后一个节点抛弃,当前脚步指向倒数第二个节点。另一方面,将迷宫数组中已抛弃节点指向的元素重新标记为“未走”,以便进行其他路径的寻路操作时可以顺利通过。

输出模块。实现迷宫解的图形化显示。

其他模块。格式化模块,用于迷宫求解后的处理。迷宫数组改写模块,按照求解的结果改写迷宫二维数组,以满足最终输出需要。