麻将游戏软件的听牌牌型分析

麻将游戏软件的听牌牌型分析

ID:19657151

大小:62.50 KB

页数:9页

时间:2018-10-04

麻将游戏软件的听牌牌型分析_第1页
麻将游戏软件的听牌牌型分析_第2页
麻将游戏软件的听牌牌型分析_第3页
麻将游戏软件的听牌牌型分析_第4页
麻将游戏软件的听牌牌型分析_第5页
资源描述:

《麻将游戏软件的听牌牌型分析》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、麻将游戏软件的听牌牌型分析:麻将游戏软件的开发,就其内核部分,大致可以分为自动发牌、自动智能出牌、吃碰杠的处理、听牌判断、胡牌判断、基于不同麻将玩法规则的番数计算等几大部分。其中以自动智能出牌、听牌判断、胡牌判断等处理最为复杂。这里主要介绍听牌牌型的算法设计思想。  关键词:麻将游戏;听牌牌型;成牌牌型;VB6.0  :TP311:A:1009-3044(2011)11-2602-03  麻将的牌局虽然复杂且变化无常,但构成手中的13张牌也就只有两类:数牌⑴、字牌⑵。听牌的牌型,也只可能是由此2类中的1-2

2、类组成,并且,其中一类或一部分必须得是成牌牌型,另一类或其一部分才能构成听牌牌型⑶。如此理解后可知,要分析听牌,首先要分析最基本的单类牌的听牌牌型。根据麻将的胡牌机理,数牌与字牌是属不同的类型,它们的听牌牌型分析要分别处理。  1数牌的听牌牌型分析  数牌中虽包括条、筒、万牌,但同属一类,对它们的听牌牌型分析方法是一样的,下面以条为例来分析。  对于条而言,任何一次听牌时,手中条的数量只可能是:0、1、2、4、5、7、8、10、11、13中的任一数目,其它数目的条均不能构成听牌牌型。所以对于条的听牌牌型分析

3、,只限于数目为1、2、4、5、7、8、10、11、13的分析。  1)1张牌的听牌牌型:A型,用[1]表示,定为基本听牌牌型。  2)2张牌的听牌牌型:只能是AA⑷、AB、AC型,用[2]表示,定为基本听牌牌型。  3)4张牌的听牌牌型有:①ABCD、ABCF、AAAB等可分解成左或右三张是成牌牌型,听右或左[1]的,用[3]和[1]的组合表示(其中:[3]表示3张牌是成牌牌型,[1]表示1张牌是听牌牌型,称它是[3]和[1]的组合型);②AABB、AABC、AAAB等可分解成左或右二张是成牌牌型,听右或左

4、[2]的,称它是[2]和[2]的组合型;③ABBC型,不能用成牌牌型+基本听牌牌型[1]、[2]来分解的,称之为特殊听牌牌型。  4)5张牌的听牌牌型有:①AAABB、AABCD等[3]和[2]组合型;②ABBBC、ABBCC、AABCC等特殊听牌牌型。  5)7张牌的听牌牌型有:①[2]和[5]、[3]和[4]、[5]和[2]、[6]和[1]的组合型;②AABBBCC等特殊听牌牌型。  6)8张牌的听牌牌型有:①[6]和[2]、[3]和[5]的组合型;②AABBBCCC等特殊听牌牌型。  7)10张牌的听

5、牌牌型有:[2]和[8]、[3]和[7]、[6]和[4]等组合型。  8)11张牌的听牌牌型有:[2]和[9]、[3]和[8]、[5]和[6]等组合型。  9)13张牌的听牌牌型有:[2]和[11]、[3]和[10]、[5]和[8]等组合型。  2数牌听牌牌型的计算机分析处理  计算机分析处理问题时,关系到数据结构的知识。在此便是麻将在计算机中的存储形式,分两类:一是便于程序处理的具体代表单张麻将的符号,如用Mi(i=1,2,……,9)代表条1到9;二是便于软件界面显示的具体单张麻将图形。这里只说程序的内在

6、处理,对于条,这里采取的是常见的数组,用CARDm(14)来存储,其中,前13位存放手中可能有的条牌,第14位用于存放统计得到的手中条的总张数。如表1所示。  对于条数目为1、2、4、5、7、8、10、11、13的听牌牌型分析,则分别构造过程来处理。下面以条数目为2、4处理算法为例来分析,其它略。开发工具采用VB6.0。  1)两张牌的听牌牌型分析  PublicSubListen2(card())  x21=Val(Right(card(1),1)):x22=Val(Right(card(2),1))  

7、Ifx21=x22Then'AA型的听牌  CallListenCardInsert(Left(card(2),1)+Trim(Str(x21)))  EndIf  ……'BC型的听牌分析略。  Ifx22-x21=2Then'AC听B型  CallListenCardInsert(Left(card(2),1)+Trim(Str(x22-1)))  EndIf  EndSub  2)四张牌的听牌牌型,这里只对ACCC型分析,其余略。  PublicSubListen4(card())  ……  Ifsca

8、rd3(card4133)=1then'后3张牌构成成牌牌型,则听第1张牌  CallListenCardInsert(A)'把第1张牌插入存放听牌的数组  EndIf  Ifscard2(card4221)=1then'后2张牌构成成牌牌型,则听前2张牌  CallListen2(card4222)'调用设计好听2张牌的过程Linsten2()  Endif  ……  EndSub  其中:数组card4133

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。