颜色补丁的半径 Netlogo

Color a radius of patches Netlogo

我想展示一个修炼过程。在设置过程中,我创建了农民并给了他们一个随机的农场大小(带有斑点),然后,我告诉他们,如果他们有足够的钱,他们附近所有斑点的斑块都会变成绿色,代表耕种。但它只是改变了一个像素而不是整个像素。它通常很小,但我看不到。先谢谢您的帮助 .

breed [cercas cerca]
breed [medios medio]
breed [lejos lejo]

patches-own[calidad 
  cercanialago
  cultivado
]
turtles-own [ingresos
  gastos] 
create-cercas 10 + random 10
 
 [ set size 1        ;; easier to see
    set color 135
setxy random xcor random ycor
move-to one-of patches with [not any? other turtles in-radius 3 and pcolor = 57]
    set heading random 45 + 45
    set ingresos 1000000 + random 6000000
   
 ]  
  
ask turtles
  [ ask patches in-radius (1 + random 3)    
    [ set pcolor 35 ] ]



to go
  
  ask cercas [
    ifelse ingresos > 2000000 [if any? patches in-radius 4 with [pcolor = 35] [if ticks mod 3 = 0 [set pcolor 62]  ]]
      []
  ] ```

你的 cercas 是一种海龟。

NetLogo 的一个有用的特性是任何海龟都可以直接读取和修改它所在的补丁的变量(即不需要调用这样的补丁)。

所以当你要求海龟 set pcolor 62 时,它会自动引用它所在补丁的 pcolor

如果我们从您的最后一个命令块中消除所有条件,我们有: ask cercas [set pcolor 62]。这就是您要 cercas 做的事情:只需更改 pcolor 他们所在的补丁。

在第一个 if 语句的条件中使用 patches in-radius 4 的事实不会影响 ask cercas [set pcolor 62] 部分。条件是一回事,条件成立时执行的命令是另一回事。

因此你应该制作 cercas ask patches in-radius 4 来改变它们的颜色。