在 NetLogo 中为一只海龟分配多个数字

Assign multiple numbers to one turtle in NetLogo

对于我正在学习的课程,我必须设计某种 AI,它可以在给定的 'terrain' 中导航,其中包含敌人(造成伤害)、朋友(降低伤害)、障碍物(减少能量)和站(增加能量)。

在我进行实际的 AI 部分之前,我想按顺序了解底层点系统。我的问题是;是否可以在 1 只乌龟上显示 2 个数字?我想展示机器人的伤害和能量。

The energy part looks like the following:

to hit-station
   ask robots  
    [ if pcolor = green 
    [ set pcolor black set energy (energy + energy-from-station) ]
          ifelse show-energy?
          [ set label energy ]
          [ set label "" ]
]
end

现在这很好用了,因为我做了一个开关来显示能量。当我想为损坏添加一个数字时,问题就出现了。我也为此做了一个切换,代码部分如下所示:

    to hit-obstacle
      ask robots 
      [ if pcolor = red 
      [ set pcolor black set energy (energy + energy-from-obstacles) ] 
           ifelse show-damage?
           [ set label damage ]
           [ set label "" ]
]
end

我没有收到错误消息,但损坏似乎没有显示(损坏代码部分在能量代码部分下方)。 这可能吗?有没有办法为数字分配不同的颜色?

非常感谢,

J.V.

使用turtles-own,您可以为海龟指定任意多的属性。但是一只海龟的标签只能有一个值。如果你的乌龟既找到了车站又找到了障碍物,你必须决定要发生什么。您可以显示能量,或显示损坏,或显示包含两者的标签。根据上面的代码,请注意您从未设置 damage(仅 energy),因此当报告 damage 时,您可能只是看到了 0 标签。