答えが非常に明白な場合は疑いがあり、謝罪します。私は次のコードを作成しました。かなりシンプル&単純明快:エージェントセット内のエージェントの順序が一致しません
patches-own [ tl ls ls2 ls3 ls4 tsl]
turtles-own [mysize]
to setup
clear-all
reset-ticks
crt 5
ask turtles [ set heading random 360 jump random 20 set mysize random-float 1]
asd
inspect patch 0 0
end
to asd
let old sum [mysize] of turtles
ask patches [ set tl other turtles
set tsl [self] of tl
set ls [distance myself] of tl
set ls2 [distance myself^2] of tl
set ls3 [(mysize)/old] of tl
]
;print tl
end
to initial
set heading random 360 jump random 20 set mysize 1
end
to go
inspect patch 0 0
ask turtles [ fd 1 set mysize mysize + random-float 1]
let qwe random-float 1
print qwe
if qwe < 0.2 and count turtles > 2 [ask one-of turtles [die]]
if qwe > 0.8 [ ask one-of patches [sprout 1 [initial]]]
asd
tick
end
あなたが見ることができるように、私はコード内の関数を検査し、以下のスナップショットである:順序のうちls
とls2
薬である理由
私の質問は。 Agentset
TSL
はカメの順番を示しているので、それに基づいて作成された他のエージェントセットは同じ順序に従わないようにしてください。
その場合、エージェントセットの1つに最小値を持つカメを見つけるような操作を行う場合、 'min-one-of'を使用すると、すべてのエージェントセットが同様に順序付けされていないか、Netlogoが正しい結果は? – Yuvaraj
'ask patch 0 0 [ask min-one-of tl [distance myself] [set size 3]]'のようなエージェントセットを照会している限り、正しい結果を返すはずです。また、あなたの例のスクリーンショットでは、「tl」のみがエージェントセットであり、残りはリストです。エージェントのリストとは、エージェントセットとは異なる方法でクエリを実行します。 –
あなたは 'tlがエージェントセットである 'と言っているので、他はすべてリストです。リストの中の 'min'値が' ls'というカメを見つけたいのなら、 'lput'を正しく使うことができません。私はリスト内の最小値のインデックスまたは 'position'を得ることができるかもしれませんが、私がエージェントセット内のカメを識別するために位置を参照すると、エラーがスローされます。たとえば、 'set tl other turtles tl のset ls [distance myself^2]をセットインデックス位置(min ls)ls'に設定します。これまでは 'lput item index tl'を使うと動作します。 – Yuvaraj