python - Netlogo if 和 while 语句,确定补丁颜色 true

标签 python netlogo patch

我试图做到这一点,以便在 while 语句中检测某个位置的补丁是否是某种颜色,这就是我现在所拥有的,但它不起作用。

while [ patch-at x ytemp with [ pcolor = 44 ] ] [ 设置 ytemp ytemp - 1 ] 询问 patch-at x ytemp [ set pcolor 44 ]

所以基本上,在这种情况下,它会沿着色 block 线垂直运行,当它发现色 block 不是颜色 44(深黄色)时,然后将该色 block 更改为 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 的色 block ,如果有的话,它会选择最接近世界顶部的色 block 进行着色,这就是您的 while 循环会做。

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

相关文章:

python - 解析单引号或双引号并允许使用正则表达式转义字符(在 Python 中)

permutation - 在 Netlogo 中计算组合

netlogo - 总结品种 netlogo

linux - 向文件部分添加一行,除非它存在

python - Python 基本类型的内存使用(尤其是 int 和 float)

python - 列表理解选定的索引

patch - 构建和补丁有什么区别?

magento - 如何应用magento 1 MPERF-1050 9-patch

python - Jinja2 模板 - CSS 不工作

Netlogo 世界坐标