问题描述
我正在尝试在NetLogo中创建一个简单的模型,当两只乌龟相遇时,能量最大的一只将所有的精力分配给第二只乌龟。
我设置了命令meet
,例如
to meet
ask turtles[ let candidate one-of turtles-at 1 0
if candidate != nobody [
if [energy] of candidate > energy [
set color [color] of candidate
set energy energy + [energy] of candidate
set [energy] of candidate 0 ;; ISSUE HERE
]
if [energy] of candidate < energy [
set color [color] of candidate ;; ?
set [energy] of candidate [energy] of candidate + energy
set energy 0
]
]
]
因此,我用set energy energy + [energy] of candidate
重设了乌龟(自我)的能量,然后用了set [energy] of candidate 0
,但出现了错误消息:您不能使用“设置”上的。
我该如何在交易期间重置candidate
能量?同样在第二个if
期间,如何将候选颜色设置为(自我)乌龟自己的颜色? (set color [color] of candidate
)
turtles-own[energy]
to setup
clear-all
reset-ticks
setup-patches
setup-turtles
end
to setup-patches
ask patches [
set pcolor gray
]
end
to setup-turtles
create-turtles 20
ask turtles[
set shape "wolf"
set size 2
set color one-of base-colors
setxy random-xcor random-ycor
set energy 10 + random 30
]
end
to go
if max [energy] of turtles < 1 [ stop]
tick
move
meet
end
to move
ask turtles[ fd 1 right random 360 ]
end
to meet
ask turtles[ let candidate one-of turtles-at 20 0
if candidate != nobody [
if [energy] of candidate > energy [
set color [color] of candidate
set energy energy + [energy] of candidate
set [energy] of candidate 0 ;; HERE ISSUE
]
if [energy] of candidate < energy [
set color [color] of candidate
set [energy] of candidate [energy] of candidate + energy
set energy 0
]
]
]
end
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)