我为红色汽车编写算法,右转方向从右到开(航向= 90)朝向航向= 180。 但它的车右转,也一样。它是如何达到一定程度的,它首先转向了标题180
我尝试了一些没有正确结果的代码? [
ifelse heading = 90
[
if distancexy 0 0 < 30
[
rt 22
fd speed
if xcor = -2
[
set heading 180
fd speed
]
]
]
[
fd speed
]
或者我写这样的代码?
ifelse heading = 90
[
if distancexy 0 0 < 30
[
rt 22
fd speed
if ycor = -30
[
set heading 180
fd speed
]
]
]
[
fd speed
]
答案 0 :(得分:1)
您使用的是xcor = -2
和ycor = -30
等确切条件,但这些条件可能永远不会成立。
NetLogo乌龟移动不顺畅。他们从一点到另一点跳跃。想象一下,乌龟从它的旧位置消失并重新出现在它的新位置。乌龟不会穿过它们之间的所有点。
例如,假设您的乌龟的xcor为-2.2且面向东方。如果乌龟fd 1
,它的新xcor将为-1.2。但这并不意味着代表xcor = -2
的代码会运行。乌龟的xcor永远不会-2。在一瞬间,它是-2.2。在下一瞬间,它是-1.2。所以xcor = -2
永远不会成真。
您可能希望使用像xcor = -2
这样的条件(在整个修补程序中的任何位置都为true)或pxcor = -2
这样的条件,而不是xcor > -3 and xcor < -2
这样的条件。
JenB已经在一周前的https://stackoverflow.com/a/34313275/86485告诉过你。我只是再说同样的话。你理解这一点至关重要。