根据 if 语句复制 turtle 变量
Copy turtle variable depending on if statement
我正在为捕食者猎物系统构建一个模型,并且我正在将一个小型基本机器学习内部模型整合到捕食者中。
捕食者有 4 种策略(strat 是变量),在一天开始时他们 select 一个 strat 并且在每天结束时他们检查他们是否使用该 strat 成功狩猎。
我有另一个名为 best-strat 的捕食者拥有的变量,我想从上次成功的 strat 中复制它
我的代码如下
to recall-hunts
if ticks = 98 [ifelse hunt-today = 1 [set last-hunt "success"] [set last-hunt "failure"]]
end
to evaluate-hunt
if ticks = 99 [if last-hunt = "success" [set best-strat best-strat = strat]
if last-hunt != "success" [set strat one-of strategies]
stop]
end
to strategy
if ticks = 1 [ifelse best-strat = "NA" [set strat one-of strategies] [set strat strat = best-strat]]
stop
end
我希望捕食者评估他们是否使用给定的策略进行了良好的狩猎,然后 select 之前最适合他们的策略,如果没有最好的策略,那么只需随机选择一个。
strat 是来自策略列表的 select 个变量 ("strat1" "strat2" "strat3" "strat4")
除了我的代码外,如果狩猎成功,我的代码会在一天结束时将当前策略复制到最佳策略,其他一切正常。目前它设置为 "false" 所以我猜有些东西坏了。
问题出在这里:
[set best-strat best-strat = strat]
该行应该是
[set best-strat strat]
为了解释您遇到的错误,best-strat = strat
是一个产生 true
或 false
的逻辑表达式。因此 set best-strat (best-strat = strat)
(添加的括号)会将 best-strat 设置为 true
或 false
,具体取决于 best-strat
是否等于 strat
.
我正在为捕食者猎物系统构建一个模型,并且我正在将一个小型基本机器学习内部模型整合到捕食者中。
捕食者有 4 种策略(strat 是变量),在一天开始时他们 select 一个 strat 并且在每天结束时他们检查他们是否使用该 strat 成功狩猎。
我有另一个名为 best-strat 的捕食者拥有的变量,我想从上次成功的 strat 中复制它
我的代码如下
to recall-hunts
if ticks = 98 [ifelse hunt-today = 1 [set last-hunt "success"] [set last-hunt "failure"]]
end
to evaluate-hunt
if ticks = 99 [if last-hunt = "success" [set best-strat best-strat = strat]
if last-hunt != "success" [set strat one-of strategies]
stop]
end
to strategy
if ticks = 1 [ifelse best-strat = "NA" [set strat one-of strategies] [set strat strat = best-strat]]
stop
end
我希望捕食者评估他们是否使用给定的策略进行了良好的狩猎,然后 select 之前最适合他们的策略,如果没有最好的策略,那么只需随机选择一个。
strat 是来自策略列表的 select 个变量 ("strat1" "strat2" "strat3" "strat4")
除了我的代码外,如果狩猎成功,我的代码会在一天结束时将当前策略复制到最佳策略,其他一切正常。目前它设置为 "false" 所以我猜有些东西坏了。
问题出在这里:
[set best-strat best-strat = strat]
该行应该是
[set best-strat strat]
为了解释您遇到的错误,best-strat = strat
是一个产生 true
或 false
的逻辑表达式。因此 set best-strat (best-strat = strat)
(添加的括号)会将 best-strat 设置为 true
或 false
,具体取决于 best-strat
是否等于 strat
.