【发布时间】:2016-05-18 21:26:13
【问题描述】:
我在 Netlogo 中有一个盒子绑定的世界,我的海龟正在按照我想要的方式移动,但有些会卡在墙上,这会吸引其他人(我使用植绒模型作为主干),直到所有海龟都被卡住面对墙壁并停止移动。我尝试在 Go 中包含一个 wall_jump,但是一旦有太多的群友靠墙它就没有帮助,所以我放了另一个块让群友从墙上反弹,但它似乎没有任何效果。如果您想重现整个问题,请打开植绒模型并关闭世界边界。
其他人是如何解决这个问题的?
to wall_jump
ifelse any? flockmates
[
if ycor >= max-pycor * 0.95 [set heading (random-normal 180 2)]
if xcor >= max-pxcor * 0.95 [set heading (random-normal 270 2)]
if xcor <= min-pxcor * 0.95 [set heading (random-normal 90 2)]
if ycor <= min-pycor * 0.95 [set heading (random-normal 0 2)]
]
[if ycor >= max-pycor * 0.95 [set heading (random-normal 180 2)]
if xcor >= max-pxcor * 0.95 [set heading (random-normal 270 2)]
if xcor <= min-pxcor * 0.95 [set heading (random-normal 90 2)]
if ycor <= min-pycor * 0.95 [set heading (random-normal 0 2)]
]
end
【问题讨论】:
-
你的 if 和你的 else 语句有什么区别?
-
flockmates 是我所依据的“植绒”模型的继承,它归海龟所有。基本上,他们将附近的海龟识别为群友,然后根据群友的平均航向确定它们的新航向。我用那个 ifelse 声明的目的是基本上说你附近是否有任何羊群伙伴,以同样的方式决定一个新的方向,因为你被困在墙上。还是不行
标签: netlogo