我正在尝试使它在while语句中能够检测到某个位置的色块是否为某种颜色,这是我现在所拥有的,但是它不起作用。

而[用[pcolor = 44]修补x ytemp时] [
   设置ytemp ytemp-1
]
在x ytemp上询问patch [set pcolor 44]

因此,基本上,在这种情况下,它沿着垂直方向沿着补丁行运行,并且当发现不是颜色为44(深黄色)的补丁并将其更改为44时。

最佳答案

您要在while语句中使用的条件是while [ [pcolor] of patch x ytemp = 44 ]。但是您还必须确保,如果x列中的所有色块都被涂上颜色44,就不会遇到麻烦。如果世界被包裹了,您(我认为)将陷入无限循环。如果不是这样,则在测试世界底层的补丁时会出现错误。也许以下可能更安全地做您想做的事情?

let candidates patches with [pxcor = x and pcolor != 44]
  if any? candidates [
    ask max-one-of candidates [pycor] [set pcolor 44]
  ]


它在x列中找到所有未着色44的色块,如果有色块,则选择最接近世界顶部的色块,这就是您的while循环所要做的。

希望这可以帮助,
查尔斯

关于python - Netlogo if和while语句,确定补丁颜色为true,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60142033/

10-11 21:19