具有来自两个不同同名品种的特定龟类变量

时间:2016-10-17 03:43:21

标签: netlogo

我有一个简单的问题。

说我想要两个品种,定义为     品种[人类]     品种[蚊子蚊子] 并希望这些品种具有同名的海龟特定变量 。所以

humans-own
[
  infected
]
mosquitoes-own
[
  infected
]

我想稍后调用该程序(假装已经进行了设置,感染被设置为初始布尔值false),如

to infect
  set infected true
end

。据我所知,它会将蚊子和人类特定的“受感染”变量设置为真,但如果我想这样做会怎么样:

to specific-infect
  if turtles = humans
  [
    set infected true
  ]
  if turtles = mosquitoes
  [
    set infected true
  ]
end

。它会检查乌龟是否是人类,如果是,那么将人类特定的“感染”设置为真,或两者兼而有之?基本上,我要问的是,您是否可以使用同名的特定于龟的变量并使其适用于代码?

谢谢! :)

2 个答案:

答案 0 :(得分:1)

品种当然可以拥有"拥有"具有相同名称的变量,但与一般的乌龟一样,基本上只有一个品种可以改变其中一个变量的值,你需要问它。所以,如果你想为所有人设置感染对真,对所有蚊子设置为假,你可以这样做:

ask humans [set infected true]
ask mosquitoes [set infected false]

或者,对于某些人而言

ask humans with [some characteristic] [set infected true]

同样,您可以让品种中的代理报告其变量的值。

show [infected] of human with [some characteristic]

查看NetLogo原语askofwith以获取一些示例。

希望这有帮助。

答案 1 :(得分:0)

在个别乌龟级别,乌龟知道'自己的品种。所以你可以添加 如果品种=人类[做人类感染的事情] 如果品种= musquitos [做蚊子感染的东西]

Geerten