将 patch-own 变量复制到 turtle-own

Copying patch-own variable to turtle-own's

在下面的代码中,当我打印变量 regime 时,我得到 "A" 或 "D",但是当我打印 regimep 或 regimec 时,我得到 ["A"] 或["D"].

相关代码为:

patches-own [
regimep
]

governments-own [
regime
]

citizens-own [
regimec
]
...

to set-governments
  ask governments [
  ...
  ifelse random 100 < democracies% [set regime "D"] [set regime "A"]
  ifelse regime = "D" [set shape "star"] [set shape "circle"]
  ...
  ]
end

to set-citizens
  ask citizens [
    let x governments with [idgov = [idcit] of myself] ;; idgov is a variable of the breed governments and idcit is a variable for citizens
     set regimec [regime] of x
    ]
end

to set-patches
  ask patches [
    let x governments with [idgov = [idpat] of myself]
    set regimed [regime] of x
  ]
end

这些括号是从哪里来的?我需要能够在没有括号的情况下打印变量。 谢谢你的帮助。

括号是因为你的变量是一个列表而不是单个元素。

let x governments with [idgov = [idpat] of myself]
set regimed [regime] of x

governments with [idgov = [idpat] of myself]是一个agent set.That也就是说,x也是一个agent set。

For an agentset, of reports a list that contains the value of the reporter for each agent in the agentset (in random order).

我认为您希望 x 成为单个代理。

试试这个

let x one-of governments with [idgov = [idpat] of myself]
set regimed [regime] of x

同样,regimec也有同样的问题。