NetLogo in-radius

时间:2016-03-21 15:59:47

标签: netlogo

我有这个代码,我不清楚它在做什么:

patches-own [ field ]

let a max-one-of patches in-radius b [field]
ifelse ([field] of a > 0.1) and ([field] of a < 0.5)
[
;; do something
]
[
;; do something else
]

谢谢,
马可

1 个答案:

答案 0 :(得分:0)

这显然是由乌龟或补丁运行的代码,不明显是哪个。

patches in-radius b是调用代理周围的修补程序圈的代理集,半径为bmax-one-of ... [field]在该代理集中找到具有field最大值的补丁。然后该补丁存储在新的局部变量a中。 (比a更好的名称可能是winnerpeakbest-patch。)

[field] of afield的最大值,与max-one-of找到的值相同。 ifelse检查该值是否在某个范围内,并执行不同的操作,具体取决于。

ifelse中的代码是否进一步使用a?如果是的话,很酷。如果没有,那么代码可以更简单,更简单地写成:

let m max [field] of patches in-radius b
ifelse m > 0.1 and m < 0.5
[
;; do something
]
[
;; do something else
]

或许以这种形式看待它将有助于明确其含义。