我制作了涉及" turtles"的动物行为模型。和"道路"我希望模型能够在乌龟穿过"时向我报告。一条路。我想要的只是它告诉我乌龟什么时候从灰色的补丁变成红色。我已经包含了要求它报告此代码的代码,程序没有代码问题。为了让我直观地展示我想要报告的内容,我在界面上放置了一个监视器。但它总是给我一个" 0"对于道路交叉口,即使我可以看到我的乌龟已越过道路。我会手工计算,但是不可能确定有多少道路交叉口,这是科学出版物。我的代码如下......
turtles-own [
road-crossings
]
to setup
clear-all
;; create turtles on random patches.
ask patch 6 -15 [
sprout 1 [
set color one-of [green]
set size 1
set road-crossings 0
]
]
ask turtles [
if [pcolor] of patch-here = 14.9 [
set road-crossings road-crossings + 1
]
]
reset-ticks
end
to go
ask turtles [
repeat 100 [
repeat 39 [
pen-down
rt random-float 360
lt random-float 360
fd random-float 1.375
]
setxy 6 -15
]
]
tick
end
任何帮助表示赞赏!谢谢!
答案 0 :(得分:3)
我可以看到有几个潜在的问题。
首先,道路交叉是一个乌龟变量,如果你想让每只乌龟记住它穿越道路的次数,这是正确的做法。但是,如果是这样,监视器必须报告sum [road-crossings] of turtles
以获取所有海龟的道路交叉口。
其次,我认为这实际上是你的问题:你有乌龟检查它是否在设置程序而不是go程序中过马路。设置程序仅在开始时运行。
第三,你的示例代码实际上没有任何道路,但我怀疑这只是创建一个正确的例子。我假设您的实际代码中有pcolor
为14.9的补丁。但是,如果没有,那也会导致您的错误。您可以通过进入指挥中心并询问count patches with [pcolor = 14.9]