NetLogo:我可以写一个语法,允许一只乌龟死亡,一只新乌龟在一个刻度内同时跳入同一个特定补丁吗?

NetLogo:我可以写一个语法,允许一只乌龟死亡,一只新乌龟在一个刻度内同时跳入同一个特定补丁吗?,netlogo,Netlogo,我可以控制在一个特定的补丁(最大pxcor 0)中死一只海龟,然后在一个滴答时间内同时跳另一只海龟到一个特定的补丁(最大pxcor 0)中吗?我想保留规则特定补丁(max pxcor 0)是一种只能存在一个海龟的情况(此规则已在另一种情况下解决。因此,此语法中省略了示例代码)。下面是示例语法的一部分,但它不起作用。在这种语法的情况下,海龟不能在一个滴答的时间内同时死亡和移动。这感觉就像乌龟已经死了,并在2个滴答声内移动,否则。迁移到语法是否会导致此问题 if (count turtl

我可以控制在一个特定的补丁(最大pxcor 0)中死一只海龟,然后在一个滴答时间内同时跳另一只海龟到一个特定的补丁(最大pxcor 0)中吗?我想保留规则特定补丁(max pxcor 0)是一种只能存在一个海龟的情况(此规则已在另一种情况下解决。因此,此语法中省略了示例代码)。下面是示例语法的一部分,但它不起作用。在这种语法的情况下,海龟不能在一个滴答的时间内同时死亡和移动。这感觉就像乌龟已经死了,并在2个滴答声内移动,否则。迁移到语法是否会导致此问题

      if (count turtles-on patch max-pxcor 0 = 1)[
      ask turtles-on patch max-pxcor 0 [ die ]]
      ask turtles-on patch (max-pxcor - 1) 0 [
      move-to patch max-pxcor 0 ]
      tick

这是重新定位括号的代码,以便查看逻辑块

if (count turtles-on patch max-pxcor 0 = 1)
[ ask turtles-on patch max-pxcor 0
  [ die
  ]
]
ask turtles-on patch (max-pxcor - 1) 0
[ move-to patch max-pxcor 0
]
tick
对你的问题的描述很难理解。你认为海龟是以不同的方式移动的。你的代码不能这样。但我可以看到一些事情可能是错误的

从代码来看,我认为你可能在最后一个补丁上得到了很多海龟。如果这就是问题所在,那么发生这种情况的原因是,无论
If
条件如何,您都会在最后一个补丁上移动海龟。移动海龟的
ask
不在括号内

另一个潜在问题是,只有当海龟的数量正好等于1时,
if
条件才会运行。一旦你在最后一个补丁上有超过1只海龟,没有海龟会死亡,它们会继续移动到最后一个补丁上

结合起来,这能解决问题吗

if (count turtles-on patch max-pxcor 0 >= 1)  ; changed the = to >=
[ ask turtles-on patch max-pxcor 0
  [ die
  ]
  ask turtles-on patch (max-pxcor - 1) 0     ; moved this inside the [ ]
  [ move-to patch max-pxcor 0
  ]
]
tick

谢谢你的建议。我的问题是,我提问的方式复杂而不清楚,我不能给出所有完整的代码。尚未达成完整的解决方案,但我从您的建议中收到了一些提示。特别是,if条件语句中海龟数为1的条件太强。max pxcor 0坐标位于世界边界上。你知道与其他细胞相比,这个细胞需要特别的考虑才能阻止或入侵海龟吗?在世界边界进入这些细胞没有什么特别的。显然,海龟只能沿着边界或远离边界离开该细胞,它们到达边界后不能继续前进。