电子棋牌数据处理方法及系统的制作方法
【专利摘要】本发明涉及一种电子棋牌数据处理方法及系统,包括:生成牌型配置表;读取牌型配置表并选定实际使用概率符合其正态分布概率的一种牌型,根据所选定的牌型中各个牌型种子出现的个数,在随机生成的一副牌中随机取出对应个数的牌型种子,生成牌型种子数组,并生成随机角色数组;将牌型种子数组中的牌型种子随机分配给所述随机角色数组中的角色,将该副牌中除牌型种子数组中的牌型种子以外的牌随机分配给随机角色数组中的所有角色;对所有角色所获得的牌进行校验,如果校验合格则将分配给每个角色的牌传输给每个角色所对应的客户端,否则,重新返回所述读取所述牌型配置表的步骤。本发明把牌型与概率抽象成配置表的模式封装在后台中,效率更高。
【专利说明】电子祺牌数据处理方法及系统
【技术领域】
[0001]本发明涉及计算机数据处理【技术领域】,特别涉及一种电子棋牌数据处理方法及系统。
【背景技术】
[0002]游戏终端中的棋牌类游戏(如:斗地主、麻将等)除了需要在玩法上吸引用户外,还需要生成好的配牌算法,好的配牌算法可以避免用户猜到牌型或者由于总抽不到好牌而过早放弃。
[0003]在没有使用配牌算法之前,比较通用的做法是采用随机配牌的策略,也就是将所有的牌按照随机策略分配给每个角色,算法很简单,但对于出牌组合的分布基本不可以控制。角色的牌都很分散,拿到好牌的概率会比较小。
[0004]还有一种方法是固定生成多副好牌,然后每次对角色配牌时就从这些固定的好牌中选取某一副好牌分配给每个角色。这样做可以做到好牌的出牌组合可以控制,但是,每种特殊出牌组合概率不好控制,按照通用的方法,好牌和差牌的可配置空间很小。另外,只有单局游戏的概率控制,没有全局的概率控制,随着时间的推进,很难保证大量的牌局综合起来还是这个概率。更重要的问题是,现有技术很难做到动态配置,好牌的出牌组合需要提前生成好,由于配牌算法不能做到可配置性,每一次配牌策略的变化都需要升级后台服务器,效率很低。
【发明内容】
[0005]本发明的目的在于,提供一种可解决上述问题的电子棋牌数据处理方法及系统。
[0006]本发明的目的及解决其技术问题是采用以下技术方案来实现的。
[0007]—种电子棋牌数据处理方法,包括:生成牌型配置表,所述牌型配置表包括由多种牌型种子所构成的多种牌型及每种牌型对应的属性,每种牌型的属性包括该种牌型中各种牌型种子出现的个数以及根据正态分布函数获得的该种牌型的正态分布概率;读取所述牌型配置表并选定实际使用概率符合其正态分布概率的一种牌型,根据所选定的牌型中各个牌型种子出现的个数,在随机生成的一副牌中随机取出对应个数的牌型种子,生成牌型种子数组;随机生成随机角色数组;将所述牌型种子数组中的牌型种子依次分配给由所述随机角色数组中随机选出的角色,将该副牌中除所述牌型种子数组中的牌型种子以外的牌随机分配给所述随机角色数组中的所有角色;对分配给每个角色的牌进行校验,如果校验合格则将分配给每个角色的牌传输给每个角色所对应的客户端,否则,重新返回所述读取所述牌型配置表的步骤。
[0008]一种电子棋牌数据处理系统,包括:牌型配置模块,用于生成牌型配置表,所述牌型配置表包括由多种牌型种子所构成的多种牌型及每种牌型对应的属性,每种牌型的属性包括该种牌型中各种牌型种子出现的个数以及根据正态分布函数获得的该种牌型的正态分布概率;牌型种子数组生成模块,用于读取所述牌型配置表并选定实际使用概率符合其正态分布概率的一种牌型,根据所选定的牌型中各个牌型种子出现的个数,在随机生成的一副牌中随机取出对应个数的牌型种子,生成牌型种子数组;随机角色数组生成模块,用于随机生成随机角色数组;配牌模块,用于将所述牌型种子数组中的牌型种子依次分配给由所述随机角色数组中随机选出的角色,将该副牌中除所述牌型种子数组中的牌型种子以外的牌随机分配给所述随机角色数组中的所有角色;校验模块,用于对分配给每个角色的牌进行校验,如果校验合格则将分配给每个角色的牌传输给每个角色所对应的客户端,否则,重新返回所述读取所述牌型配置表的步骤。
[0009]与现有技术相比,本发明所提出的电子棋牌数据处理方法及系统中牌型和该牌型出现的概率是独立的互不影响的,二者可以交叉出各种情况,满足笛卡尔乘积模式,使得在具体牌型生成中不需要关注牌型组成,只需进行概率区间判断,开发简单,效率高;每种牌型的正态分布概率是个全局概率,可以进行动态修正,保持从整体上看每种牌型出现的概率不会有大的偏差;本发明的可配置性强,把牌型与概率抽象成配置表的模式封装在后台中,如需要进行牌型变更无需修改代码,便可实现牌型的定期变化,不需要升级后台服务器,效率更高。
【专利附图】
【附图说明】
[0010]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0011]图1是本发明第一实施例提供的一种电子棋牌数据处理方法的流程图。
[0012]图2是图1中步骤Sll的一种具体流程图。
[0013]图3是不同牌型的正态分布图。
[0014]图4是图1中步骤S12的一种具体流程图。
[0015]图5是本发明第一实施例提供的一种电子棋牌数据处理方法的后台调用时序图。
[0016]图6是本发明第二实施例提供的一种电子棋牌数据处理系统的结构示意图。
[0017]图7是图6中牌型配置模块21的一种具体结构示意图。
[0018]图8是图7中牌型生成模块213的一种具体结构示意图。
[0019]图9是图6中牌型种子数组生成模块22的一种具体结构示意图。
【具体实施方式】
[0020]为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的电子棋牌数据处理方法及系统其【具体实施方式】、方法、步骤、结构、特征及其功效,详细说明如下。
[0021]有关本发明的前述及其他技术内容、特点及功效,在以下配合参考图式的较佳实施例的详细说明中将可清楚呈现。通过【具体实施方式】的说明,当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图式仅是提供参考与说明之用,并非用来对本发明加以限制。
[0022]本发明提出的电子棋牌数据处理方法和系统适用于在可以作为游戏终端的终端设备(例如电子游戏机、智能手机、平板电脑等)上实现的棋盘游戏和牌类游戏,主要包括:扑克、斗地主、麻将、中国象棋、中国跳棋、军旗、黑白棋、五子棋等。
[0023]第一实施例
[0024]参照图1,图1是本发明第一实施例提供的一种电子棋牌数据处理方法的流程图。于本实施例中,电子棋牌数据处理方法包括:
[0025]Sll:生成牌型配置表,所述牌型配置表包括由多种牌型种子所构成的多种牌型及每种牌型对应的属性,每种牌型的属性包括该种牌型中各种牌型种子出现的个数以及根据正态分布函数获得的该种牌型的正态分布概率。
[0026]考虑到牌型配置表的灵活性,可以将所有可能出现的牌型以其中的牌型种子出现个数的形式进行配置。
[0027]请参照图2,图2是图1中步骤Sll的具体流程图。于步骤Sll中,进一步可包括以下步骤:
[0028]Slll:根据棋牌的种类选取至少两种牌型种子,所选取的至少两种好牌牌型种子的组合为所述牌型。
[0029]根据具体的棋牌的种类,所选取的牌型种子也不同,例如,在扑克牌的“斗地主”游戏中,选取牌型种子为:“顺子”(五张以上顺连的牌,例如Α^)、“炸弹”(有四张同一点数的牌,例如7蠢7Ψ 7全7參)、“三张”(有三张同一点数的牌,例如3办3彎3?)、“连对”(两张相同点数的牌顺连另外两张相同点数的牌,例如9V 9Φ 8Ψ 8?),那么,“顺子”、“炸弹”、“三张”、“连对”的组合就构成牌型。根据“顺子”、“炸弹”、“三张”、“连对”在一副牌中出现的个数进行不同的组合又可以形成多种牌型。例如I个“顺子”、O个“炸弹”、2个“三张”、O个“连对”形成一种牌型;0个“顺子”、3个“炸弹”、O个“三张”、I个“连对”形成另一种牌型。牌型种子可以事先存储在一个种子列表或者数据库中。
[0030]S112:设置所述每种牌型种子在一副牌中出现个数的个数区间。
[0031]对已经选取好的牌型种子可以对其的出现个数的个数区间进行设置,也就是设置该种牌型种子在一副牌中最多能够出现的个数。个数区间可以由人为提前配置好的,具体个数根据产品策略定制。例如,可以设置在一副牌中牌型种子“顺子”出现的个数区间为[O, 5],也就是在一副牌中最多可以生成5个“顺子”。
[0032]S113:采用概率区间算法生成牌型。
[0033]于步骤S113中,根据棋牌的种类设置所述每种牌型中各种牌型种子可能出现的个数对应的概率区间,该概率区间以百分之一为单位;对牌型中的每种牌型种子均进行如下步骤:随机生成一个比较大的数,比较大的数特指105至107之间的数。计算该比较大的数除以100后所得到的余数;设定该余数所在的概率区间所对应的个数为该牌型种子出现的个数。
[0034]继续以上面的牌型种子“顺子”为例,请参照表一,在表一中,由于“顺子”的个数区间为[0,5],那么,“顺子”可能出现的个数分别为O个、1个、2个、3个、4个、5个,设置这些个数对应的概率区间,该概率区间以百分之一为单位,例如设置“顺子”出现O个的概率区间为0-5、设置“顺子”出现I个的概率区间为5~15、“顺子”出现2个的概率区间为15~35、“顺子”出现3个的概率区间为35~50、“顺子”出现4个的概率区间为5~15、“顺子”出现5个的概率区间为0-5。[0035]表一
[0036]
【权利要求】
1.一种电子棋牌数据处理方法,其特征在于,包括: 生成牌型配置表,所述牌型配置表包括由多种牌型种子所构成的多种牌型及每种牌型对应的属性,每种牌型的属性包括该种牌型中各种牌型种子出现的个数以及根据正态分布函数获得的该种牌型的正态分布概率; 读取所述牌型配置表并选定实际使用概率符合其正态分布概率的一种牌型,根据所选定的牌型中各个牌型种子出现的个数,在随机生成的一副牌中随机取出对应个数的牌型种子,生成牌型种子数组,并采用随机算法生成随机角色数组; 将所述牌型种子数组中的牌型种子依次分配给由所述随机角色数组中随机选出的角色,将该副牌中除所述牌型种子数组中的牌型种子以外的牌随机分配给所述随机角色数组中的所有角色; 对分配给每个角色的牌进行校验,如果校验合格则将分配给每个角色的牌传输给每个角色所对应的客户端,否则,重新返回所述读取所述牌型配置表的步骤。
2.根据权利要求1所述的方法,其特征在于,所述生成牌型配置表的步骤,包括: 根据棋牌的种类选取至少两种牌型种子,所选取的至少两种牌型种子的组合为所述牌型; 设置所述每种牌型种子在一副牌中出现个数的个数区间; 采用概率区间算法生成牌型; 判断生成的牌型中每种牌型种子的出现个数是否落在该种牌型种子的个数区间内,如果判断结果为是,则返回该牌型中各个牌 型种子的出现个数并保留该牌型,否则,重新生成牌型,当所保留的牌型满足预订数量时停止生成牌型; 根据正态分布函数获得所生成的每种牌型的正态分布概率。
3.根据权利要求2所述的方法,其特征在于,所述步骤采用概率区间算法生成牌型,包括: 根据棋牌的种类设置所述每种牌型中各种牌型种子可能出现的个数对应的概率区间,该概率区间以百分之一为单位; 对该牌型中每种牌型种子均进行如下步骤: 随机生成一个IO5至IO7之间的数,计算该数除以100后所得到的余数; 设置该余数所在的概率区间所对应的个数为该牌型种子出现的个数。
4.根据权利要求1所述的方法,其特征在于,所述步骤读取所述牌型配置表并选定实际使用概率符合其正态分布概率的一种牌型,包括: 读取所述牌型配置表中的一种牌型,判断所选中的牌型的实际使用概率是否小于该牌型的正态分布概率,如果小于,则根据所选定的牌型中各种牌型种子出现的个数,在该副牌中按照对应牌型种子的个数随机取出对应的牌型种子,生成牌型种子数组,否则,重新选定一种牌型。
5.根据权利要求1所述的方法,其特征在于,对所有角色的牌进行校验包括校验每个角色的牌的数目、每个角色的牌型种子出现的概率是否超过预定概率或者角色与角色之间的牌型种子的差异是否超过预定差异值。
6.一种电子棋牌数据处理系统,其特征在于,包括: 牌型配置模块,用于生成牌型配置表,所述牌型配置表包括由多种牌型种子所构成的多种牌型及每种牌型对应的属性,每种牌型的属性包括该种牌型中各种牌型种子出现的个数以及根据正态分布函数获得的该种牌型的正态分布概率; 牌型种子数组生成模块,用于读取所述牌型配置表并选定实际使用概率符合其正态分布概率的一种牌型,根据所选定的牌型中各个牌型种子出现的个数,在随机生成的一副牌中随机取出对应个数的牌型种子,生成牌型种子数组; 随机角色数组生成模块,用于随机生成随机角色数组; 配牌模块,用于将所述牌型种子数组中的牌型种子依次分配给由所述随机角色数组中随机选出的角色,将该副牌中除所述牌型种子数组中的牌型种子以外的牌随机分配给所述随机角色数组中的所有角色; 校验模块,用于对分配给每个角色的牌进行校验,如果校验合格则将分配给每个角色的牌传输给每个角色所对应的客户端,否则,重新返回所述读取所述牌型配置表的步骤。
7.根据权利要求6所述的系统,其特征在于,所述牌型配置模块,包括: 牌型种子设置模块,用于根据棋牌的种类选取至少两种牌型种子,所选取的至少两种好牌牌型种子的组合为所述牌型; 个数区间设置模块,用于设置所述每种好牌牌型种子出现个数的个数区间; 牌型生成模块,用于采用概率区间算法生成牌型; 第一判断模块,用于判断生成的牌型中每种牌型种子的出现个数是否落在该种牌型种子的概率区间内, 如果判断结果为是,则返回该牌型中各个牌型种子的出现个数并保留该牌型,否则,所述牌型生成模块重新生成牌型,当所保留的牌型满足预订数量时停止生成牌型; 概率生成模块,用于根据正态分布函数获得的所生成的每种牌型的正态分布概率。
8.根据权利要求7所述的方法,其特征在于,所述牌型生成模块,包括: 概率区间设定模块,用于根据棋牌的种类设定所述每种牌型中各种牌型种子可能出现的个数对应的概率区间,该概率区间以百分之一为单位; 牌型种子个数生成模块,用于对该牌型中每种牌型种子均进行如下步骤:随机生成一个比较大的数,计算该比较大的数除以100后所得到的余数;设定该余数所在的概率区间所对应的个数为该牌型种子出现的个数。
9.根据权利要求6所述的系统,其特征在于,所述牌型种子数组生成模块包括牌型选择模块、判断模块、取牌模块: 所述牌型选择模块用于选定所述牌型配置表中的一种牌型; 所述第二判断模块用于判断所述牌型选择模块所选中的牌型的实际使用概率是否小于该牌型的正态分布概率,如果小于,则所述取牌模块根据所选定的牌型中各种牌型种子出现的个数,在该副牌中按照对应牌型种子的个数随机取出对应的牌型种子,生成牌型种子数组,否则,所述牌型选择模块重新选定一种牌型。
10.根据权利要求6所述的系统,其特征在于,对所有角色的牌进行校验包括校验每个角色的牌的数目、每个角色的牌型种子出现的概率是否超过预定概率或者角色与角色之间的牌型种子的差异是否超过预定差异值。
【文档编号】A63F13/45GK103877725SQ201210558387
【公开日】2014年6月25日 申请日期:2012年12月20日 优先权日:2012年12月20日
【发明者】马亮, 贺志强, 罗春华, 杨基泽 申请人:腾讯科技(深圳)有限公司