CN108786107A - 一种棋牌结果生成的方法以及相关装置 - Google Patents
一种棋牌结果生成的方法以及相关装置 Download PDFInfo
- Publication number
- CN108786107A CN108786107A CN201810622629.8A CN201810622629A CN108786107A CN 108786107 A CN108786107 A CN 108786107A CN 201810622629 A CN201810622629 A CN 201810622629A CN 108786107 A CN108786107 A CN 108786107A
- Authority
- CN
- China
- Prior art keywords
- chess
- card
- result
- encoded
- face amount
- 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.)
- Pending
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/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
-
- 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/70—Game security or game management aspects
-
- 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
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/55—Details of game data or player data management
- A63F2300/5526—Game data structure
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明实施例公开了一种棋牌结果生成的方法,包括:获取待检测棋牌数据,其中,所述待检测棋牌数据包括N个棋牌面值,所述N为大于0的整数;采用棋牌编码规则对所述待检测棋牌数据进行编码,得到目标编码结果,其中,所述棋牌编码规则用于表示各个棋牌面值之间的关联关系;若所述目标编码结果与已编码结果匹配,则生成棋牌结果,其中,所述已编码结果属于已编码结果集合中的一项。本发明实施例还提供了一种棋牌结果生成装置。本发明实施例中棋牌结果生成装置可以离线缓存所有的和牌标准,因此只需匹配编码结果,无需对玩家手牌进行实时计算,这个过程大幅地降低了处理时间,释放了大量的计算资源,提升了处理效率。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种棋牌结果生成的方法以及相关装置。
背景技术
互联网时代的到来让人们的娱乐方式变得越来越多样化,棋牌类游戏不再受到时空上的局限。人们可以通过棋牌类应用程序与真实玩家进行切磋,也可以与虚拟玩家进行游戏。
目前,对于棋牌类应用程序而言,通常会提示玩家是否满足游戏胜利的标准。以麻将类应用程序为例,服务器在检查玩家手牌是否和牌时,可以实时对手牌进行各种组合拆解计算,确定玩家手牌是否满足和牌标准。
然而,在服务器检查玩家手牌是否满足和牌标准时,需要进行大量的运算,这个过程不但会消耗较多的时间,导致出现卡顿的情况,还会占用服务器中较多的计算资源,降低服务器的处理效率。
发明内容
本发明实施例提供了一种棋牌结果生成的方法以及相关装置,棋牌结果生成装置离线缓存所有的和牌标准,因此只需匹配编码结果,无需对玩家手牌进行实时计算,这个过程大幅地降低了处理时间,同时,释放了大量的计算资源,提升了处理效率。
有鉴于此,本发明的第一方面提供了一种棋牌结果生成的方法,包括:
获取待检测棋牌数据,其中,所述待检测棋牌数据包括N个棋牌面值,所述N为大于0的整数;
采用棋牌编码规则对所述待检测棋牌数据进行编码,得到目标编码结果,其中,所述棋牌编码规则用于表示各个棋牌面值之间的关联关系;
检测所述目标编码结果是否与已编码结果匹配,其中,所述已编码结果属于已编码结果集合中的一项;
若所述目标编码结果与所述已编码结果匹配,则生成棋牌结果。
本发明的第二方面提供了一种棋牌结果生成装置,包括:
获取模块,用于获取待检测棋牌数据,其中,所述待检测棋牌数据包括N个棋牌面值,所述N为大于0的整数;
编码模块,用于采用棋牌编码规则对所述获取模块获取的所述待检测棋牌数据进行编码,得到目标编码结果,其中,所述棋牌编码规则用于表示各个棋牌面值之间的关联关系;
生成模块,用于检测所述编码模块编码得到的所述目标编码结果是否与已编码结果匹配,若所述目标编码结果与所述已编码结果匹配,则生成棋牌结果,其中,所述已编码结果属于已编码结果集合中的一项。
本发明的第三方面提供了一种棋牌结果生成装置,所述棋牌结果生成装置包括:存储器、收发器、处理器以及总线系统;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,包括如下步骤:
获取待检测棋牌数据,其中,所述待检测棋牌数据包括N个棋牌面值,所述N为大于0的整数;
采用棋牌编码规则对所述待检测棋牌数据进行编码,得到目标编码结果,其中,所述棋牌编码规则用于表示各个棋牌面值之间的关联关系;
检测所述目标编码结果是否与已编码结果匹配,其中,所述已编码结果属于已编码结果集合中的一项;
若所述目标编码结果与所述已编码结果匹配,则生成棋牌结果;
所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例中,提供了一种棋牌结果生成的方法,首先,棋牌结果生成装置获取待检测棋牌数据,待检测棋牌数据包括N个棋牌面值,然后采用棋牌编码规则对待检测棋牌数据进行编码,得到目标编码结果,棋牌编码规则用于表示各个棋牌面值之间的关联关系,如果目标编码结果与已编码结果匹配,那么棋牌结果生成装置可以生成棋牌结果。通过上述方式,采用棋牌编码规则对玩家手牌进行编码,以得到目标编码结果,棋牌结果生成装置利用预先缓存的编码结果,将目标编码结果与已编码结果进行比对,即可得到玩家手牌的棋牌结果。棋牌结果生成装置离线缓存所有的和牌标准,因此只需匹配编码结果,无需对玩家手牌进行实时计算,这个过程大幅地降低了处理时间,同时,释放了大量的计算资源,提升了处理效率。
附图说明
图1为本发明实施例中棋牌结果生成系统的一个架构示意图;
图2为本发明实施例中棋牌面值的一个示意图;
图3为本发明实施例中棋牌结果生成的方法一个实施例示意图;
图4为本发明应用场景中棋牌面值为一对的牌面示意图;
图5为本发明应用场景中棋牌面值为一对一副的牌面示意图;
图6为本发明应用场景中棋牌面值为一对二副的牌面示意图;
图7为本发明应用场景中棋牌面值为一对三副的牌面示意图;
图8为本发明应用场景中棋牌面值为一对四副的牌面示意图;
图9为本发明应用场景中棋牌面值为七对的牌面示意图;
图10为本发明应用场景中棋牌面值为十三幺的牌面示意图;
图11为本发明应用场景中棋牌面值为不靠的牌面示意图;
图12为本发明应用场景中棋牌面值为组合龙的牌面示意图;
图13为本发明实施例中客户端展示棋牌结果的一个界面示意图;
图14为本发明应用场景中生成棋牌结果的一个流程示意图;
图15为本发明实施例中棋牌结果生成装置一个实施例示意图;
图16为本发明实施例中棋牌结果生成装置另一个实施例示意图;
图17为本发明实施例中棋牌结果生成装置另一个实施例示意图;
图18为本发明实施例中棋牌结果生成装置一个结构示意图。
具体实施方式
本发明实施例提供了一种棋牌结果生成的方法以及棋牌结果生成装置,棋牌结果生成装置离线缓存所有的和牌标准,因此只需匹配编码结果,无需对玩家手牌进行实时计算,这个过程大幅地降低了处理时间,同时,释放了大量的计算资源,提升了处理效率。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应理解,本发明主要应用于棋牌类应用程序,可将本发明所提供的棋牌结果生成的方法部署于服务器或客户端,若部署于服务器,那么棋牌结果生成装置在生成棋牌结果之后推送给客户端,客户端展示该棋牌结果。若部署于客户端,那么棋牌结果生成装置在生成棋牌结果之后直接由客户端进行展示。请参阅图1,图1为本发明实施例中棋牌结果生成系统的一个架构示意图,如图所示,服务器与客户端建立通信连接,客户端部署于终端设备上,其中,终端设备包含但不仅限于平板电脑、笔记本电脑、个人电脑以及手机。
应理解,本发明具体可应用于麻将类应用程序,玩家可以通过客户端随时随地的进行游戏,既可以和其他玩家进行对战,也可以进行单机游戏。为了便于理解,下面将结合图2对本发明中的一些术语进行介绍,请参阅图2,图2为本发明实施例中棋牌面值的一个示意图,如图所示,棋牌面值可以表现为“序数牌”和“字牌”,其中,“序数牌”共有108张,“字牌”共有28张。图2中的第一行是“筒子牌”,从“一筒”到“九筒”(“一筒”、“二筒”、“三筒”、“四筒”、“五筒”、“六筒”、“七筒”、“八筒”以及“九筒”)各4张,合计36张。图2中的第二行是“条子牌”,从“一条”到“九条”(“一条”、“二条”、“三条”、“四条”、“五条”、“六条”、“七条”、“八条”以及“九条”)各4张,合计36张。图2中的第三行是“万子牌”,从“一万”到“九万”(“一万”、“二万”、“三万”、“四万”、“五万”、“六万”、“七万”、“八万”以及“九万”)各4张,合计36张。图2中的第四行是“风牌”,包括4张“东风”、4张“南风”、4张“西风”以及4张“北风”,合计16张。图2中的第五行是“箭牌”,包括4张“红中”、4张“发财”以及4张“白板”,合计12张。
将上述提到的“序数牌”和“字牌”进行组合,可以得到五种标准状态,分别为“吃”、“碰”、“杠”、“听牌”以及“和牌”,其中,“吃”表示上一位玩家打出的牌与本轮需要出牌的玩家的手牌正好组成一副顺子(如“一筒”+“二筒”+“三筒”)。“碰”表示一位玩家打出一张牌与另一位玩家的手牌正好组成一副刻子(如“一条”+“一条”+“一条”),即三个完全相同的牌。“杠”表示玩家手牌已经有三张相同的牌,然后又自己抓上一张相同的牌或者其他玩家打出这张牌,使玩家手牌正好组成四个相同的牌(如“一条”+“一条”+“一条”+“一条”)。“听牌”表示玩家手牌都凑成了有用的牌,只需要再加上最后一张牌便可“和牌”,进入“听牌”阶段之后不能“吃”、“碰”或者“杠”。“和牌”也可以称为“胡牌”,常见的“和牌”牌型为m×AAA+n×ABC+DD(m、n可以为0)“AAA”即表示刻子,“ABC”即表示顺子,“DD”即表示对子,此外,还有其他牌型也能“和牌”,比如“十三幺”、“不靠”以及“组合龙”等,此处不做穷举。
下面将从棋牌结果生成装置的角度,对本发明中棋牌结果生成的方法进行介绍,请参阅图3,本发明实施例中棋牌结果生成的方法一个实施例包括:
101、获取待检测棋牌数据,其中,待检测棋牌数据包括N个棋牌面值,N为大于0的整数;
本实施例中,首先棋牌结果生成装置可以实时获取玩家的手牌数据,即待检测棋牌数据,待检测棋牌数据中包括了N个棋牌面值,而这N个棋牌面值可能各不相同,也可以有相同情况。
102、采用棋牌编码规则对待检测棋牌数据进行编码,得到目标编码结果,其中,棋牌编码规则用于表示各个棋牌面值之间的关联关系;
本实施例中,棋牌结果生成装置在得到待检测棋牌数据时,即可采用预先设置的棋牌编码规则对该待检测棋牌数据进行编码处理,由此得到对应的目标编码结果。需要说明的是,首先棋牌编码规则是表示各个棋牌面值之间的关联关系,关联关系包括与前一个相邻的棋牌面值是否相等,与前一个相邻的棋牌面值是否连续。
具体地,相邻棋牌面值相等时,可以表示为“AA”,或者“AAA”,又或者是“AAAA”。相邻棋牌面值相等时,可以表示为“AB”,或者“ABC”,或者“ABCD”,或者“ABCDE”,或者“ABCDEF”,或者“ABCDEFG”,或者“ABCDEFGH”,又或者“ABCDEFGHI”。而棋牌编码规则则是表示棋牌面值“A”与“A”之间的关系,或者表示“A”与“B”之间的关系等。此外,还可以表示不同段落之间的关系,每一个段落是由单个独立的棋牌面值,或者相等的棋牌面值,或者连续的棋牌面值构成。
103、检测目标编码结果是否与已编码结果匹配,其中,已编码结果属于已编码结果集合中的一项;
本实施例中,棋牌结果生成装置将生成的目标编码结果与已编码结果集合中的已编码结果进行比对。
104、若目标编码结果与已编码结果匹配,则生成棋牌结果。
本实施例中,棋牌结果生成装置将生成的目标编码结果与已编码结果集合中的已编码结果进行比对之后,如果目标编码结果与已编码结果一致,说明匹配成功,也就是说,本次编码得到的目标编码结果满足“和牌”要求的编码结果,于是,棋牌结果生成装置可以生成相应的棋牌结果,棋牌结果表示为可“和牌”。
相反地,如果棋牌结果生成装置检测到目标编码结果与已编码结果不匹配,那么棋牌结果生成装置不会触发与“和牌”相关的提示,而是继续进行后续检测。
本发明实施例中,提供了一种棋牌结果生成的方法,首先,棋牌结果生成装置获取待检测棋牌数据,待检测棋牌数据包括N个棋牌面值,然后采用棋牌编码规则对待检测棋牌数据进行编码,得到目标编码结果,棋牌编码规则用于表示各个棋牌面值之间的关联关系,如果目标编码结果与已编码结果匹配,那么棋牌结果生成装置可以生成棋牌结果。通过上述方式,采用棋牌编码规则对玩家手牌进行编码,以得到目标编码结果,棋牌结果生成装置利用预先缓存的编码结果,将目标编码结果与已编码结果进行比对,即可得到玩家手牌的棋牌结果。棋牌结果生成装置离线缓存所有的和牌标准,因此只需匹配编码结果,无需对玩家手牌进行实时计算,这个过程大幅地降低了处理时间,同时,释放了棋牌结果生成装置中大量的计算资源,提升了棋牌结果生成装置的处理效率。
可选地,在上述图3对应的实施例的基础上,本发明实施例提供的棋牌结果生成的方法第一个可选实施例中,采用棋牌编码规则对待检测棋牌数据进行编码,得到目标编码结果,可以包括:
根据待检测棋牌数据的N个棋牌面值确定M个编码分段,其中,M为大于0的整数,M个编码分段中的每个编码分段包括连续的棋牌面值,或者相等的棋牌面值,或者单个棋牌面值;
对M个编码分段中的每个编码分段进行编码,得到子编码结果;
若M等于1,则根据子编码结果获取目标编码结果;
若M大于1,则根据子编码结果以及第一比特位,获取目标编码结果,其中,第一比特位用于分隔待检测棋牌数据中两个位于相邻位置的编码分段。
本实施例中,说明如何采用棋牌编码规则对待检测棋牌数据进行编码,以得到相应的编码结果。首先需要对待检测棋牌数据进行分段,分段的依据包括棋牌面值连续的情况,棋牌面值相等的情况以及独立的棋牌面值。假设待检测棋牌数据包括8个棋牌面值,对这8个棋牌面值进行分段,得到的编码分段如下表1所示。
表1
棋牌面值 | 棋牌面值之间的关联关系 | 编码分段 |
一万 | —— | 1 |
一万 | 相等 | 1 |
二万 | 连续 | 1 |
三万 | 连续 | 1 |
七筒 | —— | 2 |
八筒 | 连续 | 2 |
东风 | —— | 3 |
东风 | 相等 | 3 |
根据表1所示的内容可知,两个“一万”是相等的,“二万”与“一万”连续,“三万”与“二万”连续,因此可以将这两个“一万”、“二万”和“三万”分为同一个编码分段,即第一编码分段。接下来可以看出,“七筒”与“三万”之间没有联系,因此,需要将“七筒”放在下一个编码分段中,即第二编码分段,类似地,由于“八筒”和“七筒”之间是连续的,所以“七筒”和“八筒”都属于第二编码分段。显然“东风”与“八筒”之间也没有关联性,因此,“东风”需要与下一个“东风”被一起划为在另一个编码分段中,即得到第三编码分段。
如果只存在一个编码分段,那么直接对该编码分段进行编码,即可得到目标编码结果。如果存在多个编码分段,比如表1中所示的三个编码分段,那么编码分段之间就需要采用第一比特位进行分段标注,其中,第一比特位可以表示为“00”,假设待检测棋牌数据有三个编码分段,则待检测棋牌数据可以表示为“第一编码分段00第二编码分段00第三编码分段”。
其中,第一编码分段、第二编码分段以及第三编码分段也需要进行编码,以得到三个子编码结果,最后与“00”构成目标编码结果。
其次,本发明实施例中,介绍了棋牌编码规则中其中一个规则,即利用第一比特位对多个编码分段进行划分,从而分隔待检测棋牌数据中两个位于相邻位置的编码分段。通过上述方式,在对待检测棋牌数据进行编码的过程中,考虑到相等棋牌面值和连续棋牌面值的情况,为了降低编码难度,对具有关联性的棋牌面值进行分组,从而提升编码的可操作性。
可选地,在上述图3对应的第一个实施例的基础上,本发明实施例提供的棋牌结果生成的方法第二个可选实施例中,对M个编码分段中的每个编码分段进行编码,得到子编码结果,可以包括:
获取编码分段中的第一棋牌面值以及第二棋牌面值,其中,第一棋牌面值与第二棋牌面值为待检测棋牌数据位于相邻位置的两个棋牌面值;
若第一棋牌面值与第二棋牌面值为连续的棋牌面值,则将第一棋牌面值和第二编码面值均编码为第二比特位;
根据第二比特位生成子编码结果。
本实施例中,棋牌结果生成装置在对编码分段进行编码时会考虑两种情况,第一种是棋牌面值连续的情况,第二种是棋牌面值相等的情况,本实施例先介绍第一种情况。在编码分段中,相邻的两个棋牌面值包括第一棋牌面值和第二棋牌面值,这两个棋牌面值呈相邻的排列关系。首先出现是第一棋牌面值,可以编码为第二比特位,而相连的第二棋牌面值,也可以编码为第二比特位,其中,第二比特位可以表示为“1”,将这些第二比特位组合在一起,即生成子编码结果。
具体地,假设一个编码分段中的棋牌面值分别为“一万二万三万四万五万”,第一棋牌面值为“一万”,将“一万”用第二比特位进行编码,即得到“1”这个编码结果,接下来对“二万”进行编码。因为“二万”和“一万”是连续关系,因此,对“二万”进行编码后也得到“1”,以此类推,“三万”、“四万”和“五万”均为连续关系,即都采用“1”进行编码。最后,得到这个编码分段所对应的子编码结果为“1 1 1 1 1”。
基于上述编码方式,如果待检测棋牌数据共有两个编码分段,第一个编码分段中的棋牌面值分别为“一万二万三万四万五万”,第二个编码分段中的棋牌面值分别为“一条二条三条”,那么可以得到目标编码结果为“1 1 1 1 1 00 1 1 1”。
再次,本发明实施例中,介绍了一种对连续棋牌面值进行编码的方式,即如果第一棋牌面值与第二棋牌面值为连续的棋牌面值,那么可以将第一棋牌面值和第二编码面值均编码为第二比特位,最后,根据第二比特位生成子编码结果。通过上述方式,在对待检测棋牌数据进行编码的过程中,考虑到连续棋牌面值的情况,为了降低编码难度,对具有连续性的棋牌面值采用第二比特位进行统一编码,由此还减少了编码量。
可选地,在上述图3对应的第一个实施例的基础上,本发明实施例提供的棋牌结果生成的方法第三个可选实施例中,对M个编码分段中的每个编码分段进行编码,得到子编码结果,可以包括:
获取编码分段中的第一棋牌面值以及第二棋牌面值,其中,第一棋牌面值与第二棋牌面值为待检测棋牌数据位于相邻位置的两个棋牌面值;
若第一棋牌面值与第二棋牌面值为相等的棋牌面值,则将第一棋牌面值编码为第二比特位,并将第二棋牌面值编码为第三比特位;
根据第二比特位以及第三比特位生成子编码结果。
本实施例中,根据上述图3对应的第二个实施例可知,还存在第二种编码情况,即棋牌面值相等时的编码方式。本实施例将介绍这种情况。在编码分段中,相邻的两个棋牌面值包括第一棋牌面值和第二棋牌面值,这两个棋牌面值呈相邻的排列关系。首先出现是第一棋牌面值,可编码为第二比特位,而与第一棋牌面值相等的第二棋牌面值可以编码为第三比特位,其中,第二比特位可以表示为“1”,第三比特位可以表示为“01”,将第二比特位和第三比特位组合在一起,即生成子编码结果。
具体地,假设一个编码分段中的棋牌面值分别为“一万一万一万”,第一棋牌面值为“一万”,将“一万”用第二比特位进行编码,即得到“1”这个编码结果,接下来对下一个“一万”进行编码,由于“一万”和“一万”是相等关系,因此,对第二个“一万”的编码为“01”,以此类推,第三个“一万”也采用“01”进行编码,最后,得到这个编码分段所对应的编码结果为“101 01”。
基于上述编码方式,如果待检测棋牌数据共有两个编码分段,第一个编码分段中的棋牌面值分别为“一万二万三万四万五万”,第二个编码分段中的棋牌面值分别为“一条一条一条”,那么可以得到目标编码结果为“1 1 1 1 1 00 1 01 01”。
再次,本发明实施例中,介绍了一种对相等棋牌面值进行编码的方式,即如果第一棋牌面值与第二棋牌面值为相等的棋牌面值,那么可以将第一棋牌面值编码为第二比特位,并将第二编码面值均编码为第三比特位,最后,根据第二比特位以及第三比特位生成子编码结果。通过上述方式,在对待检测棋牌数据进行编码的过程中,考虑到相等棋牌面值的情况,为了降低编码难度,对相等的棋牌面值采用第二比特位和第三比特位进行统一编码,由此减少编码量。
可选地,在上述图3以及图3对应的第一个至第三个实施例中任一项的基础上,本发明实施例提供的棋牌结果生成的方法第四个可选实施例中,生成棋牌结果之前,还可以包括:
获取待存储棋牌数据集合,其中,待存储棋牌数据集合包括多个待存储棋牌数据;
采用棋牌编码规则对每个待存储棋牌数据进行编码,得到已编码结果集合,其中,已编码结果集合包含每个待存储棋牌数据所对应的已编码结果;
存储已编码结果集合。
本实施例中,棋牌结果生成装置会在生成棋牌结果之前,还需要预先存储已编码结果集合,其中,已编码结果集合中包含多个已编码结果,每个已编码结果对应至少一种待存储棋牌数据。
具体地,首先待存储棋牌数据是满足“和牌”条件的手牌类型,采用棋牌编码规则对待存储棋牌数据进行编码,为了便于理解,请参阅表2,表2为待存储棋牌数据与已编码结果之间的对应结果示意。
表2
由此可见,即便出现待存储棋牌数据的棋牌面值不同的情况,也可能会对应于相同的已编码结果,这样可以大大降低编码结果的重复度,从而降低对存储资源的消耗。
进一步地,本发明实施例中,棋牌结果生成装置会预先获取多个待存储棋牌数据,同样采用棋牌编码规则对每个待存储棋牌数据进行编码,以得到已编码结果集合,由棋牌结果生成装置存储该已编码结果集合。通过上述方式,可以离线遍历所有和牌的手牌类型,按照优化的编码方式对这些手牌类型进行编码,并存储编码后得到的已编码结果集合,这样的话,不但能够在离线的状态下也能对待检测棋牌数据数据进行编码和检测,还可以降低编码量,得到的已编码结果集合通常在1兆以内,由此,提升方案的实用性。
可选地,在上述图3对应的第四个实施例的基础上,本发明实施例提供的棋牌结果生成的方法第五个可选实施例中,采用棋牌编码规则对每个待存储棋牌数据进行编码,得到已编码结果集合,可以包括:
根据待存储棋牌数据确定至少一个编码分段;
若待存储棋牌数据包括一个编码分段,则采用第二比特位以及第三比特位对待存储棋牌数据进行编码,得到已编码结果;
若待存储棋牌数据包括多个编码分段,则采用第一比特位与第二比特位对待存储棋牌数据进行编码,或采用第一比特位与第三比特位对待存储棋牌数据进行编码,或采用第一比特位、第二比特位以及第三比特位对待存储棋牌数据进行编码,得到已编码结果;
根据每个待存储棋牌数据所对应的已编码结果,生成第一待存储棋牌数据集合。
本实施例中,将通过具体的例子介绍如何对不同类型的待存储棋牌数据进行编码,最后得到已编码结果集合。首先,针对“和牌”类型中的“一对N副”牌型进行说明,N为0、1、2、3或4,所谓的“一对”就是两个一样的棋牌面值,而“副”可以是三个一样的棋牌面值,或者三个连续的棋牌面值。
为了便于介绍,请参阅图4,图4为本发明应用场景中棋牌面值为一对的牌面示意图,如图所示,当N等于0时,即只存在一对的情况,这个时候需要两张一样的棋牌面值,如两个“三筒”,这一对“三筒”即为待存储棋牌数据的一个编码分段,可以采用第二比特位和第三比特位对待存储棋牌数据进行编码,得到的已编码结果为“1 01”。
请参阅图5,图5为本发明应用场景中棋牌面值为一对一副的牌面示意图,如图所示,当N等于1时,即存在一对加一副的情况,假设一对牌为两个“东风”,这一对“东风”即为待存储棋牌数据的一个编码分段,而“五万”、“六万”和“七万”构成待存储棋牌数据的另一个编码分段。可以采用第二比特位和第三比特位对待存储棋牌数据中的第一个编码分段进行编码,得到编码后的结果为“1 01”,再采用第二比特位对待存储棋牌数据中的第二个编码分段进行编码,得到的编码后的结果为“1 1 1”,于是,将两个编码后的结果进行组合,用第一比特位分隔开不同的编码分段,从而得到已编码结果为“1 01 00 1 1 1”。
请参阅图6,图6为本发明应用场景中棋牌面值为一对二副的牌面示意图,如图所示,当N等于2时,即存在一对加两副的情况,假设一对牌为两个“东风”,这一对“东风”即为待存储棋牌数据的一个编码分段,“五万”、“六万”和“七万”构成待存储棋牌数据的第二个编码分段,“三筒”、“四筒”和“五筒”构成待存储棋牌数据的第三个编码分段。可以采用第二比特位和第三比特位对待存储棋牌数据中的第一个编码分段进行编码,得到编码后的结果为“1 01”,采用第二比特位对待存储棋牌数据中的第二个编码分段进行编码,得到的编码后的结果为“1 1 1”,采用第二比特位对待存储棋牌数据中的第三个编码分段进行编码,得到的编码后的结果为“1 1 1”,于是,将三个编码后的结果进行组合,用第一比特位分隔开不同的编码分段,从而得到已编码结果为“1 01 00 1 1 1 00 1 1 1”。
请参阅图7,图7为本发明应用场景中棋牌面值为一对三副的牌面示意图,如图所示,当N等于3时,即存在一对加三副的情况,假设一对牌为两个“东风”,这一对“东风”即为待存储棋牌数据的一个编码分段,“五万”、“六万”和“七万”构成待存储棋牌数据的第二个编码分段,“三筒”、“四筒”和“五筒”构成待存储棋牌数据的第三个编码分段,“一条”、“二条”和“三条”构成待存储棋牌数据的第四个编码分段。可以采用第二比特位和第三比特位对待存储棋牌数据中的第一个编码分段进行编码,得到编码后的结果为“1 01”,采用第二比特位对待存储棋牌数据中的第二个编码分段进行编码,得到的编码后的结果为“1 1 1”,采用第二比特位对待存储棋牌数据中的第三个编码分段进行编码,得到的编码后的结果为“1 1 1”,采用第二比特位和第三比特位对待存储棋牌数据中的第四个编码分段进行编码,得到的编码后的结果为“1 1 1”于是,将四个编码后的结果进行组合,用第一比特位分隔开不同的编码分段,从而得到已编码结果为“1 01 00 1 1 1 00 1 1 1 00 1 1 1”。
请参阅图8,图8为本发明应用场景中棋牌面值为一对四副的牌面示意图,如图所示,当N等于4时,即存在一对加四副的情况,假设一对牌为两个“东风”,这一对“东风”即为待存储棋牌数据的一个编码分段,“五万”、“六万”和“七万”构成待存储棋牌数据的第二个编码分段,“三筒”、“四筒”和“五筒”构成待存储棋牌数据的第三个编码分段,“一条”、“二条”和“三条”构成待存储棋牌数据的第四个编码分段,“八筒”、“八筒”和“八筒”构成待存储棋牌数据的第五个编码分段。可以采用第二比特位和第三比特位对待存储棋牌数据中的第一个编码分段进行编码,得到编码后的结果为“1 01”,采用第二比特位对待存储棋牌数据中的第二个编码分段进行编码,得到的编码后的结果为“1 1 1”,采用第二比特位对待存储棋牌数据中的第三个编码分段进行编码,得到的编码后的结果为“1 1 1”,采用第二比特位和第三比特位对待存储棋牌数据中的第四个编码分段进行编码,得到的编码后的结果为“11 1”于是,采用第二比特位和第三比特位对待存储棋牌数据中的第五个编码分段进行编码,得到编码后的结果为“1 01 01”,将五个编码后的结果进行组合,用第一比特位分隔开不同的编码分段,从而得到已编码结果为“1 01 00 1 1 1 00 1 1 1 00 1 1 1 00 1 0101”。
最后,将各个已编码结果存储在第一待存储棋牌数据集合中,该第一待存储棋牌数据集合可以表现为哈希表。其中,已编码结果集合可以包含“一对N副”对应的第一待存储棋牌数据集合,“七对”对应的第二待存储棋牌数据集合,以及其他情况对应的编码结果。
更进一步地,本发明实施例中,棋牌结果生成装置可以针对“一对N副”的情况,对待存储棋牌数据进行分段,然后对每个编码分段进行编码,编码方式包括采用第一比特位、第二比特位以及第三比特位对待存储棋牌数据进行编码,从而得到“一对N副”的已编码结果,最后存储在第一待存储棋牌数据集合中,通过上述方式,为“一对N副”的情况提供了具体的编码方式,从而提升方案的灵活性和可行性。
可选地,在上述图3对应的第四个实施例的基础上,本发明实施例提供的棋牌结果生成的方法第六个可选实施例中,采用棋牌编码规则对每个存储棋牌数据进行编码,得到已编码结果集合,可以包括:
根据待存储棋牌数据确定七个编码分段;
采用采用第二比特位与第三比特位对待存储棋牌数据进行编码,或采用第一比特位、第二比特位以及第三比特位对待存储棋牌数据进行编码,得到已编码结果;
根据每个待存储棋牌数据所对应的已编码结果,生成第二待存储棋牌数据集合。
本实施例中,将通过具体的例子针对“和牌”类型中的“七对”牌型进行说明,所谓的“七对”就是有七对两个一样的棋牌面值。
为了便于介绍,请参阅图9,图9为本发明应用场景中棋牌面值为七对的牌面示意图,如图所示,一对“东风”即为待存储棋牌数据的第一个编码分段,可以采用第二比特位和第三比特位对第一个编码分段进行编码,得到的编码结果为“1 01”。一对“八筒”即为待存储棋牌数据的第二个编码分段,可以采用第二比特位和第三比特位对第一个编码分段进行编码,得到的编码结果为“1 01”。一对“四条”、一对“五条”和一对“六条”即为待存储棋牌数据的第三个编码分段,可以采用第二比特位和第三比特位对第一个编码分段进行编码,得到的编码结果为“1 01 1 01 1 01”。两对“三万”即为待存储棋牌数据的第四个编码分段,可以采用第二比特位和第三比特位对第一个编码分段进行编码,得到的编码结果为“1 0101 01”。将四个编码后的结果进行组合,用第一比特位分隔开不同的编码分段,从而得到已编码结果为“1 01 00 1 01 00 1 01 1 01 1 01 00 1 01 01 01”。
更进一步地,本发明实施例中,棋牌结果生成装置可以针对“七对”的情况,对待存储棋牌数据进行分段,然后对每个编码分段进行编码,编码方式包括采用第一比特位、第二比特位以及第三比特位对待存储棋牌数据进行编码,从而得到“七对”的已编码结果,最后存储在第二待存储棋牌数据集合中,通过上述方式,为“七对”的情况提供了具体的编码方式,从而提升方案的灵活性和可行性。
在实际应用中,除了可以对“一对N副”以及“七对”的牌型编码,还可以对一些特殊牌型进行编码,而这些牌型组合数量非常少,因此,可以采用如下的方式对这些特殊牌型进行编码,首先定义一个针对特殊牌型的编码方式,请参阅表3,表3为棋牌面值对应的编码方式。
表3
棋牌面值 | 编码 | 棋牌面值 | 编码 | 棋牌面值 | 编码 |
一万 | 1 | 一条 | 11 | 一筒 | 21 |
二万 | 2 | 二条 | 12 | 二筒 | 22 |
三万 | 3 | 三条 | 13 | 三筒 | 23 |
四万 | 4 | 四条 | 14 | 四筒 | 24 |
五万 | 5 | 五条 | 15 | 五筒 | 25 |
六万 | 6 | 六条 | 16 | 六筒 | 26 |
七万 | 7 | 七条 | 17 | 七筒 | 27 |
八万 | 8 | 八条 | 18 | 八筒 | 28 |
九万 | 9 | 九条 | 19 | 九筒 | 29 |
东风 | 31 | 南风 | 32 | 西风 | 33 |
北风 | 34 | 红中 | 35 | 发财 | 36 |
白板 | 37 |
基于表3所示的对应关系,请参阅图10,图10为本发明应用场景中棋牌面值为十三幺的牌面示意图,“十三幺”由“一筒”、“九筒”、“一条”、“九条”、“一万”、“九万”、“东风”、“南风”、“西风”、“北风”、“红中”、“发财”和“白板”十三种牌统称幺九牌。胡牌时这十三种牌某一种有两张,而另十二种各一枚,共计十四枚,即构成“十三幺”。对图10中的“十三幺”编码后得到的编码结果为“1 9 11 19 19 21 29 31 32 33 34 35 36 37”。当然,其编码排序不进行限定,
基于表3所示的对应关系,请参阅图11,图11为本发明应用场景中棋牌面值为不靠的牌面示意图,“不靠”由单张3种花色147、258和369不能错位的序数牌,及“东风”、“南风”、“西风”、“北风”、“红中”、“发财”和“白板”的任何14张牌组成的没有将牌的和。对图11中的“不靠”编码后得到的编码结果为“2 5 8 13 16 19 21 24 27 31 32 33 34 35”。当然,其编码排序不进行限定,
基于表3所示的对应关系,请参阅图12,图12为本发明应用场景中棋牌面值为组合龙的牌面示意图,“组合龙”要求包括3种花色的147、258和369不能错位的序数牌。对图12中的“组合龙”编码后得到的编码结果为“2 5 8 13 16 19 21 24 27 5 5 5 9 9”。当然,其编码排序不进行限定,
可选地,在上述图3对应的实施例的基础上,本发明实施例提供的棋牌结果生成的方法第七个可选实施例中,生成棋牌结果之后,还可以包括:
向客户端发送棋牌结果,以使客户端展示棋牌结果。
本实施例中,在棋牌结果生成装置生成棋牌结果之后,说明待检测棋牌数据已经满足“和牌”的要求,于是,棋牌结果生成装置向客户端推送该棋牌结果,客户端可以渲染棋牌结果,并且在显示界面上展示渲染后的棋牌结果。
为了便于理解,请参阅图13,图13为本发明实施例中客户端展示棋牌结果的一个界面示意图,如图所示,客户端上展示的待检测棋牌数据中的棋牌面值分别为“九条”、“九条”、“九条”、“八万”、“八万”、“三筒”、“三筒”、“三筒”、“四筒”、“五筒”、“六筒”、“白板”、“白板”和“白板”,这样的14个棋牌面值已经满足“和牌”条件,因此,客户端会在界面上展示“胡”的字样,告知玩家棋牌结果。
可以理解的是,在实际应用中,客户端展示棋牌结果的方式不仅限于在界面上展示“胡”的字样,还可以展示其他字样,或者振动提示,又或者是语音提示等,此处不做限定。
其次,本发明实施例中,在棋牌结果生成装置生成棋牌结果之后,还可以向客户端发送棋牌结果,以使客户端展示棋牌结果。通过上述方式,由于棋牌结果生成装置采用棋牌编码规则对待检测棋牌数据中的棋牌面值进行编码,且棋牌结果生成装置离线存储了所有和牌的已编码结果集合,从而棋牌结果生成装置能够高效地生成棋牌结果,并相应地推送给客户端,因此,客户端展示棋牌结果的时间也更快,降低了结果生成的时延。
为了便于理解,请参阅图14,图14为本发明应用场景中生成棋牌结果的一个流程示意图,如图所示,生成棋牌结果的流程具体为:
步骤S1中,首先服务器或者客户端获取玩家当前的手牌;
步骤S2中,采用优化后的棋牌编码规则对玩家当前的手牌进行编码;
步骤S3中,根据编码后的结果判断玩家当前的手牌是否满足“和牌”的条件,如果满足,则进入步骤S4,如果不满足,则跳转至步骤S11;
步骤S4中,对和牌模式进行分类,大致可以分为三个类型,包括“一对N副”、“七对”以及“其他”三种类型;
步骤S5中,“一对N副”包括一对相同的棋牌面值,或者包括一对相同的棋牌面值加上至少一副牌,一副牌可以是三个一样的棋牌面值,也可以是三个连续的棋牌面值;
步骤S6中,“七对”包括七对相同的棋牌面值;
步骤S7中,“其他”包括“十三幺”、“组合龙”以及“不靠”的牌型;
步骤S8中,可以将这三大类牌型对应编码结果存放于三个不同的哈希表中,也可以将这三大类牌型对应的编码结果存放于同一个哈希表中,此处不做限定;
步骤S9中,判断编码后的玩家手牌是否在预先存储的哈希表中,若在哈希表中,则进入步骤S10,反之,若不在哈希表中,则跳转至步骤S11;
步骤S10中,如果在哈希表中,则确定满足“和牌”条件;
步骤S11中,如果不满足“和牌”条件,则可以进入步骤S1,重新获取玩家的手牌,如果不在哈希表中,也可以进入步骤S1,并重新获取玩家的手牌。
下面对本发明中的棋牌结果生成装置进行详细描述,请参阅图15,图15为本发明实施例中棋牌结果生成装置一个实施例示意图,棋牌结果生成装置20包括:
获取模块201,用于获取待检测棋牌数据,其中,所述待检测棋牌数据包括N个棋牌面值,所述N为大于0的整数;
编码模块202,用于采用棋牌编码规则对所述获取模块201获取的所述待检测棋牌数据进行编码,得到目标编码结果,其中,所述棋牌编码规则用于表示各个棋牌面值之间的关联关系;
生成模块203,用于检测所述编码模块202编码得到的所述目标编码结果是否与已编码结果匹配,若所述目标编码结果与所述已编码结果匹配,则生成棋牌结果,其中,所述已编码结果属于已编码结果集合中的一项。
本实施例中,获取模块201获取待检测棋牌数据,其中,所述待检测棋牌数据包括N个棋牌面值,所述N为大于0的整数,编码模块202采用棋牌编码规则对所述获取模块201获取的所述待检测棋牌数据进行编码,得到目标编码结果,其中,所述棋牌编码规则用于表示各个棋牌面值之间的关联关系,生成模块203检测所述编码模块202编码得到的所述目标编码结果是否与已编码结果匹配,若所述目标编码结果与所述已编码结果匹配,则生成棋牌结果,其中,所述已编码结果属于已编码结果集合中的一项。
本发明实施例中,提供了一种棋牌结果生成装置,首先,棋牌结果生成装置获取待检测棋牌数据,待检测棋牌数据包括N个棋牌面值,然后采用棋牌编码规则对待检测棋牌数据进行编码,得到目标编码结果,棋牌编码规则用于表示各个棋牌面值之间的关联关系,如果目标编码结果与已编码结果匹配,那么棋牌结果生成装置可以生成棋牌结果。通过上述方式,采用棋牌编码规则对玩家手牌进行编码,以得到目标编码结果,棋牌结果生成装置利用预先缓存的编码结果,将目标编码结果与已编码结果进行比对,即可得到玩家手牌的棋牌结果。棋牌结果生成装置离线缓存所有的和牌标准,因此只需匹配编码结果,无需对玩家手牌进行实时计算,这个过程大幅地降低了处理时间,同时,释放了棋牌结果生成装置中大量的计算资源,提升了棋牌结果生成装置的处理效率。
可选地,在上述图15所对应的实施例的基础上,本发明实施例提供的棋牌结果生成装置20的另一实施例中,
所述编码模块202,具体用于根据所述待检测棋牌数据的所述N个棋牌面值确定M个编码分段,其中,所述M为大于0的整数,所述M个编码分段中的每个编码分段包括连续的棋牌面值,或者相等的棋牌面值,或者单个棋牌面值;
对所述M个编码分段中的所述每个编码分段进行编码,得到子编码结果;
若所述M等于1,则根据所述子编码结果获取所述目标编码结果;
若所述M大于1,则根据所述子编码结果以及第一比特位,获取所述目标编码结果,其中,所述第一比特位用于分隔所述待检测棋牌数据中两个位于相邻位置的编码分段。
其次,本发明实施例中,介绍了棋牌编码规则中其中一个规则,即利用第一比特位对多个编码分段进行划分,从而分隔待检测棋牌数据中两个位于相邻位置的编码分段。通过上述方式,在对待检测棋牌数据进行编码的过程中,考虑到相等棋牌面值和连续棋牌面值的情况,为了降低编码难度,对具有关联性的棋牌面值进行分组,从而提升编码的可操作性。
可选地,在上述图15所对应的实施例的基础上,本发明实施例提供的棋牌结果生成装置20的另一实施例中,
所述编码模块202,具体用于获取所述编码分段中的第一棋牌面值以及第二棋牌面值,其中,所述第一棋牌面值与所述第二棋牌面值为所述待检测棋牌数据位于相邻位置的两个棋牌面值;
若所述第一棋牌面值与所述第二棋牌面值为所述连续的棋牌面值,则将所述第一棋牌面值和所述第二编码面值均编码为第二比特位;
根据所述第二比特位生成所述子编码结果。
再次,本发明实施例中,介绍了一种对连续棋牌面值进行编码的方式,即如果第一棋牌面值与第二棋牌面值为连续的棋牌面值,那么可以将第一棋牌面值和第二编码面值均编码为第二比特位,最后,根据第二比特位生成子编码结果。通过上述方式,在对待检测棋牌数据进行编码的过程中,考虑到连续棋牌面值的情况,为了降低编码难度,对具有连续性的棋牌面值采用第二比特位进行统一编码,由此还减少了编码量。
可选地,在上述图15所对应的实施例的基础上,本发明实施例提供的棋牌结果生成装置20的另一实施例中,
所述编码模块202,具体用于获取所述编码分段中的第一棋牌面值以及第二棋牌面值,其中,所述第一棋牌面值与所述第二棋牌面值为所述待检测棋牌数据位于相邻位置的两个棋牌面值;
若所述第一棋牌面值与所述第二棋牌面值为所述相等的棋牌面值,则将所述第一棋牌面值编码为第二比特位,并将所述第二棋牌面值编码为第三比特位;
根据所述第二比特位以及所述第三比特位生成所述子编码结果。
再次,本发明实施例中,介绍了一种对相等棋牌面值进行编码的方式,即如果第一棋牌面值与第二棋牌面值为相等的棋牌面值,那么可以将第一棋牌面值编码为第二比特位,并将第二编码面值均编码为第三比特位,最后,根据第二比特位以及第三比特位生成子编码结果。通过上述方式,在对待检测棋牌数据进行编码的过程中,考虑到相等棋牌面值的情况,为了降低编码难度,对相等的棋牌面值采用第二比特位和第三比特位进行统一编码,由此减少编码量。
可选地,在上述图15所对应的实施例的基础上,请参阅图16,本发明实施例提供的棋牌结果生成装置20的另一实施例中,所述棋牌结果生成装置20还包括存储模块204;
所述获取模块201,还用于所述生成模块203生成棋牌结果之前,获取待存储棋牌数据集合,其中,所述待存储棋牌数据集合包括多个待存储棋牌数据;
所述编码模块202,还用于采用所述棋牌编码规则对所述获取模块201获取的每个待存储棋牌数据进行编码,得到所述已编码结果集合,其中,所述已编码结果集合包含所述每个待存储棋牌数据所对应的已编码结果;
所述存储模块204,用于存储所述编码模块202编码后的所述已编码结果集合。
进一步地,本发明实施例中,棋牌结果生成装置会预先获取多个待存储棋牌数据,同样采用棋牌编码规则对每个待存储棋牌数据进行编码,以得到已编码结果集合,由棋牌结果生成装置存储该已编码结果集合。通过上述方式,可以离线遍历所有和牌的手牌类型,按照优化的编码方式对这些手牌类型进行编码,并存储编码后得到的已编码结果集合,这样的话,不但能够在离线的状态下也能对待检测棋牌数据数据进行编码和检测,还可以降低编码量,得到的已编码结果集合通常在1兆以内,由此,提升方案的实用性。
可选地,在上述图16所对应的实施例的基础上,本发明实施例提供的棋牌结果生成装置20的另一实施例中,
所述编码模块202,具体用于根据所述待存储棋牌数据确定至少一个编码分段;
若所述待存储棋牌数据包括一个编码分段,则采用所述第二比特位以及所述第三比特位对所述待存储棋牌数据进行编码,得到所述已编码结果;
若所述待存储棋牌数据包括多个编码分段,则采用所述第一比特位与所述第二比特位对所述待存储棋牌数据进行编码,或采用所述第一比特位与所述第三比特位对所述待存储棋牌数据进行编码,或采用所述第一比特位、所述第二比特位以及所述第三比特位对所述待存储棋牌数据进行编码,得到所述已编码结果;
根据所述每个待存储棋牌数据所对应的所述已编码结果,生成第一待存储棋牌数据集合。
更进一步地,本发明实施例中,棋牌结果生成装置可以针对“一对N副”的情况,对待存储棋牌数据进行分段,然后对每个编码分段进行编码,编码方式包括采用第一比特位、第二比特位以及第三比特位对待存储棋牌数据进行编码,从而得到“一对N副”的已编码结果,最后存储在第一待存储棋牌数据集合中,通过上述方式,为“一对N副”的情况提供了具体的编码方式,从而提升方案的灵活性和可行性。
可选地,在上述图16所对应的实施例的基础上,本发明实施例提供的棋牌结果生成装置20的另一实施例中,
所述编码模块202,具体用于根据所述待存储棋牌数据确定七个编码分段;
采用所述采用所述第二比特位与所述第三比特位对所述待存储棋牌数据进行编码,或采用所述第一比特位、所述第二比特位以及所述第三比特位对所述待存储棋牌数据进行编码,得到所述已编码结果;
根据所述每个待存储棋牌数据所对应的所述已编码结果,生成第二待存储棋牌数据集合。
更进一步地,本发明实施例中,棋牌结果生成装置可以针对“七对”的情况,对待存储棋牌数据进行分段,然后对每个编码分段进行编码,编码方式包括采用第一比特位、第二比特位以及第三比特位对待存储棋牌数据进行编码,从而得到“七对”的已编码结果,最后存储在第二待存储棋牌数据集合中,通过上述方式,为“七对”的情况提供了具体的编码方式,从而提升方案的灵活性和可行性。
可选地,在上述图15所对应的实施例的基础上,请参阅图17,本发明实施例提供的棋牌结果生成装置20的另一实施例中,所述棋牌结果生成装置还包括发送模块205;
所述发送模块205,用于所述生成模块203生成棋牌结果之后,向客户端发送所述棋牌结果,以使所述客户端展示所述棋牌结果。
其次,本发明实施例中,在棋牌结果生成装置生成棋牌结果之后,还可以向客户端发送棋牌结果,以使客户端展示棋牌结果。通过上述方式,由于棋牌结果生成装置采用棋牌编码规则对待检测棋牌数据中的棋牌面值进行编码,且棋牌结果生成装置离线存储了所有和牌的已编码结果集合,从而棋牌结果生成装置能够高效地生成棋牌结果,并相应地推送给客户端,因此,客户端展示棋牌结果的时间也更快,降低了结果生成的时延。
图18是本发明实施例提供的一种棋牌结果生成装置结构示意图,该棋牌结果生成装置300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对棋牌结果生成装置中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在棋牌结果生成装置300上执行存储介质330中的一系列指令操作。
棋牌结果生成装置300还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由棋牌结果生成装置所执行的步骤可以基于该图18所示的棋牌结果生成装置结构。
在本发明实施例中,该棋牌结果生成装置所包括的CPU 322具有以下功能:
获取待检测棋牌数据,其中,所述待检测棋牌数据包括N个棋牌面值,所述N为大于0的整数;
采用棋牌编码规则对所述待检测棋牌数据进行编码,得到目标编码结果,其中,所述棋牌编码规则用于表示各个棋牌面值之间的关联关系;
检测所述目标编码结果是否与已编码结果匹配,其中,所述已编码结果属于已编码结果集合中的一项;
若所述目标编码结果与所述已编码结果匹配,则生成棋牌结果。
可选地,CPU 322具体具有以下功能:
根据所述待检测棋牌数据的所述N个棋牌面值确定M个编码分段,其中,所述M为大于0的整数,所述M个编码分段中的每个编码分段包括连续的棋牌面值,或者相等的棋牌面值,或者单个棋牌面值;
对所述M个编码分段中的所述每个编码分段进行编码,得到子编码结果;
若所述M等于1,则根据所述子编码结果获取所述目标编码结果;
若所述M大于1,则根据所述子编码结果以及第一比特位,获取所述目标编码结果,其中,所述第一比特位用于分隔所述待检测棋牌数据中两个位于相邻位置的编码分段。
可选地,CPU 322具体具有以下功能:
获取所述编码分段中的第一棋牌面值以及第二棋牌面值,其中,所述第一棋牌面值与所述第二棋牌面值为所述待检测棋牌数据位于相邻位置的两个棋牌面值;
若所述第一棋牌面值与所述第二棋牌面值为所述连续的棋牌面值,则将所述第一棋牌面值和所述第二编码面值均编码为第二比特位;
根据所述第二比特位生成所述子编码结果。
可选地,CPU 322具体具有以下功能:
获取所述编码分段中的第一棋牌面值以及第二棋牌面值,其中,所述第一棋牌面值与所述第二棋牌面值为所述待检测棋牌数据位于相邻位置的两个棋牌面值;
若所述第一棋牌面值与所述第二棋牌面值为所述相等的棋牌面值,则将所述第一棋牌面值编码为第二比特位,并将所述第二棋牌面值编码为第三比特位;
根据所述第二比特位以及所述第三比特位生成所述子编码结果。
可选地,CPU 322还具有以下功能:
获取待存储棋牌数据集合,其中,所述待存储棋牌数据集合包括多个待存储棋牌数据;
采用所述棋牌编码规则对每个待存储棋牌数据进行编码,得到所述已编码结果集合,其中,所述已编码结果集合包含所述每个待存储棋牌数据所对应的已编码结果;
存储所述已编码结果集合。
可选地,CPU 322具体具有以下功能:
根据所述待存储棋牌数据确定至少一个编码分段;
若所述待存储棋牌数据包括一个编码分段,则采用所述第二比特位以及所述第三比特位对所述待存储棋牌数据进行编码,得到所述已编码结果;
若所述待存储棋牌数据包括多个编码分段,则采用所述第一比特位与所述第二比特位对所述待存储棋牌数据进行编码,或采用所述第一比特位与所述第三比特位对所述待存储棋牌数据进行编码,或采用所述第一比特位、所述第二比特位以及所述第三比特位对所述待存储棋牌数据进行编码,得到所述已编码结果;
根据所述每个待存储棋牌数据所对应的所述已编码结果,生成第一待存储棋牌数据集合。
可选地,CPU 322具体具有以下功能:
根据所述待存储棋牌数据确定七个编码分段;
采用所述采用所述第二比特位与所述第三比特位对所述待存储棋牌数据进行编码,或采用所述第一比特位、所述第二比特位以及所述第三比特位对所述待存储棋牌数据进行编码,得到所述已编码结果;
根据所述每个待存储棋牌数据所对应的所述已编码结果,生成第二待存储棋牌数据集合。
可选地,CPU 322还具有以下功能:
向客户端发送所述棋牌结果,以使所述客户端展示所述棋牌结果。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (15)
1.一种棋牌结果生成的方法,其特征在于,包括:
获取待检测棋牌数据,其中,所述待检测棋牌数据包括N个棋牌面值,所述N为大于0的整数;
采用棋牌编码规则对所述待检测棋牌数据进行编码,得到目标编码结果,其中,所述棋牌编码规则用于表示各个棋牌面值之间的关联关系;
检测所述目标编码结果是否与已编码结果匹配,其中,所述已编码结果属于已编码结果集合中的一项;
若所述目标编码结果与所述已编码结果匹配,则生成棋牌结果。
2.根据权利要求1所述的方法,其特征在于,所述采用棋牌编码规则对所述待检测棋牌数据进行编码,得到目标编码结果,包括:
根据所述待检测棋牌数据的所述N个棋牌面值确定M个编码分段,其中,所述M为大于0的整数,所述M个编码分段中的每个编码分段包括连续的棋牌面值,或者相等的棋牌面值,或者单个棋牌面值;
对所述M个编码分段中的所述每个编码分段进行编码,得到子编码结果;
若所述M等于1,则根据所述子编码结果获取所述目标编码结果;
若所述M大于1,则根据所述子编码结果以及第一比特位,获取所述目标编码结果,其中,所述第一比特位用于分隔所述待检测棋牌数据中两个位于相邻位置的编码分段。
3.根据权利要求2所述的方法,其特征在于,所述对所述M个编码分段中的所述每个编码分段进行编码,得到子编码结果,包括:
获取所述编码分段中的第一棋牌面值以及第二棋牌面值,其中,所述第一棋牌面值与所述第二棋牌面值为所述待检测棋牌数据位于相邻位置的两个棋牌面值;
若所述第一棋牌面值与所述第二棋牌面值为所述连续的棋牌面值,则将所述第一棋牌面值和所述第二编码面值均编码为第二比特位;
根据所述第二比特位生成所述子编码结果。
4.根据权利要求2所述的方法,其特征在于,所述对所述M个编码分段中的所述每个编码分段进行编码,得到子编码结果,包括:
获取所述编码分段中的第一棋牌面值以及第二棋牌面值,其中,所述第一棋牌面值与所述第二棋牌面值为所述待检测棋牌数据位于相邻位置的两个棋牌面值;
若所述第一棋牌面值与所述第二棋牌面值为所述相等的棋牌面值,则将所述第一棋牌面值编码为第二比特位,并将所述第二棋牌面值编码为第三比特位;
根据所述第二比特位以及所述第三比特位生成所述子编码结果。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述生成棋牌结果之前,所述方法还包括:
获取待存储棋牌数据集合,其中,所述待存储棋牌数据集合包括多个待存储棋牌数据;
采用所述棋牌编码规则对每个待存储棋牌数据进行编码,得到所述已编码结果集合,其中,所述已编码结果集合包含所述每个待存储棋牌数据所对应的已编码结果;
存储所述已编码结果集合。
6.根据权利要求5所述的方法,其特征在于,所述采用所述棋牌编码规则对每个待存储棋牌数据进行编码,得到所述已编码结果集合,包括:
根据所述待存储棋牌数据确定至少一个编码分段;
若所述待存储棋牌数据包括一个编码分段,则采用所述第二比特位以及所述第三比特位对所述待存储棋牌数据进行编码,得到所述已编码结果;
若所述待存储棋牌数据包括多个编码分段,则采用所述第一比特位与所述第二比特位对所述待存储棋牌数据进行编码,或采用所述第一比特位与所述第三比特位对所述待存储棋牌数据进行编码,或采用所述第一比特位、所述第二比特位以及所述第三比特位对所述待存储棋牌数据进行编码,得到所述已编码结果;
根据所述每个待存储棋牌数据所对应的所述已编码结果,生成第一待存储棋牌数据集合。
7.根据权利要求5所述的方法,其特征在于,所述采用所述棋牌编码规则对每个待存储棋牌数据进行编码,得到所述已编码结果集合,包括:
根据所述待存储棋牌数据确定七个编码分段;
采用所述采用所述第二比特位与所述第三比特位对所述待存储棋牌数据进行编码,或采用所述第一比特位、所述第二比特位以及所述第三比特位对所述待存储棋牌数据进行编码,得到所述已编码结果;
根据所述每个待存储棋牌数据所对应的所述已编码结果,生成第二待存储棋牌数据集合。
8.根据权利要求1所述的方法,其特征在于,所述生成棋牌结果之后,所述方法还包括:
向客户端发送所述棋牌结果,以使所述客户端展示所述棋牌结果。
9.一种棋牌结果生成装置,其特征在于,包括:
获取模块,用于获取待检测棋牌数据,其中,所述待检测棋牌数据包括N个棋牌面值,所述N为大于0的整数;
编码模块,用于采用棋牌编码规则对所述获取模块获取的所述待检测棋牌数据进行编码,得到目标编码结果,其中,所述棋牌编码规则用于表示各个棋牌面值之间的关联关系;
生成模块,用于检测所述编码模块编码得到的所述目标编码结果是否与已编码结果匹配,若所述目标编码结果与所述已编码结果匹配,则生成棋牌结果,其中,所述已编码结果属于已编码结果集合中的一项。
10.根据权利要求9所述的棋牌结果生成装置,其特征在于,
所述编码模块,具体用于根据所述待检测棋牌数据的所述N个棋牌面值确定M个编码分段,其中,所述M为大于0的整数,所述M个编码分段中的每个编码分段包括连续的棋牌面值,或者相等的棋牌面值,或者单个棋牌面值;
对所述M个编码分段中的所述每个编码分段进行编码,得到子编码结果;
若所述M等于1,则根据所述子编码结果获取所述目标编码结果;
若所述M大于1,则根据所述子编码结果以及第一比特位,获取所述目标编码结果,其中,所述第一比特位用于分隔所述待检测棋牌数据中两个位于相邻位置的编码分段。
11.根据权利要求9所述的棋牌结果生成装置,其特征在于,所述棋牌结果生成装置还包括发送模块;
所述发送模块,用于所述生成模块生成棋牌结果之后,向客户端发送所述棋牌结果,以使所述客户端展示所述棋牌结果。
12.一种棋牌结果生成装置,其特征在于,所述棋牌结果生成装置包括:存储器、收发器、处理器以及总线系统;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,包括如下步骤:
获取待检测棋牌数据,其中,所述待检测棋牌数据包括N个棋牌面值,所述N为大于0的整数;
采用棋牌编码规则对所述待检测棋牌数据进行编码,得到目标编码结果,其中,所述棋牌编码规则用于表示各个棋牌面值之间的关联关系;
检测所述目标编码结果是否与已编码结果匹配,其中,所述已编码结果属于已编码结果集合中的一项;
若所述目标编码结果与所述已编码结果匹配,则生成棋牌结果;
所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
13.根据权利要求12所述的棋牌结果生成装置,其特征在于,所述处理器具体用于执行如下步骤:
根据所述待检测棋牌数据的所述N个棋牌面值确定M个编码分段,其中,所述M为大于0的整数,所述M个编码分段中的每个编码分段包括连续的棋牌面值,或者相等的棋牌面值,或者单个棋牌面值;
对所述M个编码分段中的所述每个编码分段进行编码,得到子编码结果;
若所述M等于1,则根据所述子编码结果获取所述目标编码结果;
若所述M大于1,则根据所述子编码结果以及第一比特位,获取所述目标编码结果,其中,所述第一比特位用于分隔所述待检测棋牌数据中两个位于相邻位置的编码分段。
14.根据权利要求12所述的棋牌结果生成装置,其特征在于,所述处理器还用于执行如下步骤:
向客户端发送所述棋牌结果,以使所述客户端展示所述棋牌结果。
15.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810622629.8A CN108786107A (zh) | 2018-06-15 | 2018-06-15 | 一种棋牌结果生成的方法以及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810622629.8A CN108786107A (zh) | 2018-06-15 | 2018-06-15 | 一种棋牌结果生成的方法以及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108786107A true CN108786107A (zh) | 2018-11-13 |
Family
ID=64086808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810622629.8A Pending CN108786107A (zh) | 2018-06-15 | 2018-06-15 | 一种棋牌结果生成的方法以及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108786107A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110124320A (zh) * | 2019-05-15 | 2019-08-16 | 杨天一 | 一种麻将胡牌表生成方法及装置 |
CN110555480A (zh) * | 2019-09-05 | 2019-12-10 | 腾讯科技(深圳)有限公司 | 一种训练数据生成的方法及相关装置 |
CN111494956A (zh) * | 2020-04-13 | 2020-08-07 | 北京字节跳动网络技术有限公司 | 任务数据的获取方法、装置及电子设备 |
CN112685921A (zh) * | 2021-03-12 | 2021-04-20 | 中至江西智能技术有限公司 | 一种高效精确搜索的麻将智能决策方法、系统及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8366111B2 (en) * | 2008-09-29 | 2013-02-05 | Nancy Factor | Tile to game card replication game |
CN104436652A (zh) * | 2014-12-19 | 2015-03-25 | 北京奇虎科技有限公司 | 网络牌类游戏中的数据处理方法及服务器 |
CN107185241A (zh) * | 2017-05-27 | 2017-09-22 | 竞技世界(北京)网络技术有限公司 | 基于互联网的麻将游戏操作提醒方法及装置 |
CN108926843A (zh) * | 2017-05-22 | 2018-12-04 | 周少华 | 一种麻将类游戏中胡牌的控制方法及系统 |
-
2018
- 2018-06-15 CN CN201810622629.8A patent/CN108786107A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8366111B2 (en) * | 2008-09-29 | 2013-02-05 | Nancy Factor | Tile to game card replication game |
CN104436652A (zh) * | 2014-12-19 | 2015-03-25 | 北京奇虎科技有限公司 | 网络牌类游戏中的数据处理方法及服务器 |
CN108926843A (zh) * | 2017-05-22 | 2018-12-04 | 周少华 | 一种麻将类游戏中胡牌的控制方法及系统 |
CN107185241A (zh) * | 2017-05-27 | 2017-09-22 | 竞技世界(北京)网络技术有限公司 | 基于互联网的麻将游戏操作提醒方法及装置 |
Non-Patent Citations (1)
Title |
---|
示水的程序客栈: "麻将快速高效判胡算法", 《HTTP://SUFUQ.COM/POST/麻将快速高效判胡算法/》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110124320A (zh) * | 2019-05-15 | 2019-08-16 | 杨天一 | 一种麻将胡牌表生成方法及装置 |
CN110555480A (zh) * | 2019-09-05 | 2019-12-10 | 腾讯科技(深圳)有限公司 | 一种训练数据生成的方法及相关装置 |
CN111494956A (zh) * | 2020-04-13 | 2020-08-07 | 北京字节跳动网络技术有限公司 | 任务数据的获取方法、装置及电子设备 |
CN111494956B (zh) * | 2020-04-13 | 2022-03-04 | 北京字节跳动网络技术有限公司 | 任务数据的获取方法、装置及电子设备 |
CN112685921A (zh) * | 2021-03-12 | 2021-04-20 | 中至江西智能技术有限公司 | 一种高效精确搜索的麻将智能决策方法、系统及设备 |
CN112685921B (zh) * | 2021-03-12 | 2021-06-15 | 中至江西智能技术有限公司 | 一种高效精确搜索的麻将智能决策方法、系统及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108786107A (zh) | 一种棋牌结果生成的方法以及相关装置 | |
CN106504311B (zh) | 一种动态流体效果的渲染方法和装置 | |
CN112016704B (zh) | Ai模型训练方法、模型使用方法、计算机设备及存储介质 | |
CN106267822A (zh) | 游戏性能的测试方法和装置 | |
CN112295238B (zh) | 虚拟奖励发放方法、装置、终端和存储介质 | |
JP7137718B2 (ja) | 仮想オブジェクトの選択方法、装置、機器及びコンピュータプログラム | |
WO2015078175A1 (en) | Method,apparatus,and artificial intelligence server for determining artificial intelligence behavior | |
CN111672117B (zh) | 虚拟对象的选择方法、装置、设备及存储介质 | |
CN107648853A (zh) | 在游戏界面中显示目标对象方法、装置以及存储介质 | |
CN109872362A (zh) | 一种目标检测方法及装置 | |
CN111475771B (zh) | 基于人工智能的棋盘信息处理方法、装置、设备和介质 | |
CN111957047A (zh) | 关卡配置数据调整方法、计算机设备及存储介质 | |
CN110555529B (zh) | 一种数据处理的方法以及相关装置 | |
CN106445710A (zh) | 一种交互式对象确定的方法及相关设备 | |
CN117582652A (zh) | 围棋人机对弈方法、装置、计算机设备及存储介质 | |
CN110874310B (zh) | 一种终端行为监测方法、装置、电子设备及存储介质 | |
CN116920405A (zh) | 智能体控制模型训练方法、计算机设备及存储介质 | |
CN113946604B (zh) | 分阶段围棋教学方法、装置、电子设备及存储介质 | |
CN110909890B (zh) | 游戏人工智能训练方法、装置及服务器和存储介质 | |
CN105551500B (zh) | 一种音频信号处理方法及装置 | |
WO2021057539A1 (zh) | 一种虚拟应用对象输出方法、装置以及计算机存储介质 | |
CN101537255A (zh) | 游戏道具、计算机及游戏终端 | |
CN105653831B (zh) | 电子牌游戏牌型推荐方法和装置 | |
CN107491509A (zh) | 一种用户属性信息挖掘方法、装置和介质 | |
Wang et al. | Designing and implementing an online card game based on Android 2D graphics |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181113 |
|
RJ01 | Rejection of invention patent application after publication |