gpt4 book ai didi

timer - netlogo:如何让海龟停止一定数量的滴答声然后继续

转载 作者:行者123 更新时间:2023-12-05 01:06:35 25 4
gpt4 key购买 nike

我正在尝试创建一个模型,其中海龟随机行走(但有向前移动的趋势),直到它们落在代表诱饵物体的黄色斑块上。

当一只海龟落在其中一个黄色斑块上时,我希望它停在那个斑块上并在那里停留 15 次,同时它“调查”诱饵。

在 15 个刻度过去后,我希望海龟像往常一样继续移动,直到遇到另一个黄色斑块。

我试图在 netlogo 建模共享中修改这个停放的卡片模型的部分,但无法真正理解它(我是 netlogo 的新手)
http://modelingcommons.org/browse/one_model/3205#model_tabs_browse_procedures

我也试过实现这个线程中描述的倒数计时器
How can one create a countdown timer in 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

最佳答案

这只是一个例子,他们应该在黄色区域停留多少滴答声?我假设有 15 个刻度,我也要求海龟在它们的标签上打印它们的刻度编号,如果它跑得太快,你可能会错过它们的停留,因此调整模型的运行速度以查看它们何时停留以及何时移动。你可以有不同的方法来继续,在这个方法中他们只是向前移动 1 个补丁。

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
set count-down 15
]

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
rt random 10
fd 1
end


to stay
set count-down count-down - 1 ;decrement-timer
set label count-down
if count-down = 0
[
Continue
set label ""
reset-count-down
]

end

to reset-count-down
set count-down 15
end

关于timer - netlogo:如何让海龟停止一定数量的滴答声然后继续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19993631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com