zoukankan      html  css  js  c++  java
  • 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智商的。

  • 相关阅读:
    【算法】二分图的判定
    【模板】并查集 两种路径压缩写法(类模板和函数模板)
    【模板】堆的结构
    新疆大学OJ(ACM) 1099: 数列有序!
    新疆大学OJ(ACM) 1047: string 字符串排序
    新疆大学(新大)OJ xju 1010: 四个年级 C++ STL map 将4层循环优化成2层循环可解
    新疆大学(新大)OJ xju 1009: 一带一路 prim求最短路径+O(n)素数筛选
    新疆大学(新大)OJ xju 1006: 比赛排名 第二类斯特林数+阶乘
    【算法】第二类斯特林数Stirling
    【复习资料】编译原理中:短语,直接短语,句柄
  • 原文地址:https://www.cnblogs.com/chucklu/p/11275743.html
Copyright © 2011-2022 走看看