三国杀3v3吧
取消
取消
tieba_log
贴吧App 随时随地开启逗比模式
立即打开
tieba_log
贴吧App 更多精彩评论等你互动
立即打开
打开贴吧
跳页弹窗img立即启动
跳页弹窗img立即启动
  • 【数据贴】AI模拟暖标洛
    头像
    数字同学0825 13
    2018-6-21
    只看楼主
    1L 献师傅,高考加油@ljzhalcyon
    62
  • 头像
    数字同学0825 13 楼主
    2018-6-21
    好了,正题开始
    关键字:AI模拟 三国杀 编程 暖标洛
  • 头像
    数字同学0825 13 楼主
    2018-6-21
    1.编写AI模拟暖标洛(左甄姬诸葛瑾司马懿),司马懿启动到甄姬回合结束,记录各项作用。
    2.游戏环境
    暖色自然摸牌,无冷主压制,无无懈,不考虑回合外武将技。
    司马懿先动,牌序以最大过牌和最大输出为参考,无关的牌,如桃等不考虑。
    3.游戏流程
    司马懿回合
    过牌,五谷无中包括红顺
    处理黑顺手(黑顺手的新牌影响后面的判断结果)
    保留黑装备
    统计黑牌少于3,结束
    大于3,保存黑杀、雷杀、酒、无懈、借刀的数量
    继续使用拆乐兵南蛮决斗,无优先级
    开始洛神
    诸葛瑾手牌按黑红排序
    诸葛瑾黑牌先改
    红牌明哲,司马懿改判
    诸葛瑾黑牌继续改
    红牌明哲/无牌结束,司马懿改判
    结束洛神,摸2牌
    甄姬回合
    甄姬过牌,出牌
    统计能力
  • 头像
    数字同学0825 13 楼主
    2018-6-21
    5.数据 & 结论
    数据部分,10 000次模拟的数据。跑了47分钟真是骗个经验也不容易

    其中
    % 1顺手 期望
    % 2过拆 期望
    % 3兵粮 期望
    % 4乐不 期望
    % 5决斗&火攻 总期望
    % 6AOE 期望
    % 7是否出弩/出弩率
    % 8总输出点数(对单个目标) = 决斗&火攻 + AOE + 杀(包括连弩和酒,但不包括其他人的伤害)
    % 9有效过牌 = 起手6+5+6,使用出的五谷无中顺铁索,洛神的牌以及诸葛瑾明哲的牌,但不包括失效的红判定牌
    % 10出乐率 = 出乐局数/总局数
  • 头像
    数字同学0825 13 楼主
    2018-6-21
    这是输出频率分布图(这个名字应该没错吧),100000次模拟里面,能打出输出点数的统计
    中间那个1、3、5、7不知道怎弄出来,凑合着看
  • 头像
    数字同学0825 13 楼主
    2018-6-21
    excel版

    数字共享版
    0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
    6 3509 14159 22361 20328 15357 11324 7415 3762 1367 326 78 8 0 0 0
  • 头像
    数字同学0825 13 楼主
    2018-6-21
    下面是结论了
    3.5% 概率打出1点输出,统称酱油标洛。于是又有人吐槽标洛的强度了。
    17.67%概率打出3点以下输出,我们可以认为是必然无法造成击杀的数据。
    打出不超过3点(包括3) = 40%
    打出不超过4点(包括4) = 60.4%
    可以看出,在无硬奶的情况下,想要一波秒杀的可能性很低。并且一个4血边对上暖标洛的存活率是提高了很多
  • 头像
    数字同学0825 13 楼主
    2018-6-21
    再看看,打出5点以上(包括5) = 39.551%
    想秒人也是可以的啦,但是5点不一定能秒掉,因为对手手牌有桃酒等因素
    然后是6和6+ 24%,挺可观了。我们认为大概率死亡,进入3V2的轮次
  • 头像
    数字同学0825 13 楼主
    2018-6-21
    7点以及7以上,12.8% 我们俗称的“天胡”概率,所以被胡了也就是1/8的事情别以为踩狗屎了
    由7L图看出,最有可能打出的点数为2,3,4,5,6,占比例83.5%
    真是耐人寻味的数字,所以被标洛击杀属于正常不被击杀也属于正常。
    当然,出现其余部分就自己体会
  • 头像
    数字同学0825 13 楼主
    2018-6-21
    当然了,任何实验都有误差(这是物理老师教的)
    误差来源
    人为误差,因楼主水平不足,导致的AI过于愚或者程序出现的逻辑错误,此部分为负误差。
    系统误差,10W的数据量过少导致偏离真实结果。本人对此类误差概不负责。
    ∵ AI能力 ≤ 最优姐/理性人脑
    ∴ 实际效果可以认为比图片数据要高,至于上限范围,本人水平有限不能给出。
  • 头像
    数字同学0825 13 楼主
    2018-6-21
    6.核心代码 main函数和luoshen函数


  • 头像
    darlin 5
    2018-6-21
    厉害了
  • 头像
    数字同学0825 13 楼主
    2018-6-21
    7.开发期间的心得(程序员看)
    人脑和AI不同,人脑对手牌有信息,导致策略树能剪枝,对局势预判更准确
    AI没有预判局势的能力,除非给予足够多的子模型。
    而程序对手牌是0认知,想知道手牌情况每次要遍历,那个执行效率堪忧啊
    然而程序越要接近实际流程,代码量和运行时间就爆炸增长.
    人脑和AI不同,人脑对手牌有信息,导致策略树能剪枝,对局势预判更准确
    AI没有预判局势的能力,除非给予足够多的子模型。
  • 头像
    数字同学0825 13 楼主
    2018-6-21
    开发期间,由于五谷较为复杂,对五谷进行每人摸1张的临时处理。对比前后结果,发现总体输出还是差别挺大的。
    如图,各自3W场的输出量对比

    又稳定提升了5%输出
  • 头像
    数字同学0825 13 楼主
    2018-6-21
    9.后续价值
    1.以当前测试版本为基准,对于往后的游戏版本改动,可以轻松进行数据对比。
    2.对于有争议的出牌,可以通过程序进行大量模拟,对比数据,用作最优姐参考。
    3.本次开发有大量可复用性代码,后面模拟张飞等阵容也可以较为轻松
    4.可以做一些指标相关性的分析。比如过牌量和输出点数的相关性
    有什么想问的,如果容易实现可以选择性满足~
  • 头像
    数字同学0825 13 楼主
    2018-6-21
    大量使用cell数据类型导致程序很慢,肿么破啊 @ljzhalcyon
    1000次 3.96s
    10000次 45s
    100000次 47min
    打开APP查看2条评论
  • 头像
    纳什合集 10
    2018-6-21
    佩服你的治学精神
  • 头像
    军才丷 10
    2018-6-21
    来了顶顶 编程这个东西我是不太看得懂 我就白拿结果了
  • 头像
    裂_星_者 11
    2018-6-22
    辛苦了,可以模拟其它组合了
  • 头像
    jasonc 11
    2018-6-22
    太厉害了
    用数据来说明阵容强度才是最有说服力的
    这吧里没什么人看,楼主可以考虑一下发到论坛上啥的
  • 头像
    预测鸡 13
    2018-6-22
    我记得我以前有个帖子贴过刘备司马贞姬的仿真结果,跑起来很快,可能是没用任何字符串
  • 头像
    Lin向晚 7
    2018-6-22
    虽然没耐心看,也看不懂编程。但是就是觉得厉害
  • 头像
    预测鸡 13
    2018-6-22
    涉及到代码细节就不好说了,遍历太多肯定慢。我记得曾经编写武将过牌拿牌的时候,采用“增量”加“记忆”的方式,就是在原有手牌基础上删除用的牌,添加新的牌,同时记住索引和已有统计结果。遍历过的旧牌就不再重复遍历了,除非情况比较特殊。这些是具体实现的问题,无伤大雅,速度快慢也不是主要考虑因素,准就行
  • 头像
    预测鸡 13
    2018-6-22
    回复的内容被系统删除了,总之楼主**
  • 头像
    预测鸡 13
    2018-6-22
    nb
  • 头像
    预测鸡 13
    2018-6-22
    其实可以用机器学习搞个“选将AI”,但是样本实在是不好弄啊