如何创建具有多个级别的变量并关联到 NetLogo 中的不同海龟配置文件?

How to create variables with several levels and associate to different turtle profiles in NetLogo?

我被一段代码卡住了。有人可以帮我吗?

问题是:我有 31 个海龟剖面图(从一只海龟到另一只海龟是不同的,这是你放置“巢穴”的地方,可以将巢穴放置在任何类型的地面覆盖物中,然后还有更多变化。只在特定栖息地类型中放置“巢穴”的专家。

但是这些配置文件中的每一个都有 2 个参数,它们是:新陈代谢(具有 3 个级别 = 3 个值)和生殖能量(也具有 3 个级别 = 3 个值)。即:

新陈代谢: -1级 -2级 -3级

再生能量: -1级 -2级 -3级

所以我希望 31 个海龟配置文件中的每一个都具有这 2 个参数和这 3 个级别。例如:

配置文件 1: 代谢: -1级 -2级 -3级 再生能量: -1级 -2级 -3级

重点是要用这3个值创建2个参数,我创建了一个代码如下:

turtles-own [ energy-reproduction metabolism ] 

to setup
ask turtles [
    let a2 random-float 1.01
    (
      ifelse
      a2 <= 0.33
      [
        set energy-reproduction 5
      ]
      a2 > 0.33 and a2 <= 0.66
      [
        set energy-reproduction 25
      ]
      a2 > 0.66
      [
        set energy-reproduction 50
      ]
    )
  ]

  ask turtles [
    let a3 random-float 1.01
    (
      ifelse
      a3 <= 0.33 [
        set metabolism 2
      ]
      a3 > 0.33 and a3 <= 0.66
      [
        set metabolism 8
      ]
      a3 > 0.66
      [
        set metabolism 16
      ]
    )
  ]
end

重点是,对于配置文件 1,乌龟可能有:1 个新陈代谢为 3 的菌落和两个新陈代谢为 2 的菌落,none 新陈代谢为 1。这个想法是所有 31 个配置文件都有2 个参数(即繁殖和新陈代谢的能量)中的每一个的 3 个级别中的每一个。我该怎么做?

如有任何帮助,我将不胜感激。

如果我没理解错的话,你想在至少一只海龟中使用任何可能的参数级别组合。这是一个关于如何为每个参数组合创建一个海龟的示例,通过接口输入 var1、var2、var3:

to go
  let list1 [green red blue]
  let list2 (list var1 var2 var3)
  foreach list1 [ item1 -> 
    foreach list2 [ item2 -> 
      crt 1 [
        set color item1
        set size item2
        setxy random-xcor random-ycor
      ]
    ]
  ]
end