最後の24時間で私は2つの質問を投稿し、幸いにもそれらのすべてに答えました。NetLogo:エージェントを変更してループする
しかし、まだ問題はあります。
ここに私が計画しているものがあります。
私はエージェントが最も近い隣人を探して取引するミニマーケットモデルを作るのが好きです。
距離が非常に近い(1パッチ未満)場合、交換が開始されます。
そこでは、各エージェントは、現在のエージェントが最も近くに位置している場合でも、別のトランザクションのために他のエージェントのトランザクションが終了したときに、私は課すのが好きつの条件、
募集しています。
私は、エージェントセットを新しいトランザクションパートナーに応じて継続的に更新するようにコメントしました。
文字列のリストを作成しようとしましたが(トランザクションパートナーを表す)、有効なエージェントセットに変換し直しませんでした。
どうすればこの問題を解決できますか?
私の質問の境界以外の良いアイデアがある場合は、コメントしてください。
ありがとうございました。
(私はすぐに答えに驚いて、それがあまりにも 感謝ですここで私が試したいコードがある...)
to setup
clear-all
reset-ticks
ask patches [ set pcolor white ]
create-turtles num-turtles [
setxy random-xcor random-ycor
set energy random-gamma 10 0.5
set trust random-float init-trust
]
ask turtles [
set color scale-color green energy 0 99
set shape "default"
]
end
to go
ask turtles [
while [any? other turtles-here] [fd 1]
; let the-other-turtles [who] of other turtles
; let the-other-closest-turtles remove my-former the-other-turtles
; let ws ["turtle"]
; let other-closest-turtles append-word ws the-other-closest-turtles
; let ls other-closest-turtles
; let id the-other-closest-turtles
; set other-closest-turtles create-other-turtles ws ls id
; let closest-turtle other-closest-turtles with-min [distance myself]
let closest-turtle other turtles with-min [distance myself]
set closest-turtle one-of closest-turtle
while [closest-turtle = nobody] [fd 1]
if closest-turtle != nobody [face closest-turtle fd 1]
if distance closest-turtle <= 1 [transact]
if energy + trust <= 0 [die]
]
tick
end
to transact
let stronger max-n-of 2 turtles [trust]
let weaker min-n-of 2 turtles [trust]
ask stronger [
set energy energy - 1
set trust trust + 1.5
set my-former weaker
]
ask weaker [
set energy energy + 1.5
set trust trust - 1
set my-former stronger
]
end
あなたはできないことは何ですか?この質問は、文字列からエージェントセットを構築することについて質問します。この問題を解決するためには、文字列入力の例と期待される出力を確認する必要があります。しかし、そのような解決策は、あなたを間違った道に導くことになります。あなたは数字の入った文字列を作っているようです。エージェントセットを最初に構築し、新しいカメを追加するために 'turtle-set'プリミティブを使用することはほぼ確実です。これは、http://stackoverflow.com/questions/43896539/making-agentset-outof-list/43898915#43898915も – JenB
はい、@ JenBと言っています。あなたはそうです、タートルの名前を示すリストを構築するのではなく、最初にエージェントセットを収集するほうがはるかに優れています。しかし、私は単語と数字を連結して["タートル0"、 "タートル2"、... "カメ15"のような文字列で構成されたリストを作成することができました。しかし、これらの文字列からエージェントセットを拡張することはできませんでした。とにかくコメントありがとう。 –