3

タートルが死んだ場合でも、シミュレーション中にスポーンする方法はありますか? 私のシミュレーションでは、魚はプランクトンを食べているので、プランクトンに遭遇すると、プランクトンは死ぬ/食べられます。しかし、魚がプランクトンを食べられなくなると、プランクトンからエネルギーを得られなくなり死んでしまいます。したがって、すべての魚が死んだら、プランクトンが戻ってくるはずです。移住などで大きく成長。これを実装する方法がわかりませんか?作成機能はここでは機能せず、セットアップでのみ機能します。

to plankton-reproduce
  if random-float 100 < reproduce-plankton [
    set energy (energy / 2)
    hatch 1 [setxy random-xcor random-ycor]
  ]
  if count plankton < 10 [
    create-plankton 20
    setxy random-xcor random-ycor
  ]

エラー: create-plankton はオブザーバーのみであるため、タートル コンテキストで create-plankton を使用することはできません

4

2 に答える 2

2

私は質問を理解できると思います。

タートルにタートルを作成させるには、HATCH を使用します。あなたが使用した場合、あなたのコードは(私がそれを理解していれば)機能します

hatch-plankton 20

それ以外の

 create-plankton 20

私はそれを正しく理解しましたか?タートルhatch、パッチspawn、オブザーバーcreate。孵化したカメは、孵化したカメと同じであり、すべてhatchが呼び出された場所にまとめられます。あなたがそれを望んでいないと仮定します。使用する

hatch-plankton 20 [setxy random-xcor random-ycor]
于 2015-12-03T16:14:29.910 に答える
0

これをコードに組み込みましたが、プランクトンの数がゼロの場合、すべてのプランクトンが死んで孵化できないため、プランクトンが復活しません。シミュレーション中にプランクトンをスポーンしたり、カメが死んだ場合でも一般的にリスポーンする別の方法を知っていますか? プランクトンを再現するコードの下:

to plankton-reproduce
  while [count plankton != 0 and count plankton < 3000]
    [ if random-float 100 < reproduce-plankton
      [set energy (energy / 2)
       hatch-plankton 1 [setxy random-xcor random-ycor]]]
  if count plankton = 0
  [set energy 1
  hatch-plankton 20 [setxy random-xcor random-ycor]]
end
于 2015-12-03T20:31:39.840 に答える