如果没有其他乌龟在相同标题的1号前方,我想让我的乌龟向前移动。乌龟会在某个时候减速,直到它们不再移动并且前面没有乌龟,但我不知道为什么。
这里有一些代码:
to movefd
ask turtles [
let car-ahead turtles-on patch-ahead 1
ifelse car-ahead with [heading = [heading] of myself] != nobody
[ slow-down-car ]
[ speed-up-car ]
if speed < speed-min [ set speed speed-min]
if speed > speed-limit [ set speed speed-limit ]
fd speed
]
end
to slow-down-car
set speed (speed - deceleration)
end
to speed-up-car
set speed speed + acceleration
end
答案 0 :(得分:1)
我认为(但不确定,因为无法测试)您的问题出在代理集和代理之间的差异上。报告turtles-on
返回一个海龟集,其中可以有任意数量的海龟。即使恰好返回一只乌龟,它也会以一组一只乌龟而不是一只乌龟的形式返回它。另一方面,nobody
是乌龟,而不是乌龟。一套永远不能和乌龟一样。
尝试一下(注意,我也将“ car”更改为“ cars”,以提醒它是一个集合):
ask turtles [
let cars-ahead turtles-on patch-ahead 1
ifelse any? cars-ahead with [heading = [heading] of myself]
[ slow-down-car ]
[ speed-up-car ]
...
]
end