Dies ist Code offenbar von einer Schildkröte oder Patch ausgeführt werden Es ist nicht ersichtlich, welche.
patches in-radius b
ist ein Agentset des Kreises der Patches des Radius b
um den aufrufenden Agenten. max-one-of ... [field]
findet den Patch in diesem Agentensatz, der den größten Wert für field
aufweist. Dieser Patch wird dann in der neuen lokalen Variablen a
gespeichert. (A besseren Namen als a
könnte winner
oder peak
oder best-patch
gewesen.)
[field] of a
ist dann, dass der Maximalwert field
, die gleiche, die max-one-of
gefunden. Die ifelse
überprüft, ob dieser Wert in einem bestimmten Bereich ist oder nicht, und je nachdem, was anders ist.
Verwendet der Code innerhalb der ifelse
weitere Verwendung von a
? Wenn es so ist, cool. Wenn dies nicht der Fall, na ja, könnte der Code leichter und einfach geschrieben als:
let m max [field] of patches in-radius b
ifelse m > 0.1 and m < 0.5
[
;; do something
]
[
;; do something else
]
vielleicht in dieser Form zu sehen, wird dazu beitragen, die Bedeutung klar zu machen.
Lassen Sie maximal eins gegeben (Anzahl/Patch) und legen Sie es in Feld. Wenn das gegeben ist zwischen .1 und .5, tut etwas. Wenn nicht, tut etwas anderes. Und haben Sie das gefunden: http://ccl.northwestern.edu/netlogo/docs/dict/in-radius.html –
@Evan es nicht "in Feld" setzen, setzt dieser Code nie 'Feld'. –