NetLogo强制代理

时间:2014-07-24 04:16:57

标签: netlogo

给定:将force-x和force-y分别视为代理上的x和y分力

目标:你希望乌龟根据force-x和force-y(普通机制)移动8个相邻补丁中的一个

要求:最少的if-else语句代码。

1 个答案:

答案 0 :(得分:1)

如果你确定你的力量不足以将乌龟推过邻近的一个补丁,你可以简单地使用move-topatch-at,然后让你的乌龟:

move-to patch-at force-x force-y

但也许你的力量大于此,你仍然想限制可能的移动到邻居。然后,您可以使用min-one-ofdistance的组合来实现:

let p patch-at force-x force-y
move-to min-one-of neighbors [ distance p ]

但话又说回来,也许你也想知道这些力量不足以将乌龟推到邻居的可能性。如果是这种情况,您可以使用patch-set将当前补丁(由patch-here给出)添加到可能的目的地集合中:

let p patch-at force-x force-y
move-to min-one-of (patch-set patch-here neighbors) [ distance p ]