Netlogo:如何在多个补丁中询问其中一只乌龟?
Netlogo: How can I ask one of the turtles in multiple patches?
如何在多个补丁中询问其中一只乌龟?
我想 select 指定补丁中的一只海龟。
(或者我想问指定单元格范围内的一只乌龟)
例如,我想使用以下语法:但是它不起作用。
ask turtles-on patch (1, 0) or (2, 0) or (3, 0)
move-to patch max-pxcor 1
或
ask turtles with [(50 0) < max-pxcor]
move-to patch max-pxcor 1
您的第一个问题是识别补丁的方式。例如,"patch (0, 1)" 的正确形式是 patch 0 1
- 没有括号也没有逗号。您在代码的 move-to
位中正确使用了此语法。
要使第一个版本正常工作,您需要创建一个补丁集,然后 select 从中创建补丁集:
ask turtles-on (patch-set patch 1 0 patch 2 0 patch 3 0)
[ move-to patch max-pxcor 1
]
我不太确定你的逻辑在第二个版本上是什么,因为你正在比较(某种程度上)一个数字和另一个数字。即使语法正确,它也可能对所有海龟为真或对所有海龟为假。根据您的第一个示例,我怀疑您希望海龟查看自己的补丁,并且如果 pxcor < 50 且 pycor 为 0,则您希望它们移动。那将是:
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
。
如何在多个补丁中询问其中一只乌龟? 我想 select 指定补丁中的一只海龟。 (或者我想问指定单元格范围内的一只乌龟) 例如,我想使用以下语法:但是它不起作用。
ask turtles-on patch (1, 0) or (2, 0) or (3, 0)
move-to patch max-pxcor 1
或
ask turtles with [(50 0) < max-pxcor]
move-to patch max-pxcor 1
您的第一个问题是识别补丁的方式。例如,"patch (0, 1)" 的正确形式是 patch 0 1
- 没有括号也没有逗号。您在代码的 move-to
位中正确使用了此语法。
要使第一个版本正常工作,您需要创建一个补丁集,然后 select 从中创建补丁集:
ask turtles-on (patch-set patch 1 0 patch 2 0 patch 3 0)
[ move-to patch max-pxcor 1
]
我不太确定你的逻辑在第二个版本上是什么,因为你正在比较(某种程度上)一个数字和另一个数字。即使语法正确,它也可能对所有海龟为真或对所有海龟为假。根据您的第一个示例,我怀疑您希望海龟查看自己的补丁,并且如果 pxcor < 50 且 pycor 为 0,则您希望它们移动。那将是:
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
。