CN104915532A - 电子牌游戏数据处理方法和系统 - Google Patents
电子牌游戏数据处理方法和系统 Download PDFInfo
- Publication number
- CN104915532A CN104915532A CN201410091437.0A CN201410091437A CN104915532A CN 104915532 A CN104915532 A CN 104915532A CN 201410091437 A CN201410091437 A CN 201410091437A CN 104915532 A CN104915532 A CN 104915532A
- Authority
- CN
- China
- Prior art keywords
- board
- board data
- data
- unallocated
- priority level
- 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
Landscapes
- Pinball Game Machines (AREA)
Abstract
本发明提供了一种电子牌游戏数据处理方法,包括:获取未分配牌数据和与用户标识对应的已分配牌数据和待分配牌数量;获取预设优先级别表;按照优先级别表中的优先级顺序从优先级别表中逐个读取级别标识;判断用户标识对应的已分配牌数据中的第一牌数据是否能够和未分配牌数据中的第二牌数据组成与读取的级别标识对应的预设牌型,第二牌数据的数量不超过用户标识对应的待分配牌数量;若判断为能够组成,则将第二牌数据分配给用户标识对应,更新已分配牌数据、未分配牌数据和待分配牌数量,并继续从优先级别表中读取级别标识;直至读取完优先级别表中的级别标识。本发明的技术方案可减轻服务器负担。本发明还提供了一种电子牌游戏数据处理系统。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种电子牌游戏数据处理方法和系统。
背景技术
随着计算机技术的发展,人们原先在线下进行的各种电子牌娱乐游戏已经被制作成网络游戏或网页游戏,使得全国各地的人们随时可以通过网络建立连接进行电子牌游戏。在进行电子牌游戏时,固定数量的玩家选择加入同一房间或游戏桌后,这些同一房间或同一游戏桌的玩家之间建立起了游戏关联,可以基于该游戏关联实现游戏互动。
玩家手中的牌中形成特定牌型时,玩家获胜的概率就增大。电子牌游戏(比如锄大地、斗地主、德州扑克等)中,服务器在发牌时通常采取随机发牌,因此玩家拿到的牌的组合是随机的,而通常拥有特定组合的牌型才能在电子牌游戏中处于有利地位,更有机会赢得游戏。当玩家对自己的牌不满意时可通过换牌的方式,将自己手中的一个或多个牌与同房间或同游戏桌的其它玩家调换,以获取对自己有利的牌。
目前实现换牌也是通过随机方式实现的,具体就是服务器将玩家要换的牌随机打乱,再重新分发给各个玩家。然而,玩家换牌的初衷是换回对自己更为有利的牌,但一次随机换牌显然并不能满足这一要求。若要满足这一要求,玩家需要进行多次随机换牌操作,或者服务器自动循环多次随机换牌处理才能实现。而服务器处理大量的随机换牌操作,会严重增加服务器的负担,甚至会导致服务器瘫痪。
发明内容
基于此,有必要针对随机换牌会增加服务器负担的问题,提供一种电子牌游戏数据处理方法和系统。
一种电子牌游戏数据处理方法,所述方法包括:
获取未分配牌数据和与用户标识对应的已分配牌数据和待分配牌数量;
获取预设优先级别表;
按照所述优先级别表中的优先级顺序从所述优先级别表中逐个读取级别标识;
判断所述用户标识对应的已分配牌数据中的第一牌数据是否能够和所述未分配牌数据中的第二牌数据组成与所述读取的级别标识对应的预设牌型,所述第二牌数据的数量不超过所述用户标识对应的待分配牌数量;
若判断为能够组成,则将所述第二牌数据分配给所述用户标识对应,更新所述已分配牌数据、所述未分配牌数据和所述待分配牌数量,并继续从所述优先级别表中读取级别标识;若判断为不能够组成,则继续从所述优先级别表中读取级别标识;直至读取完所述优先级别表中的级别标识或者将所述未分配牌数据分配完毕。
一种电子牌游戏数据处理系统,所述系统包括:
数据获取模块,用于获取未分配牌数据和与用户标识对应的已分配牌数据和待分配牌数量;
所述数据获取模块还用于获取预设优先级别表;
读取模块,用于按照所述优先级别表中的优先级顺序从所述优先级别表中逐个读取级别标识;
牌型组成判断模块,用于判断所述用户标识对应的已分配牌数据中的第一牌数据是否能够和所述未分配牌数据中的第二牌数据组成与所述读取的级别标识对应的预设牌型,所述第二牌数据的数量不超过所述用户标识对应的待分配牌数量;
牌数据分配模块,用于若所述牌型组成判断模块判断为能够组成,则将所述第二牌数据分配给所述用户标识对应,更新所述已分配牌数据、所述未分配牌数据和所述待分配牌数量,并继续从所述优先级别表中读取级别标识;若所述牌型组成判断模块判断为不能够组成,则继续从所述优先级别表中读取级别标识;直至读取完所述优先级别表中的级别标识或者将所述未分配牌数据分配完毕。
上述电子牌游戏数据处理方法和系统,预设的优先级别表中包括按照优先级顺序排列的级别标识,每一个级别标识对应一种预设牌型。服务器按照优先级别表中的优先级顺序从优先级别表中逐个读取级别标识,并判断用户标识对应的已分配牌数据中的第一牌数据是否能够和未分配牌数据中的第二牌数据组成与读取的级别标识对应的预设牌型,这样优先级别表中优先级顺序高的级别标识对应的预设牌型被优先考虑。
当能够组成预设牌型时,则将未分配牌数据中的上述第二牌数据分配给该用户标识对应,然后继续从优先级别表中读取级别标识,按照优先级顺序考虑下一个级别标识对应的预设牌型;当不能够组成预设牌型则继续按照优先级顺序从优先级别表中读取级别标识,直至读取完优先级别表中的级别标识或者将未分配牌数据分配完毕。
因此,服务器在分配牌数据时优先级别表中优先级顺序高的级别标识所对应的预设牌型被优先考虑,通过调整优先级别表中的级别标识的种类以及级别标识的优先级顺序便可控制各种预设牌型出现的概率,服务器不需要通过大量循环操作便可达到理想的牌数据分配效果,减轻了服务器的负担。
附图说明
图1为一个实施例中电子牌游戏数据处理方法的流程示意图;
图2为一个实施例中判断所述用户标识对应的已分配牌数据中的第一牌数据和所述未分配牌数据中的第二牌数据是否满足所述预设牌型对应的预设条件的步骤的流程示意图;
图3为另一个实施例中判断所述用户标识对应的已分配牌数据中的第一牌数据和所述未分配牌数据中的第二牌数据是否满足所述预设牌型对应的预设条件的步骤的流程示意图;
图4为再一个实施例中判断所述用户标识对应的已分配牌数据中的第一牌数据和所述未分配牌数据中的第二牌数据是否满足所述预设牌型对应的预设条件的步骤的流程示意图;
图5为一个实施例中判断所述用户标识对应的已分配牌数据中的第一牌数据和所述未分配牌数据中的第二牌数据是否满足所述预设牌型对应的预设条件的步骤的流程示意图;
图6为另一个实施例中判断所述用户标识对应的已分配牌数据中的第一牌数据和所述未分配牌数据中的第二牌数据是否满足所述预设牌型对应的预设条件的步骤的流程示意图;
图7为再一个实施例中判断所述用户标识对应的已分配牌数据中的第一牌数据和所述未分配牌数据中的第二牌数据是否满足所述预设牌型对应的预设条件的步骤的流程示意图;
图8为一个实施例中判断所述用户标识对应的已分配牌数据中的第一牌数据和所述未分配牌数据中的第二牌数据是否满足所述预设牌型对应的预设条件的步骤的流程示意图;
图9为一个具体应用场景中电子牌游戏数据处理方法应用于“锄大地”游戏的换牌场景的流程示意图;
图10为一个实施例中电子牌游戏数据处理系统的结构框图;
图11为另一个实施例中电子牌游戏数据处理系统的结构框图;
图12为再一个实施例中电子牌游戏数据处理系统的结构框图;
图13为一个实施例中电子牌游戏数据处理系统的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
除非上下文另有特定清楚的描述,本发明中的元件和组件,数量既可以单个的形式存在,也可以多个的形式存在,本发明并不对此进行限定。本发明中的步骤虽然用标号进行了排列,但并不用于限定步骤的先后次序,除非明确说明了步骤的次序或者某步骤的执行需要其他步骤作为基础,否则步骤的相对次序是可以调整的。可以理解,本文中所使用的术语“和/或”涉及且涵盖相关联的所列项目中的一者或一者以上的任何和所有可能的组合。
如图1所示,在一个实施例中,提供了一种电子牌游戏数据处理方法,该方法可应用于发牌或换牌的场景,其中发牌是指将一局游戏中的所有牌数据分配给每个用户;换牌是指发牌完毕之后,用户可从自己的牌数据中选择1个或多个牌数据与其它用户交换。本实施例以该方法应用于服务器来举例说明。该方法包括:
步骤102,获取未分配牌数据和与用户标识对应的已分配牌数据和待分配牌数量。
用户标识是用以区别用户身份的唯一标识,用户标识可以是包括数字、字母、符号和文字中的至少一种字符的字符串。牌数据包括点数属性和花色类型属性,其中点数的取值范围可为数字1到13,分别对应A、2、3、4、5、6、7、8、9、10、J、Q、K;花色类型的取值范围为1到4,分别对应黑桃、红桃、方块和梅花中的一种。
未分配牌数据是指所有牌数据的集合中还未分配给用户标识对应的牌数据。所有牌数据的集合是指一局电子牌游戏中所有出现的牌数据的集合,在电子牌游戏中,所有牌数据的数量一般为52。分配给用户标识对应,是指分配给用户标识对应后,该用户标识对应的用户在游戏中具备对该用户标识对应的牌数据的控制权限。与用户标识对应的已分配牌数据是指所有牌数据的集合中已分配给该用户标识对应的牌数据。与用户标识对应的待分配牌数量是指还需将所有牌数据的集合中数量为待分配牌数量的牌数据分配给该用户标识对应。
在发牌场景中,可设置未分配牌数据为所有牌数据的合集,用户标识对应的已分配牌数据为0,待分配牌数量为所有牌数据的数量除以用户标识的数量。或者可预先随机分配预设数量的牌数据给每个用户标识对应,则可根据预先随机分配的牌数据确定未分配牌数据和与用户标识对应的已分配牌数据和待分配牌数量。
在换牌场景中,用户从对应其用户标识的已分配牌数据中选取一个或多个牌数据,多个用户选取的牌数据构成未分配牌数据,则可根据每个用户选取的牌数据确定与用户标识对应的已分配牌数据和待分配牌数量。
步骤104,获取预设优先级别表。
预设的优先级别表可预先存储在服务器上,或者存储在其它网络节点上,需要时获取。预设优先级别表可以文本或数据库的形式存储。
步骤106,按照优先级别表中的优先级顺序从优先级别表中逐个读取级别标识。
优先级别表包括级别标识和级别标识的优先级顺序信息。级别标识用于据以获取对应的函数判断是否能够组成对应的预设牌型。级别标识可以是包括数字、字母、符号和文字中的至少一种字符的字符串。级别标识的优先级顺序可以用级别标识在优先级别表中的排列顺序表示,比如在优先级别表中排列靠前的级别标识的优先级高,排列靠后的级别标识的优先级别低。优先级顺序表示对级别标识对应的预设牌型的处理顺序。优先级别表是可编辑的,优先级别表中的级别标识的种类以及级别标识的优先级顺序可以根据需要调整。
步骤108,判断用户标识对应的已分配牌数据中的第一牌数据是否能够和未分配牌数据中的第二牌数据组成与读取的级别标识对应的预设牌型,第二牌数据的数量不超过用户标识对应的待分配牌数量;当判断为是时执行步骤110后执行步骤112,当判断为否时执行步骤112。
第一牌数据是用户标识对应的已分配牌数据的子集,第二牌数据是未分配牌数据的子集,且第二牌数据的数量不能超过该用户标识对应的待分配牌数量。
步骤110,将第二牌数据分配给用户标识对应,更新已分配牌数据、未分配牌数据和待分配牌数量。
当判断为能够组成与读取的级别标识对应的预设牌型时,服务器将该能够与第一牌数据组成与读取的级别标识对应的预设牌型的第二牌数据分配给第一牌数据对应的用户标识对应。分配牌数据后,服务器更新已分配牌数据、未分配牌数据和待分配牌数量的数据。具体地,将第二牌数据从未分配牌数据中剔除,并将该第二牌数据添加到用户标识对应的已分配牌数据中,从待分配牌数量中减去该第二牌数据的牌数量。当用户标识对应的待分配牌数量为0时则停止向待分配牌数量为0的用户标识分配牌数据。
在一个实施例中,步骤110还包括:将能够组成预设牌型的用户标识对应的已分配牌数据中的第一牌数据做标记,该标记用于在再次判断用户标识对应的已分配牌数据中的牌数据是否能够和未分配牌数据中的牌数据组成与读取的级别标识对应的预设牌型时忽略被标记的牌数据。由于该第一牌数据已经能够与分配的第二牌数据组成预设牌型,因此在下一次判断是否能够组成预设牌型时可无需再考虑该第一牌数据,只需考虑用户标识对应的已分配牌数据中的除去第一牌数据的牌数据,可加快分配效率,进一步减轻服务器负担。
步骤112,判断是否读取完优先级别表中的级别标识或者是否将未分配牌数据分配完毕;若判断为是则执行步骤114,若判断为否则继续执行步骤106。
服务器逐个从优先级别表中读取级别标识,服务器在一次循环的最后,需要判断是否已经读取完优先级别表中的级别标识,若没有读取完则需要继续执行步骤106,继续从优先级别表中读取下一个级别标识,直至读取完优先级别表中的级别标识。或者可判断未分配牌数据是否已经被分配完毕,若没有分配完毕则需要继续执行步骤106,继续从优先级别表中读取下一个级别标识,直至将未分配牌数据分配完毕。
在一个实施例中,当判断结果为已经读取完优先级别表中的级别标识但未分配牌数据还未分配完毕时,可根据当前用户标识所对应的待分配牌数量,从当前未分配牌数据中随机选取牌数据分配给用户标识对应。本实施例中,当优先级别表中的级别标识和优先级顺序设置不合理时,可能出现优先级别表中的级别标识已经读取完但未分配牌数据还未分配完毕的情况,此时可根据当前用户标识对应的待分配牌数量,从当前未分配牌数据中随机选取牌数据分配给用户标识对应。这是一种安全保障,以保证分配牌数据的过程不会出错。
步骤114,结束。
当已经读取完优先级别表中的级别标识或者已经将未分配牌数据分配完毕时,此时分配牌数据的目的已经达到,可结束该方法流程。分配完毕后服务器将分配给用户标识对应的牌数据发送给用户标识对应的客户端。
上述电子牌游戏数据处理方法和系统,预设的优先级别表中包括按照优先级顺序排列的级别标识,而每一个级别标识对应一种预设牌型。然后按照优先级别表中的优先级顺序从优先级别表中逐个读取级别标识,并判断用户标识对应的已分配牌数据中的第一牌数据是否能够和未分配牌数据中的第二牌数据组成与读取的级别标识对应的预设牌型,这样优先级别表中优先级顺序高的级别标识对应的预设牌型被优先考虑。
当能够组成预设牌型时,则将未分配牌数据中的上述第二牌数据分配给该用户标识对应,然后继续从优先级别表中读取级别标识,按照优先级顺序考虑下一个级别标识对应的预设牌型;当不能够组成预设牌型则继续按照优先级顺序从优先级别表中读取级别标识,直至读取完优先级别表中的级别标识或者将未分配牌数据分配完毕。
因此,服务器在分配牌数据时优先级别表中优先级顺序高的级别标识所对应的预设牌型被优先考虑,通过调整优先级别表中的级别标识的种类以及级别标识的优先级顺序便可控制各种预设牌型出现的概率,服务器不需要通过大量循环操作便可达到理想的牌数据分配效果,减轻了服务器的负担。而且,采用上述电子牌游戏数据处理方法,代码仅千余行,代码量小,执行效率高。
在一个实施例中,步骤102之后,还包括:记录未分配牌数据;步骤114之后,还包括:判断从未分配牌数据中分配出的牌数据与记录的未分配牌数据的数据内容是否匹配,若判断为匹配则判定分配结果有效;若判断为不匹配则判定分配出错。
本实施例中,提供了对从未分配牌数据中分配出的牌数据的验证步骤。具体地,在步骤102之后,记录获取到的未分配牌数据作为原始数据。将牌数据分配完毕之后,将从未分配牌数据中分配出的牌数据与原始数据做比较,判断两者是否匹配。判断的数据内容包括牌数据的点数、花色类型和牌数据数量,分配完毕后的牌数据与原始数据相比两者的数据内容应当一致。从而实现了对从未分配牌数据中分配出的牌数据的验证,保证了牌数据处理的准确性。
在一个实施例中,步骤106具体包括:按照优先级别表中的优先级顺序从优先级别表中逐个读取级别标识,并从优先级别表中删除读取出的级别标识;则步骤112中可通过判断优先级别表是否为空来判断是否读取完优先级别表中的级别标识。则直至读取完优先级别表中的级别标识具体为直至优先级别表为空。优先级别表为空是指优先级别表中没有级别标识和级别标识的优先级顺序信息。本实施例中,读取级别标识后删除,可防止重复读取级别标识导致出错,保证牌数据处理的安全性。
在一个实施例中,步骤104之后,还包括:判断优先级别表是否为空;若判断为空,则根据用户标识所对应的待分配牌数量,从未分配牌数据中随机选取牌数据分配给用户标识对应;若判断为非空,则执行步骤106。
本实施例中,在读取优先级别表中的级别标识之前,先判断优先级别表是否为空。若优先级别表为空,则采取随机分配方式从未分配牌数据中选取牌数据分配给用户标识对应;若优先级别表为非空,则执行步骤106,从优先级别表中逐个读取级别标识。通过判断优先级别表是否为空可采用不同的牌数据分配方式,可避免在优先级别表为空时算法失效。
在一个实施例中,步骤102之后,还包括:记录未分配牌数据;则若判断为空,则根据用户标识所对应的待分配牌数量,从未分配牌数据中随机选取牌数据分配给用户标识对应的步骤之后,还包括:判断从未分配牌数据中随机选取分配的牌数据与记录的未分配牌数据的数据内容是否匹配,若判断为匹配则判定随机分配结果有效;若判断为不匹配则判定随机分配出错。
本实施例中,提供了对从未分配牌数据中随机分配出的牌数据的验证步骤。具体地,在步骤102之后,记录获取到的未分配牌数据作为原始数据。在将牌数据随机分配完毕之后,服务器将从未分配牌数据中随机分配出的牌数据与原始数据做比较,判断两者是否匹配。判断的数据内容包括牌数据的点数、花色类型和牌数据数量,随机分配完毕后的牌数据与原始数据相比两者的数据内容应当一致。从而实现了对从未分配牌数据中随机分配出的牌数据的验证,保证了牌数据处理的准确性。
在一个实施例中,上述对从未分配牌数据中随机分配出的牌数据的验证步骤与上述从未分配牌数据中分配出的牌数据的验证步骤同时存在,两个步骤中的记录未分配牌数据为同一步骤。
在一个实施例中,判断用户标识对应的已分配牌数据中的第一牌数据是否能够和未分配牌数据中的第二牌数据组成与读取的级别标识对应的预设牌型的步骤,具体包括:判断用户标识对应的已分配牌数据中的第一牌数据和未分配牌数据中的第二牌数据是否满足预设牌型对应的预设条件;其中,预设条件包括:第一牌数据的牌数量与第二牌数据的牌数量的和在预设牌型的牌数量的取值范围内;且第二牌数据的牌数量不为0;且第一牌数据和第二牌数据组成的牌数据集合中的牌数据点数互异或者都相同。
本实施例中,通过预设条件来判断是否能够组成预设牌型。其中,第一牌数据的牌数量与第二牌数据的牌数量的和应当满足预设牌型的牌数量要求,第二牌数据的牌数量不为0能够保证分配是有效的。电子牌游戏的多种预设牌型中,牌数据点数或为连续,比如2、3、4、5、6,这些点数连续的牌数据点数互异,其中互异是指彼此都不相同;或为相同,比如3或4个点数为1(代表牌A)的牌数据等。
在一个实施例中,预设条件还包括:牌数据集合中的牌数据的花色类型相同,和/或牌数据集合中的牌数据的点数连续。
其中花色类型相同使得第一牌数据和第二牌数据能够组成同花牌型,点数连续是指第一牌数据和第二牌数据组成的牌数据集合的点数都不相同,且按升序或降序排列后相邻牌数据的点数相差一点。点数连续是第一牌数据和第二牌数据能够组成顺子牌型的基本条件。
下面结合“锄大地”游戏来说明本实施例中判断用户标识对应的已分配牌数据中的第一牌数据是否能够和未分配牌数据中的第二牌数据组成与读取的级别标识对应的预设牌型的步骤。
“锄大地”游戏共需四位用户,每位用户控制13张牌,则预设牌型从大到小依次为:同花龙、普通龙、皇家同花顺、普通同花顺、铁支、葫芦、普通同花、普通顺子、三条、对子、单牌。其中,“龙”是指玩家手中13张牌点数依次各差一点的牌型。龙又包括同花龙,是指13张牌都为同一花色的龙。顺子是指由至少5张点数依次各差一点的牌组成的牌型。顺子又包括同花顺,是指花色都相同的顺子。同花顺又包括皇家同花顺,是指由10、J、Q、K、A五张牌组成的同花顺,其中服务器可分别用数字11、12、13和1表示J、Q、K和A。同花则是指由至少5张相同花色的牌组成的牌型。铁枝是指4张相同点数的牌另加其它点数的一张牌组成的牌型;葫芦则是3张相同点数的牌另加其它点数的一对牌组成的牌型。三条是指三张点数相同的牌组成的牌型,对子是指两张点数相同的牌组成的牌型,单牌则为一张牌。
如图2所示,在一个实施例中,当读取的级别标识对应的预设牌型为龙时,判断用户标识对应的已分配牌数据中的第一牌数据和未分配牌数据中的第二牌数据是否满足预设牌型对应的预设条件的步骤包括:
步骤202,判断第一牌数据的数量和与用户标识对应的待分配牌数量的和是否等于13,其中第一牌数据是用户标识对应的已分配牌数据中花色类型相同且点数互异的所有牌数据。若判断为是则执行步骤204,若判断为否则进一步判断是否能够组成龙牌型。
同花龙牌型的牌数量的取值范围为13,先判断第一牌数据的数量和与用户标识对应的待分配牌数量的和是否等于13,且第一牌数据的花色类型都相同,以判断第一牌数据的数量是否能够满足同花龙牌型的牌数量基本要求。
步骤204,判断第一牌数据的数量和第二牌数据的数量的和是否等13,其中第一牌数据和第二牌数据组成的集合中的所有牌数据的花色类型相同且点数互异。若判断为是则判定能够组成同花龙牌型,若判断为否则进一步判断是否能够组成龙牌型。
第一牌数据和第二牌数据组成的集合中的牌数据的花色类型均相同,保证能够组成同花牌型;点数互异且数量为13,则可保证组成龙牌型。具体地,判断时可将第一牌数据的点数和第二牌数据的点数插入STL(Standard TemplateLibrary,标准模板库)的set(一个集合,集合中的元素的值互异)中,其中set是一个容器,set中所包含的元素的值是唯一的,只有与set中不同的值才能插入到set中,则判断第一牌数据的数量和第二牌数据的数量的和是否等13则具体为判断set的大小是否为13。
如图3所示,在一个实施例中,判断是否能够组成龙牌型的步骤具体包括:
步骤302,判断第一牌数据的数量和与用户标识对应的待分配牌数量的和是否等于13,其中第一牌数据是用户标识对应的已分配牌数据中点数互异的所有牌数据。若判断为是则执行步骤304,若判断为否则判定不能够组成龙牌型。
步骤304,判断第一牌数据的数量和第二牌数据的数量的和是否等13,其中第一牌数据和第二牌数据组成的集合中的牌数据的点数互异。若判断为是则判定能够组成同花龙牌型,若判断为否则判定不能够组成龙牌型。
如图4所示,当读取的级别标识对应的预设牌型为皇家同花顺时,判断用户标识对应的已分配牌数据中的第一牌数据和未分配牌数据中的第二牌数据是否满足预设牌型对应的预设条件的步骤包括:
步骤402,遍历花色类型。
步骤404,将第一牌数据和第二牌数据的点数置于值互异的集合中,其中第一牌数据是用户标识对应的已分配牌数据中当前花色类型的、点数在{10,11,12,13,1}范围之内的牌数据;第二牌数据是未分配牌数据中当前花色类型的、点数在{10,11,12,13,1}范围之内的牌数据。
步骤406,判断值互异的集合的大小是否大于等于5,若是则执行步骤408,若否则执行步骤410。
步骤408,判断第二牌数据的牌数量是否为非零,若判断为是则判定能够组成皇家同花顺牌型,并执行步骤402,直至遍历所有花色类型。若判断为否则执行步骤410。
步骤410,判定不能够组成皇家同花顺牌型。
如图5所示,在一个实施例中,当读取的级别标识对应的预设牌型为同花顺时,判断用户标识对应的已分配牌数据中的第一牌数据和未分配牌数据中的第二牌数据是否满足预设牌型对应的预设条件的步骤包括:
步骤502,遍历花色类型。
步骤504,将用户标识对应的已分配牌数据中当前花色类型的牌数据以及未分配牌数据中当前花色类型的牌数据置于值互异的集合中。
步骤506,判断值互异的集合中是否有点数连续的至少5个牌数据,且值互异的集合中来自未分配牌数据的牌数量不为0;若是则判定能够组成同花顺牌型,并将值互异的集合中未参与组成同花顺牌型的牌数据还原;若否则执行步骤502。
其中,值互异的集合中来自用户标识对应的已分配牌数据的牌数据为第一牌数据,值互异的集合中来自未分配牌数据的牌数据为第二牌数据。
如图6所示,在一个实施例中,当读取的级别标识对应的预设牌型为铁枝或葫芦时,判断用户标识对应的已分配牌数据中的第一牌数据和未分配牌数据中的第二牌数据是否满足预设牌型对应的预设条件的步骤包括:
步骤602,统计用户标识对应的已分配牌数据中每个牌数据的点数出现的次数。
步骤604,统计未分配牌数据中每个牌数据的点数出现的次数。
步骤606,判断用户标识对应的已分配牌数据中和分配牌数据中相同点数出现次数的和是否等于3或4,若是则执行步骤608,若否则判定不能够组成铁枝或葫芦牌型。
步骤608,判断未分配牌数据中上述相同点数的牌数据的数量是否为非零,若是则判定能够组成铁枝或葫芦牌型,若否则判定不能够组成铁枝或葫芦牌型。
其中,用户标识对应的已分配牌数据中上述相同点数的牌数据为第一牌数据,未分配牌数据中上述相同点数的牌数据为第二牌数据。
如图7所示,在一个实施例中,当读取的级别标识对应的预设牌型为同花时,判断用户标识对应的已分配牌数据中的第一牌数据和未分配牌数据中的第二牌数据是否满足预设牌型对应的预设条件的步骤包括:
步骤702,遍历花色类型。
步骤704,将用户标识对应的已分配牌数据中当前花色类型的第一牌数据的点数和未分配牌数据中当前花色类型的第二牌数据的点数置于一个集合A中。
步骤706,判断上述集合A的大小是否大于或等于5,若是则执行步骤708,若否则判定不能够组成同花牌型。
步骤708,判断上述集合A中来自未分配牌数据的牌数量是否为非零,若是则判定能够组成同花牌型,若否则判定不能够组成同花牌型。
如图8所示,在一个实施例中,当读取的级别标识对应的预设牌型为顺子时,判断用户标识对应的已分配牌数据中的第一牌数据和未分配牌数据中的第二牌数据是否满足预设牌型对应的预设条件的步骤包括:
步骤802,将用户标识对应的已分配牌数据中的牌数据的点数和未分配牌数据中的牌数据的点数置于集合B中。
步骤804,判断上述集合B中是否有至少5个值组成连续序列,若是则执行步骤806,若否则判定不能够组成顺子牌型。
步骤806,判断上述集合B中来自未分配牌数据的牌数量否为为零,如是则判定能够组成顺子牌型,如否则判定不能够组成顺子牌型。
下面用一个具体应用场景来说明上述电子牌游戏数据处理方法的原理,本实施例以该方法应用于服务器,并应用于“锄大地”游戏的换牌场景来举例说明。如图9所示,具体包括如下步骤:
服务器获取未分配牌数据和与用户标识对应的已分配牌数据和待分配牌数量,获取预设优先级别表,并记录未分配牌数据作为原始数据。然后判断优先级别表是否为空,若是则进行随机换牌,并将随机换牌后从未分配牌数据中随机分配出的牌数据与换牌前的未分配牌数据作比较,若数据内容一致则说明换牌正确,若数据内容不一致则说明换牌出错,该次换牌无效。
优先级别表包括0~9共10个级别标识,并按照数字的降序排列,表示优先级顺序,每一个级别标识对应一种预设牌型。服务器按照优先级别表中级别标识的排列顺序逐个读取级别标识,并获取该级别标识对应的函数判断用户标识对应的已分配牌数据中的第一牌数据是否能够和未分配牌数据中的第二牌数据组成与读取的级别标识对应的预设牌型,其中第二牌数据的数量不超过用户标识对应的待分配牌数量。若判断为能够组成,则将第二牌数据分配给用户标识对应,更新已分配牌数据、未分配牌数据和待分配牌数量,并继续从优先级别表中读取并删除级别标识;若判断为不能够组成,则继续从优先级别表中读取并删除级别标识;直至优先级别表为空。
最后保存换牌后从未分配牌数据中分配出的牌数据,并将换牌后从未分配牌数据中分配出的牌数据与换牌前的未分配牌数据作比较,若数据内容一致则说明换牌正确,若数据内容不一致则说明换牌出错,该次换牌无效。
如图10所示,在一个实施例中,提供了一种电子牌游戏数据处理系统,该系统包括:数据获取模块1002、读取模块1004、牌型组成判断模块1006和牌数据分配模块1008。
数据获取模块1002用于获取未分配牌数据和与用户标识对应的已分配牌数据和待分配牌数量。
数据获取模块1002还用于获取预设优先级别表。
读取模块1004用于按照优先级别表中的优先级顺序从优先级别表中逐个读取级别标识。
牌型组成判断模块1006用于判断用户标识对应的已分配牌数据中的第一牌数据是否能够和未分配牌数据中的第二牌数据组成与读取的级别标识对应的预设牌型,第二牌数据的数量不超过用户标识对应的待分配牌数量。
牌数据分配模块1008用于若牌型组成判断模块1006判断为能够组成,则将第二牌数据分配给用户标识对应,更新已分配牌数据、未分配牌数据和待分配牌数量,并继续从优先级别表中读取级别标识;若牌型组成判断模块1006判断为不能够组成,则继续从优先级别表中读取级别标识;直至读取完优先级别表中的级别标识或者将未分配牌数据分配完毕。
如图11所示,在一个实施例中,该系统还包括未分配牌数据记录模块1003和分配结果验证模块1009。
未分配牌数据记录模块1003用于记录未分配牌数据。
分配结果验证模块1009用于判断从未分配牌数据中分配出的牌数据与记录的未分配牌数据的数据内容是否匹配,若判断为匹配则判定分配结果有效;若判断为不匹配则判定分配出错。
在一个实施例中,读取模块1004还用于按照优先级别表中的优先级顺序从优先级别表中逐个读取级别标识,并从优先级别表中删除读取出的级别标识。
如图12所示,在一个实施例中,该系统还包括空优先级别表判断模块1005和随机分配模块1007。
空优先级别表判断模块1005用于判断优先级别表是否为空。
随机分配模块1007用于若空优先级别表判断模块1005判断为空,则根据用户标识所对应的待分配牌数量,从未分配牌数据中随机选取牌数据分配给用户标识对应;
读取模块1004还用于若空优先级别表判断模块1005判断为非空,则执行按照优先级别表中的优先级顺序从优先级别表中逐个读取级别标识。
如图13所示,在一个实施例中,该系统还包括未分配牌数据记录模块1003和随机分配结果验证模块1010。
未分配牌数据记录模块1003用于记录未分配牌数据。
随机分配结果验证模块1010用于判断从未分配牌数据中随机选取分配的牌数据与记录的未分配牌数据的数据内容是否匹配,若判断为匹配则判定随机分配结果有效;若判断为不匹配则判定随机分配出错。
在一个实施例中,牌型组成判断模块1006还用于判断用户标识对应的已分配牌数据中的第一牌数据和未分配牌数据中的第二牌数据是否满足预设牌型对应的预设条件;其中,预设条件包括:第一牌数据的牌数量与第二牌数据的牌数量的和在预设牌型的牌数量的取值范围内;且第二牌数据的牌数量不为0;且第一牌数据和第二牌数据组成的牌数据集合中的牌数据点数互异或者都相同。
在一个实施例中,预设条件还包括:牌数据集合中的牌数据的花色类型相同,和/或牌数据集合中的牌数据的点数连续。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种电子牌游戏数据处理方法,所述方法包括:
获取未分配牌数据和与用户标识对应的已分配牌数据和待分配牌数量;
获取预设优先级别表;
按照所述优先级别表中的优先级顺序从所述优先级别表中逐个读取级别标识;
判断所述用户标识对应的已分配牌数据中的第一牌数据是否能够和所述未分配牌数据中的第二牌数据组成与所述读取的级别标识对应的预设牌型,所述第二牌数据的数量不超过所述用户标识对应的待分配牌数量;
若判断为能够组成,则将所述第二牌数据分配给所述用户标识对应,更新所述已分配牌数据、所述未分配牌数据和所述待分配牌数量,并继续从所述优先级别表中读取级别标识;若判断为不能够组成,则继续从所述优先级别表中读取级别标识;直至读取完所述优先级别表中的级别标识或者将所述未分配牌数据分配完毕。
2.根据权利要求1所述的方法,其特征在于,所述获取未分配牌数据和与用户标识对应的已分配牌数据和待分配牌数量之后,还包括:
记录所述未分配牌数据;
所述直至读取完所述优先级别表中的级别标识或者将所述未分配牌数据分配完毕之后,还包括:
判断从所述未分配牌数据中分配出的牌数据与所述记录的未分配牌数据的数据内容是否匹配,若判断为匹配则判定分配结果有效;若判断为不匹配则判定分配出错。
3.根据权利要求1所述的方法,其特征在于,所述获取预设优先级别表之后,还包括:
判断所述优先级别表是否为空;
若判断为空,则根据所述用户标识所对应的待分配牌数量,从所述未分配牌数据中随机选取牌数据分配给所述用户标识对应;
若判断为非空,则执行所述按照所述优先级别表中的优先级顺序从所述优先级别表中逐个读取级别标识的步骤。
4.根据权利要求3所述的方法,其特征在于,所述获取未分配牌数据和与用户标识对应的已分配牌数据和待分配牌数量之后,还包括:
记录所述未分配牌数据;
所述若判断为空,则根据所述用户标识所对应的待分配牌数量,从所述未分配牌数据中随机选取牌数据分配给所述用户标识对应的步骤之后,还包括:
判断从所述未分配牌数据中随机选取分配的牌数据与所述记录的未分配牌数据的数据内容是否匹配,若判断为匹配则判定随机分配结果有效;若判断为不匹配则判定随机分配出错。
5.根据权利要求1-4任意一项所述的方法,其特征在于,所述判断所述用户标识对应的已分配牌数据中的第一牌数据是否能够和所述未分配牌数据中的第二牌数据组成与所述读取的级别标识对应的预设牌型,包括:
判断所述用户标识对应的已分配牌数据中的第一牌数据和所述未分配牌数据中的第二牌数据是否满足所述预设牌型对应的预设条件;
其中,所述预设条件包括:
所述第一牌数据的牌数量与所述第二牌数据的牌数量的和在所述预设牌型的牌数量的取值范围内;且
所述第二牌数据的牌数量不为0;且
所述第一牌数据和所述第二牌数据组成的牌数据集合中的牌数据点数互异或者都相同。
6.根据权利要求5所述的方法,其特征在于,所述预设条件还包括:所述牌数据集合中的牌数据的花色类型相同,和/或
所述牌数据集合中的牌数据的点数连续。
7.一种电子牌游戏数据处理系统,其特征在于,所述系统包括:
数据获取模块,用于获取未分配牌数据和与用户标识对应的已分配牌数据和待分配牌数量;
所述数据获取模块还用于获取预设优先级别表;
读取模块,用于按照所述优先级别表中的优先级顺序从所述优先级别表中逐个读取级别标识;
牌型组成判断模块,用于判断所述用户标识对应的已分配牌数据中的第一牌数据是否能够和所述未分配牌数据中的第二牌数据组成与所述读取的级别标识对应的预设牌型,所述第二牌数据的数量不超过所述用户标识对应的待分配牌数量;
牌数据分配模块,用于若所述牌型组成判断模块判断为能够组成,则将所述第二牌数据分配给所述用户标识对应,更新所述已分配牌数据、所述未分配牌数据和所述待分配牌数量,并继续从所述优先级别表中读取级别标识;若所述牌型组成判断模块判断为不能够组成,则继续从所述优先级别表中读取级别标识;直至读取完所述优先级别表中的级别标识或者将所述未分配牌数据分配完毕。
8.根据权利要求7所述的系统,其特征在于,所述系统还包括未分配牌数据记录模块和分配结果验证模块;
所述未分配牌数据记录模块用于记录所述未分配牌数据;
所述分配结果验证模块用于判断从所述未分配牌数据中分配出的牌数据与所述记录的未分配牌数据的数据内容是否匹配,若判断为匹配则判定分配结果有效;若判断为不匹配则判定分配出错。
9.根据权利要求7所述的系统,其特征在于,所述系统还包括空优先级别表判断模块和随机分配模块;
所述空优先级别表判断模块用于判断所述优先级别表是否为空;
所述随机分配模块用于若所述空优先级别表判断模块判断为空,则根据所述用户标识所对应的待分配牌数量,从所述未分配牌数据中随机选取牌数据分配给所述用户标识对应;
所述读取模块还用于若所述空优先级别表判断模块判断为非空,则执行按照所述优先级别表中的优先级顺序从所述优先级别表中逐个读取级别标识。
10.根据权利要求9所述的系统,其特征在于,所述系统还包括未分配牌数据记录模块和随机分配结果验证模块;
所述未分配牌数据记录模块用于记录所述未分配牌数据;
所述随机分配结果验证模块用于判断从所述未分配牌数据中随机选取分配的牌数据与所述记录的未分配牌数据的数据内容是否匹配,若判断为匹配则判定随机分配结果有效;若判断为不匹配则判定随机分配出错。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410091437.0A CN104915532B (zh) | 2014-03-12 | 2014-03-12 | 电子牌游戏数据处理方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410091437.0A CN104915532B (zh) | 2014-03-12 | 2014-03-12 | 电子牌游戏数据处理方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104915532A true CN104915532A (zh) | 2015-09-16 |
CN104915532B CN104915532B (zh) | 2018-02-06 |
Family
ID=54084594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410091437.0A Active CN104915532B (zh) | 2014-03-12 | 2014-03-12 | 电子牌游戏数据处理方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104915532B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107433032A (zh) * | 2016-05-25 | 2017-12-05 | 博雅网络游戏开发(深圳)有限公司 | 棋局数据处理方法和装置 |
CN109011567A (zh) * | 2018-08-07 | 2018-12-18 | 深圳市东方博雅科技有限公司 | 一种能够使参与者进行游戏的设备及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040242298A1 (en) * | 2003-05-30 | 2004-12-02 | Yukinori Inamura | Gaming machine |
CN1990073A (zh) * | 2005-12-29 | 2007-07-04 | 腾讯科技(深圳)有限公司 | 一种纸牌游戏中游戏终端的操作控制方法及系统 |
CN101203282A (zh) * | 2005-06-21 | 2008-06-18 | 克莱普特逻辑有限公司 | 提供扑克游戏的设备和方法 |
CN101320406A (zh) * | 2007-05-25 | 2008-12-10 | Nhn公司 | 纸牌游戏服务提供方法及其系统 |
CN101637656A (zh) * | 2008-07-29 | 2010-02-03 | 鈊象电子股份有限公司 | 具辨识特殊牌型的纸牌系统及其方法 |
CN101732861A (zh) * | 2008-11-14 | 2010-06-16 | 康佳集团股份有限公司 | 一种电子扑克牌游戏中自动选牌方法及系统 |
CN101890220A (zh) * | 2009-05-20 | 2010-11-24 | 灰熊(北京)科技有限公司 | 一种通过牌型判断是否可以大过上家牌的方法 |
US8651933B2 (en) * | 2006-10-25 | 2014-02-18 | Gadi Werkstell | System for playing a game of skill |
-
2014
- 2014-03-12 CN CN201410091437.0A patent/CN104915532B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040242298A1 (en) * | 2003-05-30 | 2004-12-02 | Yukinori Inamura | Gaming machine |
CN101203282A (zh) * | 2005-06-21 | 2008-06-18 | 克莱普特逻辑有限公司 | 提供扑克游戏的设备和方法 |
CN1990073A (zh) * | 2005-12-29 | 2007-07-04 | 腾讯科技(深圳)有限公司 | 一种纸牌游戏中游戏终端的操作控制方法及系统 |
US8651933B2 (en) * | 2006-10-25 | 2014-02-18 | Gadi Werkstell | System for playing a game of skill |
CN101320406A (zh) * | 2007-05-25 | 2008-12-10 | Nhn公司 | 纸牌游戏服务提供方法及其系统 |
CN101637656A (zh) * | 2008-07-29 | 2010-02-03 | 鈊象电子股份有限公司 | 具辨识特殊牌型的纸牌系统及其方法 |
CN101732861A (zh) * | 2008-11-14 | 2010-06-16 | 康佳集团股份有限公司 | 一种电子扑克牌游戏中自动选牌方法及系统 |
CN101890220A (zh) * | 2009-05-20 | 2010-11-24 | 灰熊(北京)科技有限公司 | 一种通过牌型判断是否可以大过上家牌的方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107433032A (zh) * | 2016-05-25 | 2017-12-05 | 博雅网络游戏开发(深圳)有限公司 | 棋局数据处理方法和装置 |
CN109011567A (zh) * | 2018-08-07 | 2018-12-18 | 深圳市东方博雅科技有限公司 | 一种能够使参与者进行游戏的设备及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104915532B (zh) | 2018-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20040048647A1 (en) | Prize assignment method and program product for bingo-type games | |
CN105848743B (zh) | 信息处理装置、信息处理系统、程序、记录介质 | |
EP1390109A1 (en) | Prize assignment method and program product for bingo-type games | |
US20140128139A1 (en) | Remote card game with duplicate hands | |
CN110075532B (zh) | 虚拟对象的控制方法和装置、存储介质、电子装置 | |
US20020072413A1 (en) | Entertainment platform | |
CN101320406A (zh) | 纸牌游戏服务提供方法及其系统 | |
CN103970726B (zh) | 图文排版实现方法及装置 | |
CN110852436B (zh) | 一种电子扑克游戏的数据处理方法、装置及存储介质 | |
CN108136256A (zh) | 游戏装置和程序 | |
CN108057245B (zh) | 地图的生成方法和装置、存储介质及终端 | |
CN108926843A (zh) | 一种麻将类游戏中胡牌的控制方法及系统 | |
JP2001087558A (ja) | ゲームシステム及びゲームシステムのカード印刷方法 | |
CN104915532A (zh) | 电子牌游戏数据处理方法和系统 | |
CN110727870A (zh) | 一种新型序贯同步博弈的单树蒙特卡洛搜索方法 | |
CN105999694A (zh) | 夹公仔游戏系统 | |
Garg et al. | GAME OF TIC-TAC-TOE: SIMULATION USING MIN-MAX ALGORITHM. | |
CN108025212A (zh) | 游戏系统、游戏控制装置和程序 | |
CN109598551B (zh) | 一种分布式服务器结构的游戏抽奖方法及装置 | |
CN107679724A (zh) | 一种运动对象的分组方法、服务器及计算机可读存储介质 | |
CN108778435A (zh) | 游戏装置及程序 | |
CN102708202A (zh) | Flash游戏批量分享玩家心得的方法 | |
ITPD20100376A1 (it) | Metodo ed apparecchiatura per il gioco delle carte | |
CN110490031A (zh) | 一种通用数字识别的方法、存储介质、电子设备及系统 | |
CN106033582A (zh) | 一种数据处理方法以及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20161114 Address after: 518000 Guangdong city of Shenzhen province Nanshan District Xili liuxiandong Zhongshan Road No. 1001 TCL Science Park R & D building D3 8 storey building A room 801 unit Applicant after: Shenzhen City, Oriental Boya Technology Co. Ltd. Address before: 518057 Guangdong city of Shenzhen province Nanshan District Zhongshan Road No. 1001 TCL Industrial Park International City building D3 9B-C E Applicant before: Burson Marsteller network game development (Shenzhen) Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |