我为红色汽车写算法向右转,方向从右到开(航向= 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
]
最佳答案 您正在使用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这样的条件,你可能想要使用像pxcor = -2这样的条件(在整个补丁中的任何地方为真)或xcor> -3和xcor< -2 – 那种事. JenB已经在一周前的https://stackoverflow.com/a/34313275/86485告诉过你.我只是再说同样的话.你理解这一点至关重要.