[C++]慕课网课后题迷宫游戏Maze

一、 前言

慕课网的免费C++课已经看到封装篇,接下来看模板篇。然后就是数据结构。目标是刷完bobo老师的算法与数据结构课程。

这次的课后题是迷宫游戏。全部完成需要涉及二维数组,对象指针,函数递归等基础知识。最终代码量160行,完全自己编写。

课后题连接:https://www.imooc.com/video/8207

二、代码逻辑介绍

代码说明:参考网上现有代码逻辑。代码完全是自己独立思考后,编码调试完成。核心是遍历,重点是如何遍历。
无所谓左右手,只是顺时针转向和逆时针转向的问题。本质上都是遍历。
迷宫为5*5二维数组。走迷宫的人为指针对象,目的是保持走迷宫时候,人对象的X, Y值连续。

设定人的初始朝向为北。Dir为0。位置为入口,可以自己设定。注意数组从0开始。

1)游戏结束判断标准

出口设置在第一排,所以人的横坐标X为0时,认为游戏结束。
(设置为0只是为了方便判断,你也可以设置在最后一排。)

2)找到正确的方向

即前方有路。当行进前方前方有墙时,转向。这里设置成逆时针转向。
转向后还有墙,则继续转向。用递归函数实现重复/遍历。直到找到路的方向。
(但是仅仅依靠转向是无法走出迷宫的。因为无论是逆时针转向还是顺时针,都会在第2/3次转向时回到前一步方向。造成后退。
然后继续进行,继续后退。形成死循环。)

3向有路的方向前进一步

为了避免2中提到的死循环&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值