Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Debugging NetLogo:斑块森林-保持总面积和斑点大小稳定,不重叠_Debugging_Netlogo - Fatal编程技术网

Debugging NetLogo:斑块森林-保持总面积和斑点大小稳定,不重叠

Debugging NetLogo:斑块森林-保持总面积和斑点大小稳定,不重叠,debugging,netlogo,Debugging,Netlogo,我意识到我的问题只是对问题的轻微修改: 及 但是我不能修改它们来满足我的需要 我需要创造一个错落有致的森林景观。每次设置时,“绿色”斑块的总面积必须相同(占总斑块数的20%,10%),且一个斑点的大小应相同。因此:斑点大小=面积/数量斑点 我建议 to create-forests clear-all ask n-of 1 patches [ set pcolor green ] repeat 6 [ ask one-of patches with [pcolor

我意识到我的问题只是对问题的轻微修改:

但是我不能修改它们来满足我的需要

我需要创造一个错落有致的森林景观。每次设置时,“绿色”斑块的总面积必须相同(占总斑块数的20%,10%),且一个斑点的大小应相同。因此:斑点大小=面积/数量斑点

我建议

to create-forests
  clear-all
  ask n-of 1 patches [ set pcolor green ]
  repeat 6 [
    ask one-of patches with [pcolor = green ] [
      ask one-of neighbors4 with [pcolor = black] [ 
        set pcolor green ]
    ]
  ]
end
应该是答案,因为
n-of 1(blob数量)补丁
I创建所需的blob数量,
blob大小
重复6(blob大小)
的约束。然而,在我的简单示例中,我有一个
错误,要求预期输入为代理或代理集,但没有得到任何人。
显然是因为
带有[pcolor=green]
的补丁之一没有黑色邻居

请问,我如何在我的代码中包含条件
询问[pcolor=green]和[pcolor=black]
的其中一个补丁和至少一个邻居4?
或者有什么不同的方法可以做到这一点?我需要保持我的绿色补丁的总面积不变,补丁大小+-也一样,最好是它们不会重叠。多谢各位

修改为从以下位置生成blob:

to create-forests
  clear-all
  ask n-of 1 patches [ set pcolor green ]
  repeat 6 [
    ask one-of patches with [pcolor = green and any? neighbors4 with [ pcolor = black ] ] [
      ask one-of neighbors4 with [pcolor = black] [ 
        set pcolor green ]
    ]
  ]
end
  • 我的斑点仍然可以重叠,但至少每次跑步的总“面积”是相同的

    to make-blob
      let total_area 500       ;  how patches I want to turn green
      repeat 5 [               ; number of blobs I want to  have
        let blob-maker nobody
        crt 1 [ set blob-maker self     
           setxy random-xcor random-ycor]  ; set random position of "blob-makers"
        repeat 10 [               ; size of one blob (number of patches of the same color close one to another)
        ask blob-maker [
           ask min-one-of patches with [ pcolor = black ] [ distance myself ] [ set pcolor green ]
      rt random 360
      fd 1
    ]
    ]
    ask blob-maker [ die ]
    ]
    end
    
导致


谢谢@BryanHead!您的示例生成不同大小的blob。我只需按照您的建议,将其更改为
ask patches with[pcolor=green,any?neighbors4 with[pcolor=black]]
即可生成相同大小的斑点。请问,有没有办法不让它们重叠?也许是第一批“核”斑块中的某种“光晕效应”?