我试图向任何标题(随机360)询问海龟以避免红色斑块。但是,我观察到如果要求一只乌龟移动“fd 1 + random-float 2.0”,那么当前方有红色补丁时,有时海龟会转弯(设定航向标题 - 180),有时(甚至大部分时间)不会转。此外,当我要求海龟移动“fd 1”或“fd 0.1 + random-float 0.9”时,代码工作正常。 希望背后的原因是我要求海龟一步移动的补丁数量。移动的下一个补丁“fd 0.1 + random-float 0.9”我怎么能做这与补丁提前1.我的代码和界面被添加。
to setup
clear-all
ask patches [set pcolor green ]
ask patches with [pycor = 3] [set pcolor red]
create-turtles 40
[
set color blue
set xcor random-pxcor
set ycor random-pycor
set heading random 360
set size 1
set speed 1 + random-float 2.0
]
end
to go
ask turtles [
fd speed
avoid-walls
]
end
to avoid-walls
if [pcolor] of patch-ahead 1 = red [set heading heading - 180]
end
答案 0 :(得分:3)
Try using in-cone而不是预先补丁
to avoid-walls
let front-patches patches in-cone 2 75
if pcolor of one-of front-patches = red [set heading heading - 180]
end