You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NetLogo按半径为patches上色仅单个像素生效问题排查求助

问题原因

你的go阶段代码逻辑里,满足收入条件后没有主动遍历目标范围内的符合要求的斑块,而是直接执行set pcolor 62,这行代码默认修改的是农户海龟自身的颜色,而不是范围内的斑块颜色,所以只会出现单个像素变色的效果,另外原有逻辑里的if any?判断属于冗余判断,NetLogo对空agentset执行ask操作不会产生异常,无需提前判断是否存在符合条件的斑块。

修正后的go过程代码

to go
  ask cercas [
    ifelse ingresos > 2000000 [
      if ticks mod 3 = 0 [
        ; 选中半径4范围内所有pcolor为35的斑块后批量修改颜色
        ask patches in-radius 4 with [pcolor = 35] [
          set pcolor 62
        ]
      ]
    ]
    []
  ]
end

可选性能优化

可以把ticks mod 3 = 0的判断放到ask cercas的外层,避免每只农户都重复判断时间条件,提升模型运行效率:

to go
  if ticks mod 3 = 0 [
    ask cercas with [ingresos > 2000000] [
      ask patches in-radius 4 with [pcolor = 35] [
        set pcolor 62
      ]
    ]
  ]
  ; 其余go阶段逻辑可写在此处
end

内容的提问来源于stack exchange,提问作者bksnlow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 23:54:04