韩顺平 | 老鼠迷宫项目的思路分析

简介:简单版的老鼠找迷宫游戏,运用了回溯算法和递归思想(我还不是特别明白,老师是这么说的)。

1.构建迷宫。创建一个8 X 7 的二维数组(main方法中构建,再传进相应的方法中);

2.墙壁与非墙壁的区分。二维数组所有的元素默认为0,则0表示非墙壁,用两个for循环把墙壁所在的元素设置为1;

3.标记迷宫具体位置的现状。在位置值为0(即非墙壁)的基础上,走过且能走通的设置为2,走过但是不能走通的设置为3;

4.设置找路(findWay)方法。需要三个参数,分别是二维数组(表示迷宫)、老鼠所在的行、老鼠所在的列(表位置),返回值为boolean,返回true表示成功到达终点,返回false表示无法到达终点。

5.出发点与终点。老鼠的出发点在调用findWay方法时传入,是否到达终点通过判断重点的值是否为2(走过并走通)来判定。

6.找路策略。老鼠往哪个方向找出口,走不通了该怎么办,这叫找路策略。由于出发点在迷宫左上角,终点在迷宫右下角,为了节省程序运行时间,设定找路策略为”下 - 右 - 上 - 左“。

7.findWay方法内容。多层嵌套循环,先把所有证明能走通的情况返回true,其余的情况返回false。第一层循环判断终点的值是否为2,yes返回true,no进入第二层循环,如果第二层循环的条件判断都不满足则返回false。第二层循环判断传进来的[i , j]是否等于0,等于0代表起点不是墙壁,则进行第

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值