根据if语句复制turtle变量



我正在为捕食者-猎物系统构建一个模型,并在捕食者中引入一个小型的基本机器学习内部模型。

捕食者有4种策略(strat是变量(,在一天开始时,他们选择一个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

我想让捕食者评估他们是否在给定的strat下进行了良好的狩猎,然后选择之前最适合他们的strat,如果没有最好的strat则简单地随机选择一个。

strat是从策略列表中选择的变量("strat1"strat2"strat3"strat4"(

除了我的代码,如果狩猎成功,我会在一天结束时将当前strat复制到最佳strat之外,其他一切都在工作。目前它设置为"假",所以我想是有什么东西坏了。

问题就在这里:

[set best-strat best-strat = strat]

线路应为

[set best-strat strat]

为了解释您得到的错误,best-strat = strat是一个产生truefalse的逻辑表达式。因此,根据best-strat是否等于stratset best-strat (best-strat = strat)(添加括号(将把最佳strat设置为truefalse

最新更新