所以,我有一份清单清单。有点像:
set plist [(list patch-at 0 0 100) (list patch-at 20 20 70) ...]
因此,结果列表是" patch,number" 对的列表。我需要做的是在 plist 上执行 foreach ,对于该列表中的每个列表,我想减少数量,让我们说& #34;去" 功能。所以每一个滴答,我希望数字少一个。
我没有想到达到这个数字的方法。我有一个代码 go ,问龟[] :
foreach listp [
set item 1 ??? item 1 ??? - 1
if item 1 ??? <= 0 [remove ??? listp]
]
其中 ??? 是我不知道的列表名称(嵌套列表)。显然,我想要做的是在100个滴答之后从列表中删除补丁。
有没有办法引用这些列表,或以某种方式调用&#34;设置项目1&#34; 而不指定列表名称?
提前致谢! :)
答案 0 :(得分:2)
turtles-own [plist]
to setup ;;create an initialize some turtles
ask n-of 10 patches [
sprout 1 [
set plist (list (list patch-at 0 0 100) (list patch-at 20 20 70))
]
]
end
to go ;;update the `plist` of each turtles
ask turtles [
set plist map [list first ? (last ? - 1)] plist
set plist filter [last ? > 0] plist
]
end