我问在参考这个问题在这里得到解答前一个问题: 有没有一种方法来创建的NetLogo不可逾越的障碍?
用户有益建议的方式来生成的NetLogo禁地补丁(即屏障)。 然而,正如他所说,代理将仍然拥有的能力,偶尔会“跳”过,如果他们从特定的角度探讨了这些障碍。 这是我的模型中的不良行为,因为我建模围栏和运动,所以跳的障碍是不现实的。
我试图改变这样的代码:
ask patches in-radius 1
[if f = 1
[ask myself
[set heading towards min-one-of patches [distance myself] + 180 - random 10 + random 10 ]
]
]
通过降低“在半径”不到一个,在希望它会防止代理人看到远远不够,跨越障碍运动,但这并不工作。 该“F = 1”只是用来表示补丁围栏补丁变量。
有没有阻止这种行为的任何方法?
这里是行为我想-周围的障碍导航
这里是行为我不想-跳跃障碍,如果从某些角度接近
代理商跟随实际的运动过程如下:
ask turtles[
let moveset patches in-radius 30 with [f = 0 and n > 0]
pen-down
let target max-one-of moveset [n]
ifelse patch-here != target
[set heading towards target]
[]
ask patches in-radius 1
[if f = 1
[ask myself
[set heading towards min-one-of patches [distance myself] + 180 - random 10 + random 10]
fd 1]