0

我制作了一个模型,将派系(不同颜色的海龟)排列成一个圆圈。

目前他们随机排列,想知道是否有人可以帮我安排它们,例如,红色占据前 90 度,蓝色占据下一个 90 度,等等(在设置中)。

这是我的代码...

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循环替换它,但它实际上只是从0to数数factions

以下是 5 个派系你会得到的:

派系

于 2013-01-24T06:09:03.203 回答