我正在尝试创建一个模型,其中海龟随机行走(但有向前移动的趋势),直到它们降落在代表诱饵物体的黄色斑块上。
当一只乌龟落在其中一个黄色斑块上时,我希望它停在那个斑块上并在那里停留 15 滴,同时它“调查”诱饵。
在 15 个滴答声过去后,我希望海龟像往常一样继续移动,直到它们遇到另一个黄色斑块。
我试图在 netlogo 建模共享中修改此停放卡模型的部分内容,但无法真正理解它(我是 netlogo 的新手) http://modelingcommons.org/browse/one_model/3205#model_tabs_browse_procedures
我也尝试过实现一个倒数计时器,如该线程中所述 如何在 NetLogo 中创建倒数计时器?
但是,当我尝试运行模拟时,我收到一个运行时错误“只有观察者可以询问所有海龟的集合”。谁能告诉我哪里出错了?大概好几个地方!谢谢。
这是导致运行时错误的代码:
turtles-own [count-down]
to setup
clear-all
ask patches with [count neighbors != 8]
[set pcolor blue]
create-turtles 20
ask turtles
[setxy random-xcor random-ycor
pen-down]
ask n-of 20 patches
[ set pcolor yellow ]
reset-ticks
end
to go
move-turtles
tick
if ticks >= 720 [stop]
end
to move-turtles
ask turtles
[ ifelse pcolor != yellow
[continue]
[stay]
]
end
to continue
ask turtles
[rt -90 + random 181]
ask turtles
[ifelse [pcolor] of patch-ahead 1 = blue [ lt random-float 360 ]
[fd 1]
]
end
to stay
ask turtles
[
setup-timer
decrement-timer
if timer-expired? [continue]
]
end
to setup-timer
set count-down 15
end
to decrement-timer
set count-down count-down - 1
end
to-report timer-expired?
report ( count-down <= 0 )
end