Debugging NetLogo:围绕补丁块创建半月形?

Debugging NetLogo:围绕补丁块创建半月形?,debugging,netlogo,Debugging,Netlogo,我想在我的斑点周围创建一个“半月”(黄色),由半径函数(蓝色)创建 我想我可以简单地用半径值表示蓝色,用半径(值+1)表示黄色。然后将所有黄色面片与中间黑色面片的pycor=0(即,等于或高于中心)的补丁 针对扩展版本进行了修改: to setup-patches ask n-of 5 patches [ ask patches with [pycor >= [pycor] of myself] in-radius 2 [ set pcolor yellow

我想在我的斑点周围创建一个“半月”(黄色),由半径函数(蓝色)创建

我想我可以简单地用
半径值
表示蓝色,用
半径(值+1)
表示黄色。然后将所有黄色面片与中间黑色面片的
pycor

请问,如何将此条件写入代码?还是有更简单的解决办法?谢谢大家!

我的代码:

to setup
      clear-all
      setup-patches
    end

to setup-patches
  ask patch 0 0 [        
    set pcolor red
    ask patches in-radius 2 [
      set pcolor yellow    
    ] 

    ask patches in-radius 1 [  ; put the blue after yellow to be on the top
      set pcolor blue
    ]
  ]
  ask patches with [pcolor = yellow] [
    let ycor_center [pycor] of patch 0 0  ; how to write this condition?
    if [pycor] of patch-here > ycor_center [
        set pcolor green
      ]
  ]
end

请参阅NetLogo编程指南。坐标在开头解释(在代理部分)。当您提到补丁5 3时,您指的是pxcor=5和pycor=3的补丁。也就是说,修补程序0已经位于中心

to setup
      clear-all
      setup-patches
    end

to setup-patches
  ask patch 0 0 [        
    set pcolor red
    ask patches with [pycor >= 0] in-radius 2 [
      set pcolor yellow    
    ] 

    ask patches with [pycor >= 0] in-radius 1 [  ; put the blue on top
      set pcolor blue
    ]
  ]
end
我已经修改了您的代码以使用此事实,并将着色限制为pycor>=0(即,等于或高于中心)的补丁

针对扩展版本进行了修改:

to setup-patches
  ask n-of 5 patches [
    ask patches with [pycor >= [pycor] of myself] in-radius 2 [
      set pcolor yellow
    ]
    ask patches in-radius 1 [
      set pcolor blue
    ]
  ]
end

修补程序的运行代码不仅位于0坐标中

to setup
  clear-all
  setup-patches
end


to setup-patches
  ask n-of 5 patches [
    set pcolor red
  ]
  ask patches with [pcolor = red] [
    let pycor_red pycor           ; create variable refering the position of one patch with pcolor = red
    ask patches with [pycor >= pycor_red] in-radius 2 [
      set pcolor yellow
    ]
    ask patches in-radius 1 [
      set pcolor blue
    ]
  ]
end 
导致:


再次感谢@JenB!;))看我修改过的答案。你永远不需要把补丁变成红色,它只是被用作一个标记(然后它们变成蓝色)。这是一个很好的机会来使用
我自己
,它指的是询问者(在本例中,依次使用5个
n个
补丁),我正在使用我自己的
[pycor]来避免所有变红和分配一个临时变量代码。再次感谢!这太棒了——我确信有更简单的解决方案,我完全忘记了(老实说,我从来没有真正理解过)使用“我自己”。我一定会记住的!