我试图使用递归分割方法(here)为我的游戏创建一个简单的迷宫生成器但是我得到了堆栈溢出异常。 (TBH,我真的很困惑......)这是代码(Boo Script):
def slice_v(x as int, y as int, w as int, h as int):
d = Random.RandomRange(x, w)
for i in range(y, h):
maze[i, d] = Wall.VWall
rem = Random.RandomRange(y, h)
maze[rem, d] = 0
Generate(x, y, d, h)
Generate(d, y, w-d, h)
def slice_h(x as int, y as int, w as int, h as int):
d = Random.RandomRange(y, w)
for i in range(x, w):
maze[d, i] = Wall.HWall
rem = Random.RandomRange(x, w)
maze[d, rem] = 0
Generate(x, y, w, d)
Generate(x, d, w, h-d)
def Generate(x as int, y as int, w as int, h as int):
if w < 2 or h < 2: return
if w > h:
slice_v(x, y, w, h)
elif w < h:
slice_h(x, y, w, h)
elif w == h:
i = Random.RandomRange(0, 1)
if i == 1:
slice_v(x, y, w, h)
else:
slice_h(x, y, w, h)
我真的不知道自己做错了什么。好吧,提前谢谢......
答案 0 :(得分:0)
代码看起来不错。问题可能在于Random.RandomRange。这可能很有用:http://answers.unity3d.com/questions/549908/script-not-working-5.html