引用NetLogo

时间:2016-04-09 11:56:42

标签: list netlogo

所以,我有一份清单清单。有点像:

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; 而不指定列表名称?

提前致谢! :)

1 个答案:

答案 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