在Netlogo 6.0.4中创建接收器修补程序



我想在Netlogo中创建两个补丁(或网格中的区域,不要与常规Netlogo补丁混淆(,代表"接收器"one_answers"源"区域。"水槽"补丁是一个可以调整大小的滑块,应该创建一个圆形区域。"源"修补程序是汇点修补程序之外的区域。以下是我用来尝试和实现的代码,它取自Netlogo 5.3.1中使用的类似模型:

to setup
clear-all
crt sink-patch-radius
;; create the 'sink'
set sk1x random-pxcor
set sk1y random-pycor
while [abs(sk1x - min-pxcor) < (sink-patch-radius - 1)
or abs(max-pxcor - sk1x) < (sink-patch-radius - 1)
or abs(sk1y - min-pycor) < (sink-patch-radius - 1)
or abs(max-pycor - sk1y) < (sink-patch-radius - 1) ]
[ set sk1y random-pycor
set sk1x random-pxcor ]

set sink-patches patches with
[(round(distancexy sk1x sk1y)) < sink-patch-radius ]
ask sink-patches [ set pcolor brown + 2 ]

;; create the 'source'
ask patches [
set source-patches patches with [pcolor != brown + 2]]
ask source-patches [ set pcolor green ]

当我这样做时,设置按钮会卡住。它不会设置模型。奇怪的是,这段代码似乎在Netlogo 5.3.1中工作。任何见解都会有所帮助。谢谢

不确定设置按钮卡住的原因。但是您的代码有问题。你有ask patches [ set source-patches ...],这会让每个补丁都能做到。这应该很快,但可能解释了你的粘性问题。

您的代码的此修订版本适用于

to setup
clear-all
let sink-patch-radius 3
crt sink-patch-radius
;; create the 'sink'
let sk1x random-pxcor
let sk1y random-pycor
while [ abs(sk1x - min-pxcor) < (sink-patch-radius - 1)
or abs(max-pxcor - sk1x) < (sink-patch-radius - 1)
or abs(sk1y - min-pycor) < (sink-patch-radius - 1)
or abs(max-pycor - sk1y) < (sink-patch-radius - 1) ]
[ set sk1y random-pycor
set sk1x random-pxcor ]
let sink-patches patches with [(round(distancexy sk1x sk1y)) < sink-patch-radius ]
ask sink-patches [ set pcolor brown + 2 ]
;; create the 'source'
let source-patches patches with [pcolor != brown + 2]
ask source-patches [ set pcolor green ]  
end

但我不知道你为什么要使用while语句,而不是简单地识别接近的补丁。试试这个更容易阅读的版本(注意没有海龟,所以你需要更改它才能把它带回来(

globals [ sink-patches source-patches]
to setup
clear-all
;; create the 'sink'
let sink-patch-radius 3
let sink-centre one-of patches
set sink-patches [patches in-radius sink-patch-radius] of sink-centre
ask sink-patches [ set pcolor brown + 2 ]
;; create the 'source'
set source-patches patches with [pcolor != brown + 2]
ask source-patches [ set pcolor green ]
end

最新更新