2016-03-21 11 views
1

私はこのコードを持って、それが何をしているのか私にははっきりしていない: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 
] 

おかげで、
マルコ

+0

与えられた1つ(数字/パッチ)をフィールドに入れておきます。与えられた値が.1と.5の間であれば、何かします。そうでなければ、何か他のことをしてください。そして、あなたにこれを見つけました:http://ccl.northwestern.edu/netlogo/docs/dict/in-radius.html –

+0

@Evanそれは "フィールドに入れません"、このコードは決して 'フィールド'を設定しません。 –

答えて

0

をこれは明らかにカメやパッチによって実行されるコードですそれは明らかではない。

patches in-radius bは、呼び出し元エージェントの周りに半径bのパッチサークルのエージェントセットです。 max-one-of ... [field]は、fieldの最大値を持つそのエージェントセット内のパッチを検出します。そのパッチは新しいローカル変数aに格納されます。 (aより良好名がwinner又はpeak又はbest-patchたかもしれない。)

[field] of aは次にfieldの最大値、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 
] 

はおそらく意味が明確になって役立ちます。この形でそれを見て:それはない場合は、まあ、コードをより簡単かつ単純のように書くことができます。

関連する問題