迷宫算法堆栈溢出

时间:2015-01-05 22:49:17

标签: algorithm unity3d stack-overflow maze boo

我试图使用递归分割方法(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)

我真的不知道自己做错了什么。好吧,提前谢谢......

1 个答案:

答案 0 :(得分:0)

代码看起来不错。问题可能在于Random.RandomRange。这可能很有用:http://answers.unity3d.com/questions/549908/script-not-working-5.html