首先,根据我的另一篇贴子
https://tieba.baidu.com/p/8748885460 (【游戏机制研究】速转间隔最多几张牌)可以得知,手牌只在开局的时候是随机的,之后你的抽牌顺序完全取决于我们之前的出牌顺序(具体可以看贴子的解释)。然后再结合上面的费用机制,我们就可以对战局进行模拟了。
注:这里只讨论费用的盈亏,不讨论具体的战斗,所以这里只模拟打牌和费用消耗。
蒙特卡洛方法,又称统计模拟方法,简单来说就是用计算机对某一事件进行多次重复的模拟实验,然后对实验结果进行统计分析。
我在这里根据上面提到的费用机制和抽牌机制,使用Python进行了模拟实验,计算在各种卡组的排列组合下,打出前50张牌的总盈亏(盈亏计算方法为“原本费用” - “猪妹费用”,比如说我们用1费下了巡山人,那么盈亏就是6 - 1 = 5。如果是是5费下了矿工,那就是1 - 5 = -4)。每一种卡组的组合都重复实验300次然后取平均值,最后比较这些平均值,找出其中的最大值并给出对应卡组的费用组合。
为了方便计算,这里使用了两种出牌规则:
1. 每次随机打一张牌
2. 每次都打原费用最高的牌
============================= 模拟结果如下 =============================
===== 随机打一张牌:

这个结果其实很符合直觉,因为打出去的牌决定了未来的费用,所以长远来说,盈亏应该比较平衡。
但是!但是!但是!反直觉的结果来了!
如果我们改变出牌策略,改为每次都打手中原本费用最高的牌,就会得到意想不到的结果。
===== 每次都打原费用最高的牌:

是的,最后一个卡组的组合,也就是5张6费1张1费,可以让我们直接多出14点费用。
为什么会有这种结果呢?其实如果我们结合之前得到的抽牌机制和猪妹费用机制的话就不难解释了。首先牌组里有两张1费,1张2费的牌,而6费的牌有5张,这就意味着,手里永远都会有至少1张6费牌。如果我们每次只打6费牌,那么前8张牌里一定会有两次是用1费打6费,一次是用2费打6费,总盈亏为5+5+4 = 14。这就是赚了14费的由来。而打完8张牌后,因为我们之前一直打的都是6费,所以接下来的费用也会一直是6,这样如果继续打6费牌,则不亏,所以总得来说,我们白白赚了14费。
当然了这样也有两个问题,第一个问题就是,目前游戏中只有4张6费牌,所以只能退而求其次地把一张6费牌换成5费牌,但这样还是可以无中生有13费。第二个就是,总是打6费牌也会严重拖慢节奏,所以实际操作时可以根据情况,故意亏费打牌来为之后的战术铺路。
各位如果有什么其他看法,欢迎留言一起讨论