1

一个天真的脱落纸牌游戏

给定一个简单版本的脱落型纸牌游戏(实际上是中国最流行的游戏斗地主的幼稚版本(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 是小百搭和大百搭)

定义1 :可以丢弃任何符合Give-Out-Rule的牌的玩家称为First Discard玩家,而只能丢弃比之前丢弃的牌更高等级的牌的玩家称为Beat Discard玩家

A 是第一个弃牌的玩家,因此 A 在开始时始终是 First Discard 玩家。如果一个人选择不弃牌(因为他选择不弃牌或找不到有效的牌可以弃牌),那么另一个人成为First Discard 玩家

给出规则1:每个玩家最多可以丢弃一张牌,即使你有多张相同等级的牌,你也只能丢弃其中一张。

示例 1:B 获胜者 4,4,5 < B:3,4,4,8,T

A: 4,4,5 < B: 3,4,4,8,T

说明:B 永远是赢家,因为对于 A 可以选择的任何策略,B 总能找到导致 B 获胜的弃牌策略。

Example2: A 赢家 4,4,5,R > B: 3,4,4,8,T A: 4,4,5,R > B: 3,4,4,8,T

说明:A 永远是赢家,因为存在一种策略 A 可以选择使用导致 A 获胜的策略,而不管 B 选择反应的策略。

红色和蓝色表示 A 和 B 的状态(手中的牌)。

多边形和盒子形状表示播放器处于FirstDiscard 播放器状态和BeatDiscard 播放器状态。

在此处输入图像描述 拖卡组的相对图(A: 4,4,5,R > B: 3,4,4,8,T)

  1. 每张卡的 Bp 值表示该卡可以用来击败对手的卡的可能性。

  2. 具有相同 Bp 值的卡片形成一个块。

研究进展

目前,我只能使用游戏搜索树方法来确定获胜者,但这些方法处理时间太长。Give out Rule1其实是我研究的第一步,下面的研究给出的规则是:

定义2 :单卡定义为具有特定等级且计数为1的卡。而pair-cardtrio-cardfour-card被定义为具有特定等级的卡片,其计数为二、三、四。

定义3 :单卡双卡三卡四卡也称为独立卡

出规则2:每位玩家每次只能弃一张独立牌,如果玩家处于BeatDiscard玩家状态,他只能弃掉之前弃牌的同种独立牌,等级较高。不允许使用拆分卡。(如果你有三张牌555,你不能把这张牌分成单牌5和对牌55)

发放规则 3:与发放规则2 相同,但允许拆分卡。

定义4 :单卡的三称为三单踢卡,等级与三卡相同。

定义5 :有对子牌的三人牌称为三人对踢牌,名次与三人牌相同。

定义6 :四张两张单卡称为四二单踢卡,等级与四张相同。

定义7 :四张有两张对子的四张二对起脚牌,点数与四张相同。

放弃规则 4:与放弃规则3 相同,允许丢弃四种额外的卡类型(从 Def4 ~ Def7)。

定义8四张牌也叫炸弹牌,可以用来打败所有其他牌类和四张牌(6666可以打败33、5555、3331、8888KJ)

定义9rocket-card是 r 和 R 的组合,它可以击败所有其他卡类型。

放弃规则 5:与放弃规则4 相同,允许丢弃额外的卡类型(从 Def8 ~ Def9)。

给出规则6:玩家C加入B的队友,他将在B之后弃牌,B或C首先弃掉所有手牌将成为B和C的赢家。

我相信Give out Rule1~Rule3存在线性算法,有人可以提供这样的方法和相关信息,或者证明问题是指数的。

4

0 回答 0