【问题标题】:Netlogo if and while statements, determining patch color trueNetlogo if 和 while 语句,确定补丁颜色为真
【发布时间】:2020-02-09 22:40:55
【问题描述】:

我正在尝试让它在 while 语句中检测某个位置的补丁是否是某种颜色,这就是我现在拥有的,但它不起作用。

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

因此,在这种情况下,它基本上沿着补丁线垂直运行,当它找到不是颜色 44(深黄色)的补丁时,然后将该补丁更改为 44。

【问题讨论】:

    标签: python netlogo patch


    【解决方案1】:

    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 循环所做的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-04
      • 2015-10-14
      • 1970-01-01
      • 1970-01-01
      • 2016-02-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多