HearthBuddy中_settings.txt的更详细参数解释

https://tieba.baidu.com/p/5275382967

默认的配置不是很合理,花了点时间读了下silverfish(也就是兄弟用的AI)的代码后也尝试修改了些参数,有没有效果仁者见仁吧。
吧里已有一篇注释翻译,基础请结合那篇的内容看,我补充一点自己对参数的理解和测试结果。

playarround = false;
配置文件单词打错了,AI源码里也打错了,迷。作用是AI防不防AOE,默认是false。本来以为调成true后操作会变好,测试后发现反而打得很迷,保持false就好。

playaroundprob = 50;
playaroundprob2 = 80;
防AOE的参数,测试下来怎么样都不如不防AOE。设置成不防AOE的话这两个参数是没用的,无视就好。

useSecretsPlayArround = false;
防奥秘,同样也是发现设置成false效果打得比较好,默认是true最好改掉。(AI心理战还是玩不过人的啊)

maxwide = 5000;
这个参数影响AI计算的递归深度,应该是最关键的参数之一,理论上越大AI越聪明。默认3000,改到5000或者10000都不会很卡,出牌似乎变好了。(可能是心理作用)这个参数要跟几个参数一起调节,看后面。

twotsamount = 1000;
默认是0,然后只看到EnemyTurnSimulator里引用了能影响斩杀计算,似乎配置文件里面配置没用,运行时会被自动设置成256这个值。
源码中有,
twotsamount = Settings.Instance.secondTurnAmount;
然后,Settings.Instance.secondTurnAmount的值是写死256的。

enemyTurnMaxWide = 40;
enemyTurnMaxWideSecondTime = 200;
maxwide参数的两个变体,作用于对手回合和对手的第二个回合,提高AI递归深度,机器性能好的话可以按比例调高,理论上会变聪明。

nextTurnDeep = 6;
源码注释里面直接就说不要碰这个参数,那我们就不碰了,6就6吧。

nextTurnMaxWide = 20;
看代码里相当于自己下回合的maxwide,影响递归次数,默认值只有20所以可能影响不是很大?我暂时还没尝试调节过这个参数。

nextTurnTotalBoards = 200;
源码里这个参数影响一个循环的次数(在MiniSimulatorNextTurn里),没看得很明白,参数的注释也不是很清楚,建议不要随意调节。

alpha = 50;
分配到当前和第二回合计算的比重,取值1-99(很迷,之前那几个递归深度的参数还不够吗)。第二回合的计算比当前的计算要消耗更多的时间,调大明显感觉得到变卡,机器不好的同学试试把这个调小,但是肯定是会影响AI智商的。

原文地址:https://www.cnblogs.com/chucklu/p/11275743.html