投稿したコードサンプルからは、正確に何をしようとしているのかは不明です。
役立つかもしれないいくつかのこと:
- 特定の順序でタートルに話しかける場合を除き、通常は を使用する必要はありません
foreach
。するだけask other turtles [ ... ]
で全体を置き換えることができforeach sort other turtles [ ask ? [ ... ] ]
ます。
ask ?
あなたがブロックの中にいることを考えると、常にself != ?
false になるため、あなたの. 内部ブロック内のコードには到達しません。and
if
myself
「外側」の ask ブロックからエージェントを参照します (例: in ask x [ ask y [ ... ] ]
、self
would be y
、myself
would be x
)。の影響も受けず、影響myself
も受けません。self
foreach
?
ask
私の推測では、おそらくあなたはただしたいだけです:
ask other turtles [
if Smin < Sim myself self [
]
]
しかし、特に何が何なのかわからないので、はっきりとはわかりませSmin
んSim
。詳細を投稿していただければ、さらにお手伝いできるかもしれません。
最後に: NetLogo コードは通常、同等の C/Java コードよりもはるかに単純になりますが、「NetLogo 方式」を採用することを学ぶ必要があります。Java/C で考えてから NetLogo で翻訳しようとすると、通常は道に迷います。