我想在模拟中从所有海龟随机生成的距离eps中选择所有补丁,并将其颜色重置为黄色。这基本上在模拟中围绕每只乌龟绘制了一圈补丁。我尝试了一些不同的选择但没有成功。通过仔细阅读这个论坛,我发现一些看起来很有希望但仍有一些问题的代码(在这里发布)。我感谢任何有关调整此代码或使用其他东西来解决此问题的建议。
let eps2 eps
foreach [ eps2 ]
[
ask patches with
[
distance myself > eps2 - 0.5 and
distance myself < eps2 + 0.5
]
[
set pcolor yellow
]
]
eps是一个乌龟变量,因此使用let命令可以避免在补丁上下文中使用乌龟变量。
foreach命令无法识别eps,因为它不是常数,是否有我可以在这里使用的另一个命令?
答案 0 :(得分:1)
您可以使用list
(见下文),但是......为什么要列出清单?目前,没有必要使用列表。
to setup
ca
crt 1
ask turtle 0 [test]
end
to test
let eps2 10
foreach (list eps2 ) ;you can use `list`
[
ask patches with
[
distance myself > eps2 - 0.5 and
distance myself < eps2 + 0.5
]
[
set pcolor yellow
]
]
end
<强>附录:强>
由于您表明您实际上并不需要该列表,因此您可以尝试以下方面的内容:
to test2
ca
crt 1
ask encirclingPatches turtle 0 10 1 [set pcolor yellow]
end
to-report encirclingPatches [#t #dist #width]
let _w2 (#width / 2)
report patches with [
distance #t > #dist - _w2
and
distance #t < #dist + _w2
]
end