Netlogo 模拟环形交叉口中的交通

Netlogo 模拟环形交叉口中的交通,netlogo,Netlogo,我写了红色汽车右转的算法,方向是从右行驶(航向=90)到航向=180。 但是它的车右转,也往前走。在某种程度上,它首先转向航向180 我尝试了一些没有正确结果的代码? [ ifelse标题=90 [ 如果距离XY 0小于30 [ rt 22 fd速度 如果xcor=-2 [ 设置标题180 fd速度 ] ] ] [ fd速度 ] 还是我写这样的代码 ifelse heading = 90 [ if distancexy 0 0 < 30 [ rt 22

我写了红色汽车右转的算法,方向是从右行驶(航向=90)到航向=180。 但是它的车右转,也往前走。在某种程度上,它首先转向航向180

我尝试了一些没有正确结果的代码? [

ifelse标题=90
[
如果距离XY 0小于30
[
rt 22
fd速度
如果xcor=-2
[
设置标题180
fd速度
]
]
]
[
fd速度
]
还是我写这样的代码

ifelse heading = 90 
  [
    if distancexy 0 0 < 30
    [
      rt 22
      fd speed
      if ycor = -30
      [
        set heading 180
        fd speed
      ]
    ]

  ]
  [
    fd speed
  ]
ifelse标题=90
[
如果距离XY 0小于30
[
rt 22
fd速度
如果ycor=-30
[
设置品目180
fd速度
]
]
]
[
fd速度
]

您使用的是精确的条件,如
xcor=-2
ycor=-30
,但这些条件可能永远不会成立

NetLogo海龟移动不平稳。它们从一个点跳到另一个点。想象一下,海龟从原来的位置消失,然后重新出现在新的位置。海龟并没有通过这两个点之间的所有点

例如,假设你的乌龟有一个-2.2的xcor,并且朝东。如果乌龟有
fd1
,它的新xcor将是-1.2。但这并不意味着说
xcor=-2
的代码将运行。乌龟的xcor从来都不是-2。在一瞬间,它是-2.2。在下一瞬间,它是-1.2。所以
xcor=-2
从来都不是真的

您可能希望使用诸如
pxcor=-2
(在整个补丁中的任何地方都是如此)或
xcor>-3和xcor<-2
之类的条件,而不是像这样的条件

JenB已经在一周前的一次会议上告诉过你这件事了。我只是再说一遍同样的话。你明白这一点至关重要

ifelse heading = 90 
  [
    if distancexy 0 0 < 30
    [
      rt 22
      fd speed
      if ycor = -30
      [
        set heading 180
        fd speed
      ]
    ]

  ]
  [
    fd speed
  ]