CN110227263A - 一种智能化斗地主自动博弈方法及系统 - Google Patents
一种智能化斗地主自动博弈方法及系统 Download PDFInfo
- Publication number
- CN110227263A CN110227263A CN201910505041.9A CN201910505041A CN110227263A CN 110227263 A CN110227263 A CN 110227263A CN 201910505041 A CN201910505041 A CN 201910505041A CN 110227263 A CN110227263 A CN 110227263A
- Authority
- CN
- China
- Prior art keywords
- board
- card
- probability
- playing
- player
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/45—Controlling the progress of the video game
- A63F13/46—Computing the game score
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/80—Special adaptations for executing a specific game genre or game mode
- A63F13/822—Strategy games; Role-playing games
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例公开了一种智能化斗地主博弈方法及系统。主要包括四种模块,分别为牌型概率分布模块、最优出牌组合模块、叫分模块、对弈模块。其中叫分模块方便了智能玩家根据个人手中的牌做出不同的叫分决策。牌型概率分布模块、最优出牌组合模块和对弈模块在整个博弈的过程中循环使用,完成整个智能化斗地主的过程,使得游戏更具智能化。同时,该发明可用于一人两机器、两人一机器、三台机器之间的博弈,使得游戏更具可玩性。该发明定义了不同的博弈策略,使得整个游戏更具有真实性。在进行博弈时将博弈的整个过程保存到文档,有助于科研人员对非零和博弈的学术研究。
Description
技术领域
本发明涉及通信领域以及人工智能领域,尤其涉及一种智能化斗地主自动博弈方法及系统,特别涉及到非零和博弈过程中的智能决策过程。
背景技术
对于我国的传统棋牌游戏——斗地主其也存在被机器智能化的可能。不同于围棋、象棋等双人博弈,斗地主游戏为一种非零和博弈,具有更加复杂的博弈情况,在博弈的过程中需要考虑配合以及一对多的情况。
目前,以有的斗地主平台包括欢乐斗地主、小米斗地主、JJ斗地主、单机斗地主等游戏平台,尽管他们存在一些自动博弈(如托管)的情况,但是其自动博弈性能并不能达到一个较好的水平。例如,不能更好的考虑到队友间的配合情况,在出牌过程中往往只进行简单的组合,不能做到更高级的组合情况,或者只简单的根据自己手中能出牌的情况进行最小出牌。总而言之,这些游戏平台在进行人与机器间的游戏博弈过程中并不够智能化。
发明内容
本发明实施例所要解决的技术问题在于,提供一种全新的智能化斗地主博弈策略,旨在解决目前斗地主平台智能托管时出牌策略不够智能化的问题。在博弈过程中,通过智能化斗地主自动博弈策略能够更加真实的甚至超过普通人类的出牌策略,并能够跟据出牌的先后顺序打出“顶牌”、“关底”等不同策略的牌型。同时,在不知道其他玩家牌的前提下,能够根据自己手中已有的牌和桌面上已经出过的牌打出对自己和对队友最优的牌。
为了解决上述技术问题,本发明实施例提供了一种智能化斗地主自动博弈方法,包括牌型概率分布计算方法、最优出牌组合计算方法、叫分方法、对弈方法;
所述牌型概率分布计算方法包括步骤:
依据当前玩家手中牌的集合,三张明牌的归属,以及其他两个玩家各自出过的牌,为其他两个玩家分别建立一个牌-张数的概率分布矩阵;
每次牌局开始时,根据当前玩家手中的牌计算所述牌-张数的概率分布矩阵;
当所述叫分方法结束时,根据所述三张明牌的归属更新所述牌-张数的概率分布矩阵,并进行修正;
所述最优出牌组合计算方法包括步骤:
依据当前玩家手中的牌和所述牌-张数概率分布矩阵计算最优的出牌组合;
所述叫分方法包括步骤:
在完成发牌之后,当前玩家依据手中的牌计算叫分的分值,分值包括0分、1分、2分和3分;
所述对弈方法包括步骤:
依据所述最优出牌组合计算方法和所述牌型概率分布计算方法,以及当前玩家的位置采取不同的出牌策略。
进一步地,所述计算最优的出牌组合包括步骤:
S1、排序当前玩家手中的牌;
S2、将排序后点数相同的牌按数量进行分类,并保存在不同的数组中,其中,2和大王小王单独保存在另外一个数组中;
S3、将当前玩家点数相同的牌作为一组,三张点数相同的牌可以和另外一张牌或两张点数相同的非王牌进行组,计算组对应组合被压过的概率;
S4、根据S2中得到的数组,在相同的数组中判断牌能否进行顺子组、多对组、飞机组,可能存在多种不同的组,构成多种不同组合,计算每种组合被压过的概率,以最小被压过的概率对应的组合为当前组合;
S5、根据S2中得到的数组,判断不同的数组中牌能否进行顺子组,顺子组后判断新生成的零牌能否再进行顺子组、多对组和飞机组,分别计算不同组对应的组合被压过的概率;
S6、比较最优出牌组合模块中步骤S3、S4、S5的概率值,将最小的概率值对应的组合作为最优出牌组合。
更进一步地,所述计算叫分的分值的步骤包括:
C1、定义多个边界值,分别为N,Tp1,Tp2,TP3;
C2、判断玩家手中的牌不能被其他玩家压过的次数M;
C3、判断M是否大于N,如是,则继续执行下一步,否则,当前玩家的叫分值为0,停止计算;
C4、通过最优出牌组合模块判断当前玩家17张牌的一种最优组合,并计算该最优组合对应的概率值p;
C5、判断p值与Tp1,Tp2,TP3的大小关系,若P<Tp1则叫分值为3,若Tp1≤P<Tp2则叫分值为2,若Tp2≤P<Tp3则叫分值为1,P≥Tp3叫分值为0。更进一步地,所述出牌策略包括:“关底”,“顶牌”,“较大”,“正常”,其中,“关底”包括直接关底和间接关底,当使用所述直接关底时,当前玩家按组被压过的概率从大到小出牌,当使用间接关底时,当前玩家将组被压过的概率近似为1的情况放在最后出,其它组按被压过的概率从大到小以次打出,所述“关底”的策略在整个出牌的过程中一直存在;所述“顶牌”的策略为当前玩家在最优出牌组合模块下为了防止对手赢牌或者在当前玩家赢牌概率大于等于E的情况下打出被压过概率最小或次小的组,E为可以调节的参数;所述“较大”的策略为作用于地主上家,依据队友的出牌策略打出组合模块中平均点数大于R的组的一种策略,R为可以调节的参数;所述“正常”的策略为当前玩家在最优出牌组合模块下优先打出被压过概率最大组的出牌的策略。此外,上述所述打出的牌,皆符合基本的出牌规则。
更进一步地,所述出牌策略包括步骤:
G1:依据牌型概率分布模块,最优出牌组合模块以及玩家位置判断当前玩家每组牌的压过概率;
G2:根据G1得到的概率判断当前玩家能否进行“关底”,若能“关底”,按“关底”策略出牌,若不能“关底”,判断当前玩家是否为地主,若是,执行G3,否则,执行G4-G6;
G3:若当前玩家最优出牌组合模块被压过的概率等于组数,则“正常”策略出牌,否则若某农民赢牌概率≥E,且其出牌平均点数≥R则“顶牌”策略,否则,若当前玩家组数≤N则优先“顶牌”策略,N为可调参数,否则,“正常”策略;
G4:若当前玩家为地主后出牌的首个玩家,判断地主打出的牌的平均点数,点数≤R,是则“正常”策略,否,根据牌型概率分布模型判断队友能压过当前牌的概率≈1,且队友最可能组数≤N,则让队友出牌,否则自己按“顶牌”策略出牌;
G5:若当前玩家为地主前出牌的玩家,当前玩家上家未压地主牌,则需要判断地主打出的牌平均点数<R,若是,则“较大”策略,否则“顶牌”策略,当前玩家上家已压地主牌判断当前玩家上家所出某组牌的平均点数是否≥R,是执行G6,否则当前玩家按“较大”策略出牌;
G6:当前玩家上家所出的牌平均点数是≥R,当前玩家判断自己赢牌的概率,若赢牌概率大于≥E,则“顶牌”策略,否则判断当前玩家牌组数,组数>N,则“正常”策略,否则让下家出牌。当前玩家上家所出的牌平均点数是<R,则“较大”策略。
更进一步地,所述牌-张数的概率分布矩阵有15行,分别对应牌3 ̄10,J,Q,K,A,2,以及小王和大王,有5列,分别对应牌的张数0 ̄4,矩阵中的元素记载其中任一张牌有几张的概率。
更进一步地,所述最优出牌组合计算方法还包括:
每一位玩家手中的牌可以被分成若干组,每组牌可以同时打出。玩家手中的牌分组以后称为一种组合。每一种组合被打动的概率为组合中所有组被打动的概率之和,每一种组被打动的概率为一种相对的概率计算,所述相对概率计算为在剩余牌下判断存在大于该组的牌的概率计算,并将此概率之和作为该牌组合被打动的概率。
更进一步地,所述出牌策略还包括:在对弈的过程中非地主玩家将会考虑到个人的位置和最优出牌组合模块以及牌型概率分布模块进行出牌,地主玩家亦会根据农民的出牌情况调整出牌策略。
相应地,本发明实施例还提供了一种智能化斗地主自动博弈系统,包括牌型概率分布模块、最优出牌组合模块、叫分模块、对弈模块,
其中,叫分模块用于玩家在得到17张牌时判断自己牌所属等级,即能叫几分的情况,方便玩家叫地主。牌型概率分布模块在每回合博弈过程中计算其他玩家手中牌的分布情况,为当前玩家做决策提供一定的前提条件。最优出牌组合模块在博弈过程中计算自己手中的牌可能有的各种组合策略。对弈模块是在博弈过程中兼顾到地主和农民以及个人玩家所在位置联合最优出牌组合模块进行出牌的一种策略。各模块介绍如下。
牌型概率分布模块依据当前玩家手中牌的集合,三张明牌的归属,以及其他两个玩家各自出过的牌,为其他两个玩家分别建立一个“牌-张数”的概率分布矩阵。
每次牌局开始时,根据当前玩家手中的牌来计算所述两个“牌-张数”概率分布矩阵;
叫分模块结束时,根据三张明牌的归属更新所述两个“牌-张数”概率分布矩阵,并进行修正;
非当前玩家出牌结束时,根据其出牌情况更新所述两个“牌-张数”概率分布矩阵,并进行修正;
最优出牌组合模块依据当前玩家手中的牌和所述两个“牌-张数”概率分布矩阵计算最优的出牌组合,其中,
出牌组合是指,将当前玩家手中的所有牌分成若干组,每个组中的牌可以一次打出,
最优出牌组合是指,在所有的出牌组合中,压过概率最小的一种组合,其中,
出牌组合的压过概率是指,该组合中所有组的压过概率之和,其中,
组的压过概率依据所述两个“牌-张数”概率分布矩阵计算得到,
计算最优出牌组合包括以下步骤:
S1、排序当前玩家手中的牌;
S2、将排序后点数相同的牌按数量进行分类,并保存在不同的数组中,其中,2和大王小王单独保存在另外一个数组中;
S3、将当前玩家点数相同的牌作为一组,三张点数相同的牌可以和另外一张牌或两张点数相同的非王牌进行组。计算组对应组合被压过的概率;
S4、根据S2中得到的数组,在相同的数组中判断牌能否进行顺子组、多对组、飞机组,可能存在多种不同的组,构成多种不同组合,计算每种组合被压过的概率,以最小被压过的概率对应的组合为当前组合;
S5、根据S2中得到的数组,判断不同的数组中牌能否进行顺子组,顺子组后判断新生成的零牌能否再进行顺子组、多对组和飞机组。可能存在的多种组,分别计算不同组对应的组合被压过的概率;
S6、比较最优出牌组合模块中步骤S3、S4、S5的概率值,将最小的概率值对应的组合作为最优出牌组合;
叫分模块在完成发牌之后,当前玩家依据手中的牌计算叫分的分值,分值包括0分、1分、2分和3分,计算步骤如下:
C1、定义多个边界值,分别为N,Tp1,Tp2,TP3;
C2、判断玩家手中的牌不能被其他玩家压过的次数M;
C3、判断M是否大于N,如是,则继续执行下一步,否则,当前玩家的叫分值为0,停止计算;
C4、通过最优出牌组合模块判断当前玩家17张牌的一种最优组合,并计算该最优组合对应的概率值p;
C5、判断p值与Tp1,Tp2,TP3的大小关系,若P<Tp1则叫分值为3,若Tp1≤P<Tp2则叫分值为2,若Tp2≤P<Tp3则叫分值为1,P≥Tp3叫分值为0;
对弈模块依据所述最优出牌组合模块计算出的最优出牌组合,以及当前玩家的位置采取不同的出牌策略,包括:“关底”,“顶牌”,“较大”,“正常”,其中,
“关底”策略,“关底”分为直接关底和间接关底。当前玩家根据最优出牌组合模块判断在最优组合下每一组被压过的概率为0或接近0,或者存在一组被压过的概率为1而其他组被压过的概率为0或接近0。当前玩家在上述情况下将手中所有牌依次打出为“关底”。其中第一种情况为直接关底,第二种情况为间接关底。直接关底时,当前玩家按组被压过的概率从大到小出牌。间接关底时,当前玩家将组被压过的概率为1的情况放在最后出,其它组按被压过的概率从大到小以次打出。“关底”策略在整个出牌的过程中一直存在;
“顶牌”的策略为当前玩家在最优出牌组合模块下为了防止对手赢牌或者在当前玩家赢牌概率大于等于E的情况下打出被压过概率最小或次小的组,当最小的组被压过的概率不为0时,打出最小组,否则打出次小组。E为可以调节的参数;。“顶牌”策略在其他玩家打出平均点数大于等于R的组时打出比其更大的牌,但不打队友平均点数大于R的牌;
“正常”策略为当前玩家在最优出牌组合模块下进行出牌的一种策略。当前玩家根据最优出牌组合模块打出组合模块中的一组牌,使得当前玩家其他牌被打动的概率最小;
“较大”策略是打出组合模块中平均点数大于等于R的组,它只作用于地主上家,并根据队友的出牌决定不同的出牌策略;
本发明利用四种模块,实现了整个智能化斗地主的博弈过程,四种模块皆有优势。牌型概率分布模块分析了玩家手中牌可能的分布情况,便于玩家决策;最优出牌组合模块在牌型概率分布模块的前提下计算玩家牌的最优组合,便于玩家初步定义出牌策略;叫分模块在拿到17张牌后根据牌型概率分布模块和最优组合模块判断所能叫分的情况,使得玩家能够智能化叫分(抢地主);对弈模块考虑了农民与农民之间的配合情况以及地主与农民一对多的情况,能够根据玩家所在位置和玩家的最优出牌组合模块做出不同的出牌策略。四种模块相互融合更使得整个博弈过程更加智能化。
优选的,在牌型概率分布模块中,初始的概率分布情况保存在二维数组中,二维数组的大小为15行5列。15行分别对应牌3 ̄10,J,Q,K,A,2,以及小王和大王,5列分别对应牌的张数0 ̄4,矩阵中的元素记载某种牌有几张的概率。
优选的,在牌型概率分布模块中能够根据其中一个玩家的出牌情况推导出另外一个玩家的牌的概率分布情况。在对概率进行修正时,修正的方式为一种更加智能化的操作,其他玩家在已经打出某种牌后,虽然此时这种牌在概率分布上符合独立同分布,但是智能机器根据玩家是否出过此牌进行修正。
优选的,最优出牌组合模块的S3中,其特征在于,相同牌进行组是一种最简单的组方案,不考虑顺子、连对、和连三个(飞机)等的情况,只考虑对子,三带一、三带二的情况。每一位玩家手中的牌可以被分成若干组,每组牌可以同时打出。玩家手中的牌分组以后称为一种组合。
优选的,最优出牌组合模块的S3、S4、S5中的被打动的概率表示每一种组被打动的概率。而组合被打动的概率为所有组被打动的概率之和。组被打动的概率大于1时,按1计算。
优选的,最优组合模块的S3、S4、S5中的被打动的概率为一种相对的概率,利用相对概率简化了机器计算的时间。相对概率计算方式只考虑组被压过的概率,而不从整体上考虑组合被压过的概率。
优选的,叫分模块中C1定义的边界值是可以调整的,他的取值来自于多次博弈后的平均值。
优选的,叫分模块中C4、C5,玩家根据手中的牌不能被打动的牌的次数和玩家的最优组合策略判断玩家能叫分的情况。其中,不能被打动的次数为一种不考虑外界存在炸弹的情况下的次数。
优选的,对弈模块中的G2,“关底”策略在整个对弈的过程中一直存在,并不止在首次出牌时存在。假设当前玩家只有两组牌,且被压过的概率为0,则依然能进行直接关底。
优选的,在对弈模块中的G4,牌的平均点数为一种相对点数,将牌3定义为0点,牌K定义为10点,牌A定义为11点,牌2为12点,小王大王分别对应13点和14点。G4中的R是可以调节的。
优选的,在对弈模块的G6中,赢牌概率的计算由被压过概率得到。定义的R、E、N在对弈的过程中可以调节。
优选的,对弈模块中S2至S6在对弈的过程中玩家将会考虑到个人的位置和最优出牌组合模块以及牌型概率分布模块进行出牌。能根据不同条件打出不同的出牌策略。
实施本发明实施例,具有如下有益效果:本发明利用四种模块来完成整个智能化斗地主的过程,且能用于两人一机器、一人两机器、三机器之间的博弈,使得游戏更具可玩性和挑战性。本发明制定了不同的打牌策略,并根据其他玩家的出牌策略和当前玩家手中已有的牌决定不同的出牌方案,使得整个博弈的过程更加具有真实性。
附图说明
图1为本发明整体示意图;
图2为本发明的牌型概率分布模块示意图;
图3为本发明的最优出牌组合模块示意图;
图4为本发明的叫分模块示意图;
图5为本发明的对弈模块示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明智能化斗地主博弈方法的实现方法,其包括牌型概率分布模块,最优出牌组合模块、叫分模块和对弈模块,四种模块相互融合。其中,牌型概率分布模块、最优组合模块和对弈模块在整个博弈的过程中处于循环状态,可参见图1,包含了步骤95至步骤100;
牌型概率分布模块在本发明中包含了步骤101至步骤105;
最优出牌组合模块在本发明中含了步骤106至步骤111;
叫分模块在本发明中含了步骤112至步骤116;
对弈模块在本发明中包含了步骤117至步骤122。各模块的各步骤具体如下:
参见图1,其展示了在博弈的过程中,四种模块相互融合的过程。具体步骤如下:
步骤95、服务器在检测到满足三个玩家后进行随机的洗牌和分发牌。并保留三张底牌作为地主的牌。
步骤96、机器玩家在拿到自己的牌时根据叫分模块判断自己所能叫的分值(参加图4)。
步骤97、各机器玩家根据自身牌来计算牌型概率分布模块(参见图2)。
步骤98、各机器玩家在牌型概率分布模块的前提下计算最优出牌组合模块(参见图3)。
步骤99、在最优出牌组合模块的前提下,机器玩家根据对弈模块进行对弈(参见图5).
步骤100、在游戏未结束之前,重复执行步骤97至步骤100。
牌型概率分布模块在整个智能化斗地主自动博弈的过程中依据当前玩家手中牌的集合,三张明牌的归属,以及其他两个玩家各自出过的牌,为其他两个玩家分别建立一个“牌-张数”的概率分布矩阵。参见图2。详细步骤参见步骤101至步骤105:
步骤101、每次牌局开始时,根据当前玩家手中的牌来计算所述两个“牌-张数”概率分布矩阵;在这个过程中,构建两个15×5的矩阵分别用来表示玩家1和玩家2牌的分布情况,在博弈的过程此矩阵保存在内存中并不断更新。两个数组分别保存不同牌对应的张数值。
叫分模块结束时,根据三张明牌的归属更新所述两个“牌-张数”概率分布矩阵,并进行修正;
其中,修正为一种智能的修正方案,在已经确定其他两个玩家,可记为玩家1、玩家2,当前有某种牌型k张时,当其中一个玩家,假设玩家1,打出该种牌型i张后,i表示某个玩家从起始到当前打出某种牌型的张数之和,计算其和另外一个玩家,假设为玩家2,含有该种牌型为0,1,…,(k-i)张的概率,并将对应的概率进行修正。修正玩家1含有该种牌型为0张的概率将增大,1张的概率将减小,(k-i)的概率较(k-i-1)张的概率减小更明显。修正玩家2对应张数的概率将与玩家1修正的变化趋势相逆。
步骤102、当玩家1的出牌时重新计算玩家1牌的分布概率,同时更新玩家2牌的分布概率。在更新概率分布的时候需要对概率进行不断的修正,如,个人玩家中以有333,即三个3,而玩家1打出了45678,则可推导玩家1存在牌3的概率极低,即玩家2存在一张牌为3的可能性可以近似看成100%,并记录到内存;
步骤103、当玩家2的出牌情况更新玩家1和玩家2牌的分布情况,更新方式同步骤102类似,并将结果记录到内存。
步骤104、在每次非当前玩家出牌时重复执行步骤101至步骤103。
步骤105、游戏重新开始后重复执行步骤101至步骤104。
最优出牌组合模块依据当前玩家手中的牌和所述两个“牌-张数”概率分布矩阵计算最优的出牌组合,其中,
出牌组合是指,将当前玩家手中的所有牌分成若干组,每个组中的牌可以一次打出,
最优出牌组合是指,在所有的出牌组合中,压过概率最小的一种组合,其中,
出牌组合的压过概率是指,该组合中所有组的压过概率之和,其中,
组的压过概率依据所述两个“牌-张数”概率分布矩阵计算得到,
将玩家手中所有的牌进行分组,将组完成后的一手牌称之为组合。如玩家当前所有的牌定义为card,对于每一个玩家的card,他可以进行N种组合,表示为card=[chain1|chain2|…|chainN],其中“|”表示或者。每一种组合对应一组特定的组,表示为chainN=[group1,group2,…,groupM]。不同的策略中可能具有相同的组合。可参见图3,详细步骤参见步骤106至步骤111:
106、排序当前玩家手中的牌;排列个人玩家手中的牌为3、4、5、6、7、8、9、10、J、Q、K、A、2、小王、大王。在排序的过程中,为了便于处理,将不同的牌对应到不同的数值,3、4、5、6、7、8、9、10、J、Q、K、A、2、小王、大王分别对应的数值为0、1、2、3、4、5、6、7、8、9、10、11、12、13、14。
107、将排序后点数相同的牌按数量进行分类,并保存在不同的数组中,其中,2和大王小王单独保存在另外一个数组中;
108、将当前玩家点数相同的牌作为一组,三张点数相同的牌可以和另外一张牌或两张点数相同的非王牌进行组。计算组对应组合被压过的概率;其中,2和大王小王单独保存在另外一个数组中。如用户有一手牌为[0,1,1,1,2,2,4,6,8,8,8,10,11,11,12,12,14]可分成5类,分别为一张牌,二张牌,三张牌,四张牌、2和大小王牌。一张牌中为[0,4,6,10],两张牌的为[2,11],三张牌的为[1,8]四张牌为[],即为空,2和大小王牌为[12,12,14]。
109、根据S2中得到的数组,在相同的数组中判断牌能否进行顺子组、多对组、飞机组,可能存在多种不同的组,构成多种不同组合,计算每种组合被压过的概率,以最小被压过的概率对应的组合为当前组合;
110、根据S2中得到的数组,判断不同的数组中牌能否进行顺子组,顺子组后判断新生成的零牌能否再进行顺子组、多对组和飞机组。可能存在的多种组,分别计算不同组对应的组合被压过的概率;某种组合被压过的概率为当前组合所对应的所有组被压过的概率之和。某种组被压过的概率为剩余的牌中能压过该组的率,若此概率之和大于1,则按1计算。
111、比较最优出牌组合模块中步骤S3、S4、S5的概率值,将最小的概率值对应的组合作为最优出牌组合;
叫分模块在完成发牌之后,当前玩家依据手中的牌计算叫分的分值,分值包括0分、1分、2分和3分,参见图4,详细步骤参见步骤112至步骤116:
112、定义多个边界值,分别为N,Tp1,Tp2,TP3;边界值将用于判断用户在抢地主的过程中所能叫分情况,叫分包括0分(不叫)、1分、2分、3分。
113、判断玩家手中的牌不能被其他玩家压过的次数M;在计算M时,计算方式定义为一种不考虑外界存在炸弹的情况下的相对次数。如,玩家手中存在一张牌2和一个牌小王,并且有四张牌4,则不能被压过的次数为2。因为玩家的4炸弹和牌2可近似看成不能被打动。此外考虑玩家在打出2或小王时存在其他玩家能打动其中的一张牌,但如果打了其中一张牌,则另外一张不能被打动,因此牌2和牌小王一起被压过的次数为1。
114、判断M是否大于N,如是,则继续执行下一步,否则,当前玩家的叫分值为0,停止计算;
115、通过最优出牌组合模块判断当前玩家17张牌的一种最优组合,并计算该最优组合对应的概率值p;p值的计算方式请参考最优出牌组合模块;
116、判断p值与Tp1,Tp2,TP3的大小关系,若P<Tp1则叫分值为3,若Tp1≤P<Tp2则叫分值为2,若Tp2≤P<Tp3则叫分值为1,P≥Tp3叫分值为0;其中Tp1、Tp2、TP3是可以不断调节的。
对弈模块依据所述最优出牌组合模块计算出的最优出牌组合,以及当前玩家的位置采取不同的出牌策略,包括:“关底”,“顶牌”,“较大”,“正常”策略,参见图5。详细步骤参见步骤117至步骤122:
117:依据牌型概率分布模块,最优出牌组合模块以及玩家位置判断当前玩家每组牌的压过概率;
118:根据步骤117得到的概率判断当前玩家能否进行“关底”,若能“关底”,按“关底”策略出牌,若不能“关底”,判断当前玩家是否为地主,若是,执行G3,否则,执行G4-G6;
其中,“关底”分为直接关底和间接关底。当前玩家根据最优出牌组合模块判断在最优组合下每一组被压过的概率为0或接近0,或者存在一组被压过的概率为1而其他组被压过的概率为0或接近0。当前玩家在上述情况下将手中所有牌依次打出为“关底”。其中第一种情况为直接关底,第二种情况为间接关底。直接关底时,当前玩家按组被压过的概率从大到小出牌。间接关底时,当前玩家将组被压过的概率为1的情况放在最后出,其它组按被压过的概率从大到小以次打出。“关底”策略在整个出牌的过程中一直存在;
119:
若当前玩家最优出牌组合模块被压过的概率等于组数,则“正常”策略出牌,否则若某农民赢牌概率≥E,且其出牌平均点数≥R则“顶牌”策略,否则,若当前玩家组数≤N则优先“顶牌”策略,N为可调参数,否则,“正常”策略;
其中,“正常”策略为当前玩家在最优出牌组合模块下进行出牌的一种策略。当前玩家根据最优出牌组合模块打出组合模块中的一组牌,使得当前玩家其他牌被打动的概率最小;
“顶牌”的策略为当前玩家在最优出牌组合模块下为了防止对手赢牌或者在当前玩家赢牌概率大于等于E的情况下打出被压过概率最小或次小的组,当最小的组被压过的概率不为0时,打出最小组,否则打出次小组。E为可以调节的参数;“顶牌”策略在其他玩家打出平均点数大于等于R的组时打出比其更大的牌,但不打队友平均点数大于R的牌;
120:
若当前玩家为地主后出牌的首个玩家,判断地主打出的牌的平均点数,点数≤R,是则“正常”策略,否,根据牌型概率分布模型判断队友能压过当前牌的概率≈1,且队友最可能组数≤N,则让队友出牌,否则自己按“顶牌”策略出牌;
其中,平均点数的计算根据映射的点数进行平均,牌[3,4,5,6,7,8,9,10,J,Q,K,A,2,小王,大王]映射点数为[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]。R的定义可以根据情况进行调节。
121:
若当前玩家为地主前出牌的玩家,当前玩家上家未压地主牌,则需要判断地主打出的牌平均点数<R,若是,则“较大”策略,否则“顶牌”策略,当前玩家上家已压地主牌判断当前玩家上家所出某组牌的平均点数是否≥R,是执行G6,否则当前玩家按“较大”策略出牌;
其中,“较大”策略是打出组合模块中平均点数点数等于R的组,它只作用于地主上家,并根据队友的出牌决定不同的出牌策略;
122:
当前玩家上家所出的牌平均点数是≥R,当前玩家判断自己赢牌的概率,若赢牌概率大于≥E,则“顶牌”策略,否则判断当前玩家牌组数,组数>N,则“正常”策略,否则让下家出牌。当前玩家上家所出的牌平均点数是<R,则“较大”策略。
其中,赢牌概率的计算为只考虑当前玩家被对手打动的概率。
相对应的,本发明实施例提供了一种智能化斗地主自动博弈系统,包括牌型概率分布模块、最优出牌组合模块、叫分模块、对弈模块,各模块使用上述方法进行,本实施例在此不做重复性赘述。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (9)
1.一种智能化斗地主自动博弈方法,其特征在于,包括牌型概率分布计算方法、最优出牌组合计算方法、叫分方法、对弈方法;
所述牌型概率分布计算方法包括步骤:
依据当前玩家手中牌的集合,三张明牌的归属,以及其他两个玩家各自出过的牌,为其他两个玩家分别建立一个牌-张数的概率分布矩阵;
每次牌局开始时,根据当前玩家手中的牌计算所述牌-张数的概率分布矩阵;
当所述叫分方法结束时,根据所述三张明牌的归属更新所述牌-张数的概率分布矩阵,并进行修正;
所述最优出牌组合计算方法包括步骤:
依据当前玩家手中的牌和所述牌-张数概率分布矩阵计算最优的出牌组合;
所述叫分方法包括步骤:
在完成发牌之后,当前玩家依据手中的牌计算叫分的分值,分值包括0分、1分、2分和3分;
所述对弈方法包括步骤:
依据所述最优出牌组合计算方法和所述牌型概率分布计算方法,以及当前玩家的位置采取不同的出牌策略。
2.根据权利要求1所述的智能化斗地主自动博弈方法,其特征在于,
所述计算最优的出牌组合包括步骤:
S1、排序当前玩家手中的牌;
S2、将排序后点数相同的牌按数量进行分类,并保存在不同的数组中,其中,2和大王小王单独保存在另外一个数组中;
S3、将当前玩家点数相同的牌作为一组,三张点数相同的牌可以和另外一张牌或两张点数相同的非王牌进行组,计算组对应组合被压过的概率;
S4、根据S2中得到的数组,在相同的数组中判断牌能否进行顺子组、多对组、飞机组,可能存在多种不同的组,构成多种不同组合,计算每种组合被压过的概率,以最小被压过的概率对应的组合为当前组合;
S5、根据S2中得到的数组,判断不同的数组中牌能否进行顺子组,顺子组后判断新生成的零牌能否再进行顺子组、多对组和飞机组,分别计算不同组对应的组合被压过的概率;
S6、比较最优出牌组合模块中步骤S3、S4、S5的概率值,将最小的概率值对应的组合作为最优出牌组合。
3.根据权利要求1所述的智能化斗地主自动博弈方法,其特征在于,所述计算叫分的分值的步骤包括:
C1、定义多个边界值,分别为N,Tp1,Tp2,TP3;
C2、判断玩家手中的牌不能被其他玩家压过的次数M;
C3、判断M是否大于N,如是,则继续执行下一步,否则,当前玩家的叫分值为0,停止计算;
C4、通过最优出牌组合模块判断当前玩家17张牌的一种最优组合,并计算该最优组合对应的概率值p;
C5、判断p值与Tp1,Tp2,TP3的大小关系,若P<Tp1则叫分值为3,若Tp1≤P<Tp2则叫分值为2,若Tp2≤P<Tp3则叫分值为1,P≥Tp3叫分值为0。
4.根据权利要求1所述的智能化斗地主自动博弈方法,其特征在于,所述出牌策略包括:“关底”,“顶牌”,“较大”,“正常”,其中,“关底”包括直接关底和间接关底,当使用所述直接关底时,当前玩家按组被压过的概率从大到小出牌,当使用间接关底时,当前玩家将组被压过的概率近似为1的情况放在最后出,其它组按被压过的概率从大到小以次打出,所述“关底”的策略在整个出牌的过程中一直存在;所述“顶牌”的策略为当前玩家在最优出牌组合模块下为了防止对手赢牌或者在当前玩家赢牌概率大于等于E的情况下打出被压过概率最小或次小的组,E为可以调节的参数;所述“较大”的策略为作用于地主上家,依据队友的出牌策略打出组合模块中平均点数大于R的策略,R为可以调节的参数;所述“正常”的策略为当前玩家在最优出牌组合模块下优先打出被压过概率最大的组的出牌策略。
5.根据权利要求1所述的智能化斗地主自动博弈方法,其特征在于,所述出牌策略包括步骤:
G1:依据牌型概率分布模块,最优出牌组合模块以及玩家位置判断当前玩家每组牌的压过概率;
G2:根据G1得到的概率判断当前玩家能否进行“关底”,若能“关底”,按“关底”策略出牌,若不能“关底”,判断当前玩家是否为地主,若是,执行G3,否则,执行G4-G6;
G3:若当前玩家最优出牌组合模块被压过的概率等于组数,则“正常”策略出牌,否则若某农民赢牌概率≥E,且其出牌平均点数≥R则“顶牌”策略,否则,若当前玩家组数≤N则优先“顶牌”策略,N为可调参数,否则,“正常”策略;
G4:若当前玩家为地主后出牌的首个玩家,判断地主打出的牌的平均点数,点数≤R,是则“正常”策略,否,根据牌型概率分布模型判断队友能压过当前牌的概率≈1,且队友最可能组数≤N,则让队友出牌,否则自己按“顶牌”策略出牌;
G5:若当前玩家为地主前出牌的玩家,当前玩家上家未压地主牌,则需要判断地主打出的牌平均点数<R,若是,则“较大”策略,否则“顶牌”策略,当前玩家上家已压地主牌判断当前玩家上家所出某组牌的平均点数是否≥R,是执行G6,否则当前玩家按“较大”策略出牌;
G6:当前玩家上家所出的牌平均点数是≥R,当前玩家判断自己赢牌的概率,若赢牌概率大于≥E,则“顶牌”策略,否则判断当前玩家牌组数,组数>N,则“正常”策略,否则让下家出牌,当前玩家上家所出的牌平均点数是<R,则“较大”策略。
6.根据权利要求1-5任一项所述的智能化斗地主自动博弈方法,其特征在于,所述牌-张数的概率分布矩阵有15行,分别对应牌3 ̄10,J,Q,K,A,2,以及小王和大王,有5列,分别对应牌的张数0 ̄4,矩阵中的元素记载其中任一张牌有几张的概率。
7.根据权利要求6所述的智能化斗地主自动博弈方法,其特征在于,所述最优出牌组合计算方法还包括:
每一位玩家手中的牌被分成若干组,每组牌同时打出,玩家手中的牌分组以后定义为一种组合,每一种组合被打动的概率为组合中所有组被打动的概率之和,每一种组被打动的概率为一种相对的概率计算,所述相对概率计算为在剩余牌下判断存在大于该组的牌的概率计算,并将此概率之和作为该牌组合被打动的概率。
8.根据权利要求7所述的智能化斗地主自动博弈方法,其特征在于,所述出牌策略还包括:在对弈的过程中非地主玩家将会考虑到个人的位置和最优出牌组合模块以及牌型概率分布模块进行出牌,地主玩家亦会根据农民的出牌情况调整出牌策略。
9.一种智能化斗地主自动博弈系统,其特征在于,包括牌型概率分布模块、最优出牌组合模块、叫分模块、对弈模块,
所述牌型概率分布模块依据当前玩家手中牌的集合,三张明牌的归属,以及其他两个玩家各自出过的牌,为其他两个玩家分别建立一个牌-张数的概率分布矩阵;每次牌局开始时,根据当前玩家手中的牌来计算所述两个牌-张数概率分布矩阵;叫分模块结束时,根据三张明牌的归属更新所述两个牌-张数概率分布矩阵,并进行修正;非当前玩家出牌结束时,根据其出牌情况更新所述两个牌-张数概率分布矩阵,并进行修正;
所述最优出牌组合模块依据当前玩家手中的牌和牌-张数概率分布矩阵计算最优的出牌组合;
计算最优出牌组合包括以下步骤:
S1、排序当前玩家手中的牌;
S2、将排序后点数相同的牌按数量进行分类,并保存在不同的数组中,其中,2和大王小王单独保存在另外一个数组中;
S3、将当前玩家点数相同的牌作为一组,三张点数相同的牌可以和另外一张牌或两张点数相同的非王牌进行组,计算组对应组合被压过的概率;
S4、根据S2中得到的数组,在相同的数组中判断牌能否进行顺子组、多对组、飞机组,可能存在多种不同的组,构成多种不同组合,计算每种组合被压过的概率,以最小被压过的概率对应的组合为当前组合;
S5、根据S2中得到的数组,判断不同的数组中牌能否进行顺子组,顺子组后判断新生成的零牌能否再进行顺子组、多对组和飞机组,分别计算不同组对应的组合被压过的概率;
S6、比较最优出牌组合模块中步骤S3、S4、S5的概率值,将最小的概率值对应的组合作为最优出牌组合;
所述叫分模块在完成发牌之后,当前玩家依据手中的牌计算叫分的分值,分值包括0分、1分、2分和3分,计算步骤如下:
C1、定义多个边界值,分别为N,Tp1,Tp2,TP3;
C2、判断玩家手中的牌不能被其他玩家压过的次数M;
C3、判断M是否大于N,如是,则继续执行下一步,否则,当前玩家的叫分值为0,停止计算;
C4、通过最优出牌组合模块判断当前玩家17张牌的一种最优组合,并计算该最优组合对应的概率值p;
C5、判断p值与Tp1,Tp2,TP3的大小关系,若P<Tp1则叫分值为3,若Tp1≤P<Tp2则叫分值为2,若Tp2≤P<Tp3则叫分值为1,P≥Tp3叫分值为0;
所述对弈模块依据所述最优出牌组合模块计算出的最优出牌组合,以及当前玩家的位置采取不同的出牌策略,包括:“关底”,“顶牌”,“较大”,所述对弈模块通过以下方式计算:
G1:依据牌型概率分布模块,最优出牌组合模块以及玩家位置判断当前玩家每组牌的压过概率;
G2:根据G1得到的概率判断当前玩家能否进行“关底”,若能“关底”,按“关底”策略出牌,若不能“关底”,判断当前玩家是否为地主,若是,执行G3,否则,执行G4-G6;
G3:若当前玩家最优出牌组合模块被压过的概率等于组数,则“正常”策略出牌,否则若某农民赢牌概率≥E,且其出牌平均点数≥R则“顶牌”策略,否则,若当前玩家组数≤N则优先“顶牌”策略,N为可调参数,否则,“正常”策略;
G4:若当前玩家为地主后出牌的首个玩家,判断地主打出的牌的平均点数,点数≤R,是则“正常”策略,否,根据牌型概率分布模型判断队友能压过当前牌的概率≈1,且队友最可能组数≤N,则让队友出牌,否则自己按“顶牌”策略出牌;
G5:若当前玩家为地主前出牌的玩家,当前玩家上家未压地主牌,则需要判断地主打出的牌平均点数<R,若是,则“较大”策略,否则“顶牌”策略,当前玩家上家已压地主牌判断当前玩家上家所出某组牌的平均点数是否≥R,是执行G6,否则当前玩家按“较大”策略出牌;
G6:当前玩家上家所出的牌平均点数是≥R,当前玩家判断自己赢牌的概率,若赢牌概率大于≥E,则“顶牌”策略,否则判断当前玩家牌组数,组数>N,则“正常”策略,否则让下家出牌,当前玩家上家所出的牌平均点数是<R,则“较大”策略。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910505041.9A CN110227263B (zh) | 2019-06-11 | 2019-06-11 | 一种智能化斗地主自动博弈方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910505041.9A CN110227263B (zh) | 2019-06-11 | 2019-06-11 | 一种智能化斗地主自动博弈方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110227263A true CN110227263A (zh) | 2019-09-13 |
CN110227263B CN110227263B (zh) | 2023-01-24 |
Family
ID=67859057
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910505041.9A Active CN110227263B (zh) | 2019-06-11 | 2019-06-11 | 一种智能化斗地主自动博弈方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110227263B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110639208A (zh) * | 2019-09-20 | 2020-01-03 | 超参数科技(深圳)有限公司 | 交互式任务的控制方法、装置、存储介质和计算机设备 |
CN111667075A (zh) * | 2020-06-12 | 2020-09-15 | 杭州浮云网络科技有限公司 | 一种业务执行方法、装置及其相关设备 |
CN112076475A (zh) * | 2020-09-02 | 2020-12-15 | 深圳市火元素网络技术有限公司 | 交互控制方法、装置、计算机设备和存储介质 |
CN113274738A (zh) * | 2021-06-09 | 2021-08-20 | 浙江畅唐网络股份有限公司 | 一种掼蛋游戏的牌型数据获取方法及相关装置 |
CN113877206A (zh) * | 2020-07-01 | 2022-01-04 | 飞狐信息技术(天津)有限公司 | 一种出牌对象确定方法及装置 |
CN115115995A (zh) * | 2022-08-29 | 2022-09-27 | 四川天启智能科技有限公司 | 一种基于自学习模型的麻将博弈决策方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109508789A (zh) * | 2018-06-01 | 2019-03-22 | 北京信息科技大学 | 预测手牌的方法、存储介质、处理器以及设备 |
CN109821228A (zh) * | 2019-03-07 | 2019-05-31 | 网易(杭州)网络有限公司 | 棋牌游戏的对象控制方法及装置 |
-
2019
- 2019-06-11 CN CN201910505041.9A patent/CN110227263B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109508789A (zh) * | 2018-06-01 | 2019-03-22 | 北京信息科技大学 | 预测手牌的方法、存储介质、处理器以及设备 |
CN109821228A (zh) * | 2019-03-07 | 2019-05-31 | 网易(杭州)网络有限公司 | 棋牌游戏的对象控制方法及装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110639208A (zh) * | 2019-09-20 | 2020-01-03 | 超参数科技(深圳)有限公司 | 交互式任务的控制方法、装置、存储介质和计算机设备 |
CN111667075A (zh) * | 2020-06-12 | 2020-09-15 | 杭州浮云网络科技有限公司 | 一种业务执行方法、装置及其相关设备 |
CN113877206A (zh) * | 2020-07-01 | 2022-01-04 | 飞狐信息技术(天津)有限公司 | 一种出牌对象确定方法及装置 |
CN112076475A (zh) * | 2020-09-02 | 2020-12-15 | 深圳市火元素网络技术有限公司 | 交互控制方法、装置、计算机设备和存储介质 |
CN112076475B (zh) * | 2020-09-02 | 2024-09-27 | 淳溥科技(深圳)有限公司 | 交互控制方法、装置、计算机设备和存储介质 |
CN113274738A (zh) * | 2021-06-09 | 2021-08-20 | 浙江畅唐网络股份有限公司 | 一种掼蛋游戏的牌型数据获取方法及相关装置 |
CN115115995A (zh) * | 2022-08-29 | 2022-09-27 | 四川天启智能科技有限公司 | 一种基于自学习模型的麻将博弈决策方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110227263B (zh) | 2023-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110227263A (zh) | 一种智能化斗地主自动博弈方法及系统 | |
US5816916A (en) | Video poker game | |
US6382628B2 (en) | Concepts for playing multiple deck card game | |
US20010015528A1 (en) | Method of playing a multiple-draw poker card game | |
US8500532B2 (en) | Machine-implemented method of handling hand tiles/cards of a virtual player during a tile/card game and gaming apparatus | |
WO2013146072A1 (ja) | ゲームシステム、その制御方法、ゲーム装置及びコンピュータプログラム | |
US20060055113A1 (en) | Multiplayer card tournaments and methods | |
US6817615B1 (en) | Modified poker card game | |
US7156398B1 (en) | Card game and deck for use therewith | |
US6733011B2 (en) | Super Baccarat card game | |
US20040075214A1 (en) | Card game | |
WO2006015085A2 (en) | System and method of gaming involving continued distribution of components until certain criteria are met | |
US20110244932A1 (en) | Dynamic Bracket | |
US8348738B2 (en) | Computer-based, interactive, multiplayer card selection game using a randomly generated limited deck for card selection | |
US7681885B2 (en) | Card game | |
US20070035090A1 (en) | Card game | |
TW201136638A (en) | Electronic game method and system, computer program product | |
US20080227516A1 (en) | Poker video game terminal | |
US20080036148A1 (en) | Poker game | |
US20120299243A1 (en) | Casino-style game | |
TW201434516A (zh) | 以電子裝置執行棋牌之方法及其電子裝置 | |
TWI250421B (en) | Method of playing chess with an artificial intelligent device | |
US9039506B1 (en) | Competitive solitaire game | |
US20130069310A1 (en) | System and method for poker game | |
US20230143911A1 (en) | Math strategy game |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |