【问题标题】:Asking Turtle to evaluate color of different breed of Turtle让海龟评估不同品种海龟的颜色
【发布时间】:2015-11-14 18:40:52
【问题描述】:

我正在为捕食者模型构建交互。

我有一个猎物,它会根据它当前所处的状态改变颜色。我正在处理的状态是“隐藏”,其中猎物是黄色的。我有一个捕食者正在评估它是否可以追逐猎物,我试图通过评估猎物的颜色来做到这一点,但它似乎不起作用。

to chase
  let target min-one-of prey [distance myself]
  output-print target
  ifelse target != yellow 
  [

     output-print "chase"
  ]
  [
    output-print "ignore"
  ]
end

当我运行模型时,捕食者不断打印“追逐”——无论猎物是否“隐藏”。

这里是隐藏功能。

to hiding
  set color yellow
  set energy (energy - 1)
  if (count predators = 0)
[
  output-print "safe"
]
end

任何帮助将不胜感激。

【问题讨论】:

    标签: netlogo agent-based-modeling


    【解决方案1】:

    要访问颜色(或代理的任何其他变量),请将变量名称括在括号中并使用“of”

    [color] of target
    

    在您的代码上下文中,它看起来像这样

     to chase
     let target nearest-of prey
     output-print target
     ifelse [color] of target != yellow 
     [
    
      output-print "chase"
     ]
     [
     output-print "ignore"
     ]
    

    结束

    这需要一些时间来适应,因为它与“C”风格语言使用的 object.variable 形式完全不同。

    【讨论】: