我有以下代码,我要求一些代理人死:
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
pallet-being-served
和truck-being-served
是托盘和卡车代理商。
问题是内部ask myself [...
似乎不起作用,因为?reader
代理的颜色不会变为绿色。在这里,我不确定我是指我刚刚杀死的?reader
还是truck-being-served
代理人。我想将颜色改为绿色。 ask myself [ ...
是指读者代理吗?
问候。
答案 0 :(得分:2)
要求死龟做某事无效。另外,请提供一个说明问题的最小可运行示例。
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