鉴于一个简单版本的脱落型纸牌游戏(实际上是中国最受欢迎的游戏“斗迪珠”(https://en.wikipedia.org/wiki/Dou_dizhu)的天真版本),我们如何确定胜利者(每个玩家都可以最多有20张卡)(是否存在解决问题的线性算法)?
游戏的目标是摆脱对手面前的所有牌。球员被称为A和B.卡的排名是:
3< 4< 5< 6< 7< 8< 9< T< J< Q< k< A< 2< r< R(其中T是10,r,R是小而大的小丑)
Definition1 :可以弃用任何使用 Give-Out-Rule 编译的卡片的玩家称为 FirstDiscard播放器,而玩家只能丢弃具有较高等级的卡然后丢弃的卡被称为 BeatDiscard播放器。
A是第一个丢弃牌的玩家,因此A在开始时始终是FirstDiscard玩家。如果一个人选择不丢弃一张卡(因为他选择不丢弃或者他找不到有效的卡丢弃),那么另一个会成为 FirstDiscard播放器。
发出规则1: 每个玩家最多可以丢弃一张卡,即使你有多张相同等级的卡,你也只能丢弃一张它们。
示例1:B获胜者4,4,5< B:3,4,4,8,T
解释:B总是胜利者,因为任何策略A都可以选择 玩,B总能找到一种策略来丢弃能够赢得B的卡。
示例2:获胜者4,4,5,R> B:3,4,4,8,T
解释:A始终是胜利者,因为无论B选择做出何种策略,A都可以选择使用能够赢得A的策略。
红色和蓝色表示A和的状态(手中留下的牌) B.
多边形和方框形状表示玩家处于 FirstDiscard 播放器状态和 BeatDiscard播放器状态。
两种卡组的相对图(A:4,4,5,R> B:3,4,4,8,T)
每张牌的Bp值表示该牌可以用来击败对手的牌。
- 醇>
具有相同Bp值的卡形成一个块。
目前,我只能使用游戏搜索树方法来确定获胜者,但这些方法的处理时间太长。 发布Rule1 实际上是我研究的第一步,以下研究给出的规则是:
定义2 : solo-card 被定义为具有特定等级的卡,其数量为1。当配对卡,三张卡,四张卡被定义为具有特定等级的卡,其数量为2,3,4。
定义3 :单卡,配对卡,三重卡,四 - 卡也称为独立卡
发出规则2: 如果玩家在 BeatDiscard,每个玩家每次只能丢弃一种独立卡玩家状态,他只能丢弃同等级别的独立卡之前丢弃的牌。 不允许使用SplitCard。 (如果您有一张三重卡555,则不能将该卡分为单卡5和一对卡55)
发布规则3: 与发布规则2 相同,但允许使用SplitCard。
带有独唱卡的定义4 :三人卡被称为三人组合 - kicker-card ,等级与三重卡相同。 带有配对卡的定义5 :三重卡称为三人对踢球卡 ,等级与三重卡相同。定义6 :四张卡,带有两张独唱卡,被称为四张2-solo-kicker-card ,等级与四张卡相同。
定义7 :四张卡,带有两张配对卡,称为四对二踢牌 strong>,等级与四张卡相同。
发出规则4: 与发出规则3 相同,并允许丢弃另外四种卡类型(来自Def4~Def7)。
Definition8 :四张卡也称为炸弹卡,它可以用来击败所有其他卡类型和四张牌排名较低(6666可以击败33,5555,3331,8888KJ)
Definition9 : rocket-card 是r和R的组合,它可以击败所有其他卡类型。
发出规则5: 与发出规则4 相同,并允许拖放其他卡类型(来自Def8~Def9)。
发出规则6: 玩家C作为B的队友添加,他将弃牌B,B或C丢弃所有手牌首先将成为赢家B和C。
我相信存在一个给出Rule1~Rule3的线性算法,有人可以提供这样的方法和相关信息,或者证明问题是指数的。