我正在尝试使用NetLogo为移动公告板中的公告颜色建模。当他们见面时,我能够让小圆章改变他们的颜色,但颜色变化是随机的,有时候我的半径中有相同颜色的公告是触摸或靠近我想让公告在给定的颜色中有一种独特的颜色raduis.Here是我代码的一小部分。任何人都可以帮助我吗?
to color-bulletins
ask bulletins [
ask other bulletins in-radius 2[
ask one-of bulletins [ set color green]
ask one-of bulletins [ set color white ]
ask one-of bulletins [ set color yellow]
ask one-of bulletins [ set color blue ]
]]
end
答案 0 :(得分:3)
这是一种方法:
breed [ bulletins bulletin ]
to setup
ca
create-bulletins 1000 [ setxy random-xcor random-ycor ]
end
to color-bulletins
ask bulletins [
let used-colors [ color ] of other bulletins in-radius 2
let available-colors filter [ not member? ? used-colors ] base-colors
set color ifelse-value (length available-colors > 0)
[ one-of available-colors ]
[ one-of base-colors ]
]
end
这假设你只想使用base-colors
并且它们都可以使用它们,在这种情况下你仍然会得到“颜色冲突”,但是你无能为力。除非你的代理人的空间分布相当密集,坚韧,否则不应该经常发生。