Netlogo 指示将海龟移动到特定位置

Netlogo 指示将海龟移动到特定位置,netlogo,Netlogo,我把海龟圈在墙和障碍物之间,希望它们移动到一个特定的目标点。我每打一个勾,只向海龟转发一个特定的数量。我如何实现这一点来改变海龟的头部? 解释更多 在上图中: 1.一开始就要考虑盒子里所有的海龟 2.你们想让海龟们到达上面的目标点(图中海龟们现在的位置) 3.有障碍物,也就是说,墙之间有一个开口,即图中有间隙的矩形。海龟只需要通过这个缺口。 我是如何尝试的 我使用facexy使海龟面对目标点,并在与墙碰撞后反弹,但在这样做时,盒子最左侧和最右侧的海龟会不断与墙碰撞,因为每次碰撞后,它们再次从f

我把海龟圈在墙和障碍物之间,希望它们移动到一个特定的目标点。我每打一个勾,只向海龟转发一个特定的数量。我如何实现这一点来改变海龟的头部? 解释更多

在上图中: 1.一开始就要考虑盒子里所有的海龟 2.你们想让海龟们到达上面的目标点(图中海龟们现在的位置) 3.有障碍物,也就是说,墙之间有一个开口,即图中有间隙的矩形。海龟只需要通过这个缺口。 我是如何尝试的 我使用facexy使海龟面对目标点,并在与墙碰撞后反弹,但在这样做时,盒子最左侧和最右侧的海龟会不断与墙碰撞,因为每次碰撞后,它们再次从facexy获得方向

请帮忙。提前谢谢。

一个简单的解决方法(根据我读到的关于让海龟弹跳的内容)

  • 目标xcor是目标的x坐标
  • 目标ycor是y坐标 目标
  • 随机数是介于1和10(?)之间的随机数

  • 如果他们在左边让他们
    facexy目标xcor+随机数目标ycor

  • 如果他们在正确的位置让他们
    facexy目标xcor-随机数目标ycor
如果没有任何碰撞,这意味着他们在正确的道路上,他们应该继续朝着目标方向前进

每次你让他们转身时,你都要面对XY目标xcor目标ycor,这一点很重要。更清楚地说:伪代码:

1 setup-turtles-inside-box
  loop:
2 ask all turtles to face goal.
3 ask all turtles to go forward.
4 if collision
5   if turtle-in-left
6       ask turtle to face goal-xcor + random-number goal-ycor
    else
        ask turtle to face goal-xcor - random-number goal-ycor
7 loop until all turtles are in goal.
让我们知道任何疑问

以下是另一种方法:

您的问题不清楚,但您可能希望查看NetLogo字典中的
补丁
标题
。举一个简单的例子,一个简单的算法会让海龟在
patch ahead 1
遇到障碍时设置一个新的随机航向。请现在检查。如果问题的任何部分不清楚,请告知。海龟似乎处于两种状态(盒子内或盒子外)。盒子里的乌龟应该设法出去。跳出禁区的海龟应该努力接近目标。(如果进球可以在禁区后面,你也必须处理这个问题。)
1 setup-turtles-inside-box
  loop:
2 ask all turtles to face goal.
3 ask all turtles to go forward.
4 if collision
5   if turtle-in-left
6       ask turtle to face goal-xcor + random-number goal-ycor
    else
        ask turtle to face goal-xcor - random-number goal-ycor
7 loop until all turtles are in goal.