游戏王masterduel吧 关注:178,945贴子:7,594,595
  • 11回复贴,共1

发一个概率计算器

只看楼主收藏回复

大家可能知道类似https://yugioh.party/的工具能计算开局某种组合上手的概率,不过现成的工具都不容易计算有滤抽时的概率以及有堆墓效果的卡牌堆到特定卡牌的概率。
本文介绍的工具能解决这些问题。这个工具虽然使用起来麻烦,学习难度大,不过功能强大,有兴趣的可以试一下。
使用说明以及源代码:https://github.com/jsc723/ygo-calc
下载地址:https://github.com/jsc723/ygo-calc/releases
计算器大致原理是:
用户在一个YAML文件中定义卡组
定义每张卡时可以编写脚本说明这张卡的效果(比如抽卡,堆墓,检索)
用户在YAML文件中列出所有希望抽到的手牌的组合(或者堆墓希望堆到的牌的组合)
工具读取YAML文件,模拟抽卡
模拟器在抽到牌后自动把手牌、墓地中所有能发动的卡牌都发动,直到没有卡牌能发动为止
模拟器把手牌、墓地中的卡与列出的希望得到的组合做匹配,统计成功匹配的概率
具体用法见README
这里有一些例子可以参考:https://github.com/jsc723/ygo-calc/tree/master/test
新人发帖求勿喷


IP属地:日本1楼2023-05-06 05:20回复
    简单讲一下使用方法
    假设我有这样一个虫惑魔卡组

    我想计算开局至少有一张虫妹和一张红坑的概率,注意到我带了三张万宝槌滤抽(做演示)
    那我可以编写一个如下格式的YAML文件


    其中给万宝槌定义了两个效果
    1. 当手牌没有虫妹时把所有手牌洗回卡组重抽
    2. 当手牌没有红坑时把所有手牌洗回卡组重抽
    运行程序得到如下结果


    IP属地:日本2楼2023-05-06 07:20
    回复
      楼主太强辣 就是有点复杂 恩底不知道能不能行


      IP属地:上海来自iPhone客户端3楼2023-05-06 08:56
      收起回复
        强啊


        IP属地:河南来自Android客户端4楼2023-05-06 11:10
        回复


          IP属地:广东5楼2023-05-06 12:03
          回复
            再举一个实用一些的例子
            比如以下这个源数卡组使用小世界当关键检索卡,

            我想知道如果把小世界换成行星探索车后抽到“好手牌”的概率
            “好手牌”定义为至少一张场地卡(或能直接检索场地卡的卡)+至少一张解前场的卡+至少一张解后场的卡
            那么我可以这样写



            其中源数场地或者能直接检索源数场地的卡被标注标签“field”,解前场的卡被赋标签“solve-front”,解后场的卡被赋标签“solve-back”。我希望后手的6张卡中这三类卡至少都有一张。
            能用小世界互相检索的卡被赋标签“xsj”(除了源数壁)
            小世界有三个效果:
            1. 当手上没有场地("field")时,除外自己手牌中有“xsj”标签的怪,把牌组中一张源数壁加入手牌(这里省略了除外牌组中跳板的效果)
            2. 当手上没有解前场的卡时,除外自己手牌中有“xsj”标签的怪,把牌组中一张解前场的卡加入手牌
            3. 当手上没有解后场的卡时,除外自己手牌中有“xsj”标签的怪,把牌组中一张解后场的卡加入手牌
            使用全局变量“usedxsj”确保小世界一回合只能发动一次
            万宝槌有两个效果:
            (如果手上有小世界优先使用小世界)
            1. 如果手上没有场地,则把所有手牌洗回卡组重抽
            2. 如果自己手上的解场卡总数小于2,则把所有手牌洗回卡组重抽
            (可能不太智能,懒得详细写了)
            模拟10万次后得到结果

            即得到“好手牌”的概率约为57.87%
            把小世界的count改成0,行星探索车的count改成3后,再执行程序,得到

            此时得到“好手牌”的概率约为54.58%
            于是可以看到使用小世界比使用探测车得到“好手牌”的概率能提高约3%


            IP属地:日本6楼2023-05-07 02:33
            收起回复
              看到决都公众号有个玩家自己也写过类似的代码


              IP属地:江西来自Android客户端7楼2023-05-08 01:20
              回复