まず第一に、タートル 1、2、3、および 4 が存在する場合、サンプル コードは機能するはずです。NetLogo のタートルは からインデックス化されて0
いるため、次のようなことをしている可能性があります。
create-turtles 4
(foreach [1 2 3 4] [-16 -16 -16 -16] [12 11 10 9] [ask turtle ?1 [setxy ?2 ?3]])
そして、次のようなものを取得しています:
ASK expected input to be an agent or agentset but got NOBODY instead.
...あなたのコードが存在しない を試みてask
いるためです。turtle 4
最初のリストを に変更する[0 1 2 3]
と、それが修正されます。
今、それはあなたがやりたいことをするための最良の方法ですか?確かな情報はありませんが、次のようなものが欲しいと思われます:
clear-all
let coordinates [[-16 12] [-16 11] [-16 10] [-16 9]]
create-turtles length coordinates
(foreach (sort turtles) coordinates [
ask ?1 [ setxy item 0 ?2 item 1 ?2 ]
])
エージェントセットをリストに変換し、リスト内の特定のアイテムを取得できることを知っていれば、それsort turtles
がどのように機能するかを理解できるはずです。turtles
item
編集:
create-turtles length coordinates
代わりに何かを行うcreate-turtles 4
と、定義した座標の数と同じ数のタートルが確実に得られますが、それは状況に当てはまる場合と当てはまらない場合があります。
編集2:
タートルがまだ作成されていない場合にのみ機能する、さらに単純なアプローチは次のようになります。
clear-all
let coordinates [[-16 12] [-16 11] [-16 10] [-16 9]]
foreach coordinates [
create-turtles 1 [ setxy item 0 ? item 1 ? ]
]