Netlogo 改变自己的颜色

Netlogo 改变自己的颜色,netlogo,Netlogo,我有下面的代码,我要求一些特工去死: breed [ readers reader ] breed [ pallets pallet ] breed [ trucks truck ] readers-own [ truck-being-served pallet-being-served ] to complete-service [ ?reader ] ask ?reader [ ask pallet-being-served [ die ] set

我有下面的代码,我要求一些特工去死:

breed [ readers reader ]
breed [ pallets pallet ]
breed [ trucks truck ]

readers-own [ 
  truck-being-served 
  pallet-being-served ]

to complete-service [ ?reader ]
  ask ?reader [
      ask pallet-being-served [ die ]
      set pallet-being-served nobody
      ask truck-being-served [
        if not any? pallets-in-truck [ 
          ask self [ die ]
          ask myself [
            set truck-being-served nobody
            set color green
            set next-completion-time 0
          ]
        ]
      ]
  ] 
end
其中提供的
托盘
卡车
是托盘和卡车代理商。 问题是内在的
问我自己[…
它似乎不起作用,因为
?阅读器
代理的颜色没有变为绿色。在这里,我不确定我是指
?阅读器
,还是指我刚刚杀死的
正在服务的卡车
代理。我想把颜色变为绿色。
问我自己[…
指的是读卡器代理


问候。

让一只死乌龟做点什么没有效果。另外,请提供一个最简单的例子来说明你的问题

globals [next-completion-time]
breed [ readers reader ]
breed [ pallets pallet ]
breed [ trucks truck ]

readers-own [ 
  truck-being-served 
  pallet-being-served ]

trucks-own [pallets-in-truck]

to setup
  ca
  create-readers 1
  create-trucks 1
  create-pallets 1
  ask reader 0 [set truck-being-served truck 1]
  ask truck 1 [set pallets-in-truck pallets]
  ask reader 0 [set pallet-being-served one-of [pallets-in-truck] of truck 1]
end

to complete-service ;reader proc
  ask pallet-being-served [ die ]
  ask truck-being-served [
    if not any? pallets-in-truck [  
      ask myself [
        set color green
        set next-completion-time 0
      ]
      die
    ]
  ]
end

to test
  setup
  ask reader 0 [complete-service]
end

要求一只死乌龟做某事没有效果。另外,请提供一个最小的可运行的例子来说明你的问题

globals [next-completion-time]
breed [ readers reader ]
breed [ pallets pallet ]
breed [ trucks truck ]

readers-own [ 
  truck-being-served 
  pallet-being-served ]

trucks-own [pallets-in-truck]

to setup
  ca
  create-readers 1
  create-trucks 1
  create-pallets 1
  ask reader 0 [set truck-being-served truck 1]
  ask truck 1 [set pallets-in-truck pallets]
  ask reader 0 [set pallet-being-served one-of [pallets-in-truck] of truck 1]
end

to complete-service ;reader proc
  ask pallet-being-served [ die ]
  ask truck-being-served [
    if not any? pallets-in-truck [  
      ask myself [
        set color green
        set next-completion-time 0
      ]
      die
    ]
  ]
end

to test
  setup
  ask reader 0 [complete-service]
end

谢谢。我想这是我的错误。我问自己,可能我指的是正在服务的
卡车
。我想更改读卡器代理的颜色,但在
内,请询问正在服务的卡车[…
。再看一眼,我认为我理解了你的解决方案。非常感谢,你是对的。谢谢。我认为这是我的错误。我问自己,可能我指的是
正在服务的卡车
。我想更改读卡器代理的颜色,但在
中,请询问正在服务的卡车[…
。再看一眼,我想我理解了你的解决方案。非常感谢,你是对的。如果你不确定你指的是什么乌龟(大概是用
self
语句)-最简单的调试方法是在
ask self
代码块中使用
print
语句。
ask self
永远不适合在NetLogo中写入。您始终可以替换
ask self[foo]
仅使用
foo
,它们的意思总是完全相同。如果你不确定你指的是什么海龟(大概是用
self
语句)-最简单的调试方法是在
ask self
代码块中使用
print
语句。
ask self
永远不适合在NetLogo中写入。您可以始终将
ask self[foo]
替换为
foo
,它们的含义总是完全相同的。