Netlogo 如何将世界划分为特定大小的区域?
我在建立我的模型时遇到了困难:我试图建立一个农业区,在那里,特定数量的农民拥有不同大小的土地(也是特定的,而不是随机的)。在农民的习俗中,有田地(黄色斑块)和森林(绿色斑块) 下面是一些代码:Netlogo 如何将世界划分为特定大小的区域?,netlogo,patch,Netlogo,Patch,我在建立我的模型时遇到了困难:我试图建立一个农业区,在那里,特定数量的农民拥有不同大小的土地(也是特定的,而不是随机的)。在农民的习俗中,有田地(黄色斑块)和森林(绿色斑块) 下面是一些代码: breed [Smallfarmers Smallfarmer] Smallfarmers-own [property] breed [Mediumfarmers Mediumfarmer] Mediumfarmers-own [property] to setup ca loop [ repeat
breed [Smallfarmers Smallfarmer] Smallfarmers-own [property]
breed [Mediumfarmers Mediumfarmer]
Mediumfarmers-own [property]
to setup
ca
loop [
repeat 50[
create-Smallfarmers 1 [
set property [patches in-radius-nowrap 1.5] of one-of patches with [pcolor = black]
if all? (patch-set [neighbors] of property) [pcolor = black] [
ask n-of 2 property [set pcolor green]
ask property with [pcolor != green] [set pcolor yellow]]]]
repeat 10[
create-Mediumfarmers 1 [
set property [patches in-radius-nowrap 2.9] of one-of patches with [pcolor = black]
if all? (patch-set [neighbors] of property) [pcolor = black] [
ask n-of 6 property [set pcolor green]
ask property with [pcolor != green] [set pcolor yellow]]]]
stop]
end
使用此代码,我遇到以下问题:
- 并非所有的农民都是被创造出来的
- 这些属性漂浮在相隔很远的黑色空间中
如何改进(或彻底革新)我的代码?这有几个不同的问题。第一个是一般的NetLogo位:
,
向我建议,您已将世界包裹起来,但并不真正希望它包裹起来,因为它是陆地,包裹起来没有意义。可以使用界面上的“设置”按钮(右上角)关闭换行,在该按钮中还可以设置世界上的面片数neights
已经是一个补丁集,但我怀疑您也想包括中央补丁breed [farmers farmer]
farmers-own
[ property
]
to setup
clear-all
create-farmers 10
[ let potential-farms patches with [all? (patch-set self neighbors) [pcolor = black]]
ifelse any? potential-farms
[ move-to one-of potential-farms
set property (patch-set patch-here neighbors)
ask n-of 2 property [set pcolor green]
ask property with [pcolor != green] [set pcolor yellow]
]
[ print "No space available" ]
]
end