我制作了一个模型,可以在一个圆圈中排列派系(不同颜色的海龟)。
目前他们随机安排,想知道是否有人可以帮助我安排他们,例如,红色占据前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 /分数,但不知道如何表达它,如果有人可以帮助我,那将是伟大的。谢谢!
答案 0 :(得分: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个派系的结果: