Unity迷宫随机生成(面试题)

本文介绍了在Unity中实现迷宫生成的面试题,包括使用Prime算法和深度优先搜索(DFS)策略。文章讨论了两种算法的思路,如Prime算法的墙初始化、循环处理,以及DFS的栈操作和路径规划。虽然DFS方法在路径规划上存在挑战,但提供了一个通过限制路径长度来寻找近似最短路径的策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近准备面试一家游戏公司,不得不说游戏公司现在真不好进啊(是不是我太菜了TAT)。终于有了一家找我上来就甩给我一道题,初级Unity面试题。需求如下:

1.有且只有一条正确路径

2.每一个格子都是连通的

3.每一个格子至少有一面墙

4.用Unity实现

5.需要两个按钮一个重新生成新迷宫,一个自动寻路。

平常的时候我也是比较注重算法训练,但是刚刚上手这个题目还是有一点点懵,所以网上查了一下资料。我当时主要看的算法有两种,第一种Prime算法,第二种深度优先探索(DFS)。大神们写的都很好,做的时候我也有了一些自己的心得,以此记录一下。

首先是Prime,这种算法的思路:

1.建一个数组,将数组中所有元素初始设为墙。(我用的int数组,0是墙,路是1)

2.做一个预处理,先将迷宫最外层先全部设置成路。(这是为了后面迷宫生成的判断条件,并保护最外层迷宫)

3.随机在迷宫中选择一个墙加入数组,最好不要选择最外层,后面的起点终点方便规定一些。

4.做一个While循环,条件是数组中元素不为0,每一次循环,随机在数组中挑选一个元素(墙)出来,并判断该墙四周的路是否小于等于1,若符合则将该墙变为路,并将该墙四周的墙新加入数组。

5.跳出循环后规定起点和终点。(条件是起点,终点的墙必须和里面的路连通)

这样我们的迷宫数组就规划好啦,剩下还有一个难点,就是自动寻路功能。这也是Prime在本题里面不太好用的地方,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值