如何让龟在前面的补丁1中避免使用特定颜色的补丁,但是在NetLogo中,海龟在一步中向前移动更大的数字(不是fd 1)

时间:2016-06-13 18:56:03

标签: netlogo

我试图向任何标题(随机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.我的代码和界面被添加。

enter image description here

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

1 个答案:

答案 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