专利名称:斗地主游戏中计算机玩家智能算法的实现方法
技术领域:
本发明涉及一种移动通信技术,特别是涉及一种斗地主游戏中计算机玩家智能算 法的实现方法。
背景技术:
斗地主游戏是一款三人玩的争先型牌类游戏,由于其简单的规则,明快的节奏而 成为一款老少皆宜,风靡网络的休闲游戏。但是目前大部分的单机版斗地主游戏中的计算 机玩家的出牌策略比较单一,容易被玩家抓到规律,从而大大降低了玩家对游戏的乐趣。而 对于联网斗地主游戏来说,有时会遇到在线玩家数量很少的情况或时间段,此时如果能虚 拟一些计算机玩家陪同真正玩家进行游戏,将会显著提高游戏的人气,而如何使这些计算 机玩家能够模拟真正玩家的出牌就成为了解决问题的关键。
发明内容
为了解决传统斗地主计算机玩家出牌策略单一、智能程度低下的问题,本发明提 供了一种斗地主游戏中计算机玩家智能算法的实现方法,使计算机玩家能够根据自己在游 戏中所处身份的不同,采取不同的出牌策略,并且借助于遗传算法使得该智能算法本身能 够在游戏过程中不断演化,产生更加智能的出牌策略。同时,由于计算机玩家可以通过作弊 的方式得知其他人手中的牌,所以使得计算机玩家的出牌策略将会更加具有针对性。本发明是通过下述技术方案来解决上述技术问题的一种斗地主游戏中计算机玩 家智能算法的实现方法,其特征在于,该方法包括以下步骤Si、随机产生三个基因库,每组基因库由染色体组成,对基因库内的数据进行持久 性存储;S2、游戏开始后,计算机玩家根据在游戏中所处的角色不同而选取相应的智能算 法和染色体;S3、每次轮到计算机玩家出牌时,如果无法出牌则选择过牌,跳到步骤S6 ;否则出 牌的话,计算出所有的合法的出牌方式,并计算按照每种出牌方式出牌之后的游戏局面;S4、对步骤S3中得到的所有的游戏局面进行评分;S5、按照得分最高的游戏局面对应的出牌方式进行出牌;S6、每当轮到自己出牌时,重复执行步骤S3至S5 ;S7、游戏结束之后,对本局游戏中使用的染色体进行评分;S8、当某个基因库的使用次数超过设定值之后,删除基因库中得分最低的染色体, 对剩下的染色体进行杂交和变异,并将染色体数目放大到原来的个数,使基因库中的染色 体数目保持不变;S9、一旦游戏重新开始,重复执行步骤S2至S8。优选地,所述三个基因库分别对应三种不同的智能算法类型。优选地,所述三种不同的智能算法类型为地主玩家、地主上家和地主下家。
优选地,所述基因库内的数据存储到数据库或文件中。优选地,所述步骤S4中对游戏局面评分要遵照游戏局面评分规则,游戏局面评分 规则包括对于地主玩家的算法和对于地主上家和地主下家的算法。优选地,所述步骤S7对染色体评分遵照游戏结束后对染色体进行评分的规则。本发明的积极进步效果在于本发明计算机的出牌算法能够在游戏中得到不断进 步,使玩家在游戏的时候感到越来越有挑战性,使游戏更加具有可玩性和娱乐性。
图1为本发明斗地主游戏中计算机玩家智能算法的实现方法的流程图。
具体实施例方式下面结合附图给出本发明较佳实施例,以详细说明本发明的技术方案。如图1所示,本发明的斗地主游戏中计算机玩家智能算法的实现方法包括以下步 骤步骤一、随机产生三个基因库,这三个基因库分别对应三种不同的智能算法类型, 三种不同的智能算法类型为地主玩家、地主上家和地主下家。每组基因库由S条染色体组 成。每条染色体是η个基因的有序序列(η的取值根据算法具体实现会有所不同,本例中取 η = 10)。每个基因是取值在0到1之间的浮点数,即每个染色体可以表示为{G1,G2,G3至 Gn}。对基因库内的数据进行持久性存储,可以放到数据库中或者以文件形式保存。步骤二、游戏开始后,计算机玩家根据在游戏中所处的角色不同而选取相应的智 能算法和染色体,即从相应的基因库中选取一条染色体在本局游戏中使用。最后记录该基 因库被使用过的次数。步骤三、每次轮到计算机玩家出牌时,如果无法出牌则选择过牌,跳到步骤六。否 则出牌的话,计算出所有的合法的出牌方式,并计算按照每种出牌方式出牌之后的游戏局 面,即将手中的牌减去自己要出的牌。步骤四、对步骤三中得到的所有的游戏局面进行评分。评分规则参看后面所述的 “游戏局面评分规则”。步骤五、按照得分最高的游戏局面对应的出牌方式进行出牌,即选择得分最高的 游戏局面,根据其对应的出牌方式出牌,使游戏进行到该种局面。步骤六、每当轮到自己出牌时,重复执行步骤三至步骤五。
0029]步骤七、游戏结束之后,对本局游戏中使用的染色体进行评分。评分规则参看后面 所述的“游戏结束后对染色体进行评分的规则”。最后设置该染色体的总分(总分=以前的 得分+在本局游戏中得分),将得分信息进行持久性存储。步骤八、当某个基因库的使用次数超过设定值K次之后,删除基因库中得分最低 的?%染色体,对剩下的染色体进行杂交,变异,并将染色体数目放大到原来的个数S,使基 因库中的染色体数目保持不变。最后将该基因库的使用次数清零。步骤九、一旦游戏重新开始,重复执行步骤二至步骤八。其中,上述的S、K、P的取值会随调试情况而不断调整。游戏局面评分规则包括对于地主玩家的算法和对于地主上家和地主下 的算法,具体如下对于地主玩家的算法,游戏局面得分=自己的牌的得分*G1+假设下家打过自己 刚出的牌后剩余牌的得分* (-G2) +假设上家打过自己刚出的牌后剩余牌的得分* (-G3);对于地主上家和地主下家的算法,游戏局面得分=自己的牌的得分*G1+假设联 邦打过自己刚出的牌后剩余牌的得分*G2+假设地主打过自己刚出的牌后剩余牌的得分 *(_G3);其中,在计算“假设上家/下家/地主/联邦打过自己刚出的牌后剩余牌的得分” 时,如果有多种方式打过“自己刚出的牌”,则计算各种情况的平均值。如果无法打过“自己 刚出的牌”,则计算过牌后手里的牌的得分。Gl、G2、G3的取值分别对应于游戏开始时选中 的染色体上的前三个基因。对牌的评分规则如下如果牌的数量为零,则得分为最高分。否则按照以下方式计算得分将牌按照连续三条,连续对子,顺子,三条,对子,单牌的牌型顺序依次划分成对应 的牌型(连续三条,连续对子,顺子这些牌型还可以继续细分,为方便说明本例中只将其分 为6种)。每个牌型的得分=该牌型中每一张牌的权值总和/该牌型中所有牌的数量*该牌 型的权值。
其中,每一张牌所对应的权值分别为
方块/红心/黑桃 方块/红心/黑桃 方块/红心/黑桃 方块/红心/黑桃 方块/红心/黑桃 方块/红心/黑桃 方块/红心/黑桃 方块/红心/黑桃 方块/红心/黑桃 方块/红心/黑桃 方块/红心/黑桃 方块/红心/黑桃 方块/红心/黑桃 小王,权值为16 ; 大王,权值为17 ; 牌型的权值分别为 连续三条,G4 ; 连续对子,G5 ; 顺子,G6 ; 三条,G7 ; 对子,G8 ;
草花3,权值为3 草花4,权值为4 草花5,权值为5 草花6,权值为6 草花7,权值为7 草花8,权值为8 草花9,权值为9 草花10,权值为10; 草花J,权值为11 草花Q,权值为12 草花K,权值为13 草花A,权值为14 草花2,权值为15
5
单牌,G9;其中,G4、G5至G9分别对应所选择的染色体中对应位置的基因。如果牌型分的更 细的话,则会对应更多的基因。为了方便说明,本例只选择4到9位置的基因。牌的得分=(所有牌型的得分之和/牌型的数量)/(牌型的数量*Gn)。其中Gn 为所选择的染色体的最后一个位置的基因。游戏结束后对染色体进行评分的规则包括染色体得分和Y的取值,具体如下染色体得分=Y-(开局时手里每张牌的权值之和)/(开局时手里牌的个数);Y的取值如果游戏胜利,Y = 20 ;如果游戏失败,Y = 0。虽然以上描述了本发明的具体实施方式
,但是本领域的技术人员应当理解,这些 仅是举例说明,在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变 更或修改。因此,本发明的保护范围由所附权利要求书限定。
权利要求
一种斗地主游戏中计算机玩家智能算法的实现方法,其特征在于,该方法包括以下步骤S1、随机产生三个基因库,每组基因库由染色体组成,对基因库内的数据进行持久性存储;S2、游戏开始后,计算机玩家根据在游戏中所处的角色不同而选取相应的智能算法和染色体;S3、每次轮到计算机玩家出牌时,如果无法出牌则选择过牌,跳到步骤S6;否则出牌的话,计算出所有的合法的出牌方式,并计算按照每种出牌方式出牌之后的游戏局面;S4、对步骤S3中得到的所有的游戏局面进行评分;S5、按照得分最高的游戏局面对应的出牌方式进行出牌;S6、每当轮到自己出牌时,重复执行步骤S3至S5;S7、游戏结束之后,对本局游戏中使用的染色体进行评分;S8、当某个基因库的使用次数超过设定值之后,删除基因库中得分最低的染色体,对剩下的染色体进行杂交和变异,并将染色体数目放大到原来的个数,使基因库中的染色体数目保持不变;S9、一旦游戏重新开始,重复执行步骤S2至S8。
2.如权利要求1所述的斗地主游戏中计算机玩家智能算法的实现方法,其特征在于, 所述三个基因库分别对应三种不同的智能算法类型。
3.如权利要求2所述的斗地主游戏中计算机玩家智能算法的实现方法,其特征在于, 所述三种不同的智能算法类型为地主玩家、地主上家和地主下家。
4.如权利要求1所述的斗地主游戏中计算机玩家智能算法的实现方法,其特征在于, 所述基因库内的数据存储到数据库或文件中。
5.如权利要求1所述的斗地主游戏中计算机玩家智能算法的实现方法,其特征在于, 所述步骤S4中对游戏局面评分要遵照游戏局面评分规则,游戏局面评分规则包括对于地 主玩家的算法和对于地主上家和地主下家的算法。
6.如权利要求1所述的斗地主游戏中计算机玩家智能算法的实现方法,其特征在于, 所述步骤S7对染色体评分遵照游戏结束后对染色体进行评分的规则。
全文摘要
本发明公开一种斗地主游戏中计算机玩家智能算法的实现方法,其包括以下步骤S1、随机产生三个基因库,每组基因库由染色体组成,对基因库内的数据进行持久性存储;S2、游戏开始后,计算机玩家根据在游戏中所处的角色不同而选取相应的智能算法和染色体;S3、每次轮到计算机玩家出牌时,如果无法出牌则选择过牌,跳到步骤S6;否则出牌的话,计算出所有的合法的出牌方式,并计算按照每种出牌方式出牌之后的游戏局面;S4、对步骤S3中得到的所有的游戏局面进行评分;S5、按照得分最高的游戏局面对应的出牌方式进行出牌;S6、每当轮到自己出牌时,重复执行步骤S3至S5;以及S7至S9的步骤。本发明使游戏更加具有可玩性和娱乐性。
文档编号G06F19/00GK101901304SQ201010246269
公开日2010年12月1日 申请日期2010年8月5日 优先权日2010年8月5日
发明者郭昭何 申请人:上海酷吧信息技术有限公司