我要做的部分工作是让一只乌龟到处走动,但是当一只乌龟到达目的地时,乌龟要等待一定的滴答声才能继续?也有可能使海龟根据其目的地(不同的斑块颜色)等待不同数量的tick。是制作海龟品种或全局变量来计算of的数量吗?希望相关的代码如下。
最佳答案
没错,这可以通过让海龟计算它们在补丁上的tick虫数量来完成。此外,这必须是乌龟变量,而不是全局变量,因为每只乌龟为此具有不同的值
我使用的方法是:
ticks
(记录到现在为止已经过去的滴答声数量的全局变量)记录到乌龟变量中,即ticks-since-here
。这就像时间戳一样。 ticks
全局变量和ticks-since-here
turtle变量之间的差异。如果它变得大于允许乌龟停留在补丁上的滴答声数量,请让它选择并移动到新的目的地。品种[访客访客]
globals [ number-of-visitors ]
visitors-own [
; visitors own destination
destination
ticks-since-here
]
to go
ask visitors [
move
]
tick
end
to move
; Instructions to move the agents around the environment go here
; comparing patch standing on to dest, if at dest then choose random new dest
; then more forward towards new dest
ifelse ( patch-here = destination )
[
if ticks - ticks-since-here > ticks-to-stay-on-patch patch-here
[
set ticks-since-here 0
set destination one-of patches with
[
pcolor = 65 or pcolor = 95 or pcolor = 125 or pcolor = 25 or pcolor = 15 or pcolor = 5
]
]
]
[
face destination
forward 1
if ( patch-here = destination )
[
set ticks-since-here ticks
]
]
end
to-report ticks-to-stay-on-patch [p]
if [pcolor] of p = 65
[
report 6
]
if [pcolor] of p = 95
[
report 5
]
if [pcolor] of p = 125
[
report 4
]
if [pcolor] of p = 25
[
report 3
]
if [pcolor] of p = 15
[
report 2
]
if [pcolor] of p = 5
[
report 1
]
end
to setup-people
;;;; added the following lines to facilitate world view creation
ask patches
[
set pcolor one-of [65 95 125 25 15 5]
]
set number-of-visitors 100
;;;;
create-visitors number-of-visitors
[
ask visitors
[
; set the shape of the visitor to "visitor"
set shape "person"
; set the color of visitor to white
set color white
; give person a random xy
setxy (random 50) (random 50)
; set visitors destination variable
set destination one-of patches with
[
pcolor = 65 or pcolor = 95 or pcolor = 125 or pcolor = 25 or pcolor = 15 or pcolor = 5
]
]
]
end