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
- 及
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]]
即可生成相同大小的斑点。请问,有没有办法不让它们重叠?也许是第一批“核”斑块中的某种“光晕效应”?