我正在试图要求白龟在8个空的邻近空间之一创造黄色海龟。如果没有自由空间,龟就不会产生任何东西。 注意:白龟保持白色并产生黄色龟,它们能够繁殖自己以及其他黄色龟。总之,最后我想用黄色海龟填满黑色空间。
breed [ cells cell ]
cells-own [ n ]
to setup
clear-all
set-default-shape cells "square"
ask patches [ if pycor = min-pycor [sprout-cells 1]]
ask cells [ ifelse random 10 < 2 [set color white] [set color yellow]]
感谢您的回复。
我会解释我正在尝试做什么:
再次感谢您的帮助。
reset-ticks
end
to go
ask cells
[ set n count neighbors with [pcolor = yellow] ]
ask cells
[ if n >= 1
[ set color yellow] ]
tick
;ask cells
;[if ticks = 10
;[set color yellow]]
end
答案 0 :(得分:2)
你究竟想要做什么对我来说并不完全清楚。我将采用可能的解释,但无论我的解释是否正确,你都应该试着澄清你的问题。
尝试理解您的代码,在我看来,patches
和turtles
之间存在一些混淆。在go
程序中,如果cells
有黄色邻居,则会要求cells
变黄。我认为你想要的是黄色方块出现在黄色方块的邻居上。您尝试填充的空色块尚未包含任何ask cells
,因此cell
变黄会对您没有帮助。
如果您真的想坚持使用setup
代理,保留当前的to go
ask patches with [not any? turtles-here] [
if any? neighbors with [any? turtles-here] [
sprout-cells 1 [
set color yellow
]
]
]
end
程序,您可以执行以下操作:
Edit...
(如果您希望自己的单元格仅从下向上增长,则应通过右键单击视图并选择to setup
clear-all
ask patches [
if pycor = min-pycor [
ifelse random 10 < 2
[set pcolor white]
[set pcolor yellow]
]
]
reset-ticks
end
to go
ask patches with [pcolor = black] [
if any? neighbors with [pcolor = yellow or pcolor = white] [
set pcolor yellow
]
]
tick
end
)来关闭视图设置中的包装
现在,一种完全不同的方法,如果你想要的只是一种细胞自动机,可能会更简单,就是抛弃代理并只使用补丁。这会给你类似的东西:
{{1}}
两种方法都有效。第一个在视觉上更令人愉悦。第二个稍微简单,因为你根本不需要海龟。这取决于你最终想做什么。