如何避免netlogo中海龟之间的碰撞?

问题描述

我正在尝试在 netlogo 中模拟海龟的运动,其中:

1)海龟避免相互碰撞,如果海龟之间的距离太小,它们会相互远离/排斥。

2)海龟也避免与环境中的障碍物发生碰撞。如果障碍物在右边,乌龟向左移动,反之亦然。

到目前为止,我已经能够创建矩形障碍物并随机化海龟的运动。但是我不知道如何编写防撞代码。任何帮助将不胜感激。

非常感谢!

to setup
  clear-all
  reset-ticks
  set-default-shape turtles "bird"
  draw-obstacle
  create-turtles 5                    ;; create some turtles
    [randomise]                       ;; place turtles randomly
  ask turtles
    [ set shape "bird"
      set size 2
      set color green
    ]

end

to draw-obstacle
  ask patches with [pxcor <= 10 and pxcor > 0 and pycor < 0 and pycor >= -5]
  [set pcolor red]
end

to randomise
  setxy random-xcor random-ycor
  if pcolor = red       ; if it's on the obstacle...
    [ randomise ]       ; ...try again
end

to move
  ask turtles
  [
    if-else moveright? [right random 10][left random 10]
    forward random 5
    left 15
  ]

end

to-report moveright?
  report random 5 = 1
end

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)