您的第一个问题是您识别补丁的方式。例如,“patch (0, 1)”的正确形式是patch 0 1 - 没有括号也没有逗号。您在代码的 move-to 位中正确使用了此语法。
要使第一个版本工作,您需要创建一个补丁集,然后从中选择:
ask turtles-on (patch-set patch 1 0 patch 2 0 patch 3 0)
[ move-to patch max-pxcor 1
]
我不太确定您在第二个版本中的逻辑是什么,因为您正在将一个数字与另一个数字进行比较(某种程度)。即使你的语法是正确的,它对所有海龟都是正确的,或者对所有海龟都是错误的。根据您的第一个示例,我怀疑您希望海龟查看自己的补丁,如果 pxcor
ask turtles with [pxcor < 50 and pycor = 0]
[ move-to patch max-pxcor 1
]
如果您希望海龟在行中具有所有补丁(不仅仅是最多 50 个补丁),那么您可以这样做:
ask turtles with [pycor = 0]
[ move-to patch max-pxcor 1
]
请注意,第二个和第三个示例使用海龟自动访问它所在的补丁所拥有的变量这一事实。
请注意,如果您只想要其中一只海龟(如您在文本中所说,而不是在示例代码中所说),那么您需要 ask one-of turtles 而不是 ask turtles。