0

派閥(異なる色のカメ)を円形に配置したモデルを作成しました。

現時点では、それらがランダムに配置されているため、誰かがそれらを配置するのを手伝ってくれるかどうか疑問に思っていました.

これが私のコードです...

ask patch 0 0
[ ask patches in-radius ( max-pxcor * .9) with [  random-float 100 < density ]
  [ sprout 1
    [ set breed cons
      set shape "circle" 
      set faction random factions
      set heading random 360
      set size 1
    ]
  ]
]

.. 360 /分数をしなければならないと推測していますが、それをどのように表現すればよいかわかりません。誰かが私を助けてくれればそれは素晴らしいことです. ありがとう!

4

1 に答える 1

1

やりたいことに最も近い NetLogo プリミティブはin-cone、別のタートルの「視野の円錐」にあるタートルのセットを報告する です。しかし、あなたの「パイのスライス」はpatch 0 0、別のタートルではなく、単に相対的でなければなりません! 問題ありません: で一時的なタートルを作成しpatch 0 0、それを使用して適切な角度のタートルを取得in-coneし、一時的なタートルを殺します。

次の手順は、コードで「そのまま」使用できます (setup以前とまったく同じように、タートルを作成した後に手順から呼び出すだけです)。

to assign-factions
  let angle 360 / factions
  foreach n-values factions [?] [
    ask patch 0 0 [ 
      sprout 1 [
        set heading ? * angle
        ask turtles in-cone max-pxcor angle [ set faction ? + 1 ]
        die
      ]
    ]
  ]
end

コードは非常に単純ですが、おそらくもっとあいまいなn-values. 必要に応じてループに置き換えることもできますがwhile、実際には から0までカウントするだけfactionsです。

5つの派閥で得られるものは次のとおりです。

派閥

于 2013-01-24T06:09:03.203 に答える