CN107335214A - 一种新昌麻将游戏的作弊检测方法 - Google Patents

一种新昌麻将游戏的作弊检测方法 Download PDF

Info

Publication number
CN107335214A
CN107335214A CN201710446944.5A CN201710446944A CN107335214A CN 107335214 A CN107335214 A CN 107335214A CN 201710446944 A CN201710446944 A CN 201710446944A CN 107335214 A CN107335214 A CN 107335214A
Authority
CN
China
Prior art keywords
board
card
player
points
board type
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
Application number
CN201710446944.5A
Other languages
English (en)
Inventor
张永良
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN201710446944.5A priority Critical patent/CN107335214A/zh
Publication of CN107335214A publication Critical patent/CN107335214A/zh
Pending legal-status Critical Current

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F9/00Games not otherwise provided for
    • A63F9/20Dominoes or like games; Mah-Jongg games
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F9/00Games not otherwise provided for
    • A63F9/20Dominoes or like games; Mah-Jongg games
    • A63F2009/205Mah-jongg games

Abstract

一种新昌麻将游戏的作弊检测方法,包括以下步骤:1)麻将游戏数据输入,将麻将牌编码,采用三维数组对麻将牌进行编码;对于麻将游戏中每一种操作也需要编码,编码规则是整数从低位到高位依次编码;2)判断下一步操作是不是出牌操作,如果不是执行步骤3),如果是执行步骤4);3)执行当前操作,回到步骤2);4)执行预测出牌模块,预测当前出牌玩家的出牌集合,和实际出牌做对比,如果实际出的牌在预测出牌集中,执行步骤2),否则执行步骤5);5)执行作弊决策模块,如果发现玩家作弊,给出提示,执行步骤2)。本发明提供了一种有效检测作弊行为、保障公平性的新昌麻将游戏的作弊检测方法。

Description

一种新昌麻将游戏的作弊检测方法
技术领域
本发明属于棋牌游戏作弊检测方法,涉及一种新昌麻将游戏的作弊检测方法。
背景技术
麻将是一种益智游戏,麻将的玩法复杂有趣,它的基本规则简单,容易上手,但其中变化又极多,搭配组合因人而异,因此成为中国历史上最能吸引人的博戏形式之一。在麻将游戏中主要有万、筒、条三门牌和字牌。三门牌中每门从一到九各有四张牌,刚好108张。除了上述三门牌之外,麻将中的其他所有非万、筒、条的牌都是字牌,分别为东、南、西、北、红中、白板、發财,共七种,每种各四张,合计28张。因此,一副麻将中合计有136张牌。
新昌麻将必须是先抓牌后打牌,发牌时庄家14张牌,闲家13张牌。在新昌麻将中只碰不吃,缺一麻将是新昌地区最为流行的麻将玩法,以其玩法简单、容易上手、规则刺激而流行。
在新昌缺一麻将游戏中,缺一是指万、筒、条三门中必需缺其中任意一门才可以胡牌,有字牌无字牌没有关系。缺二即万、筒、条三门中只有其中一门,但需带有字牌。缺三即万、筒、条三门中只有其中一门,并且无字牌。缺五即手牌全部为字牌组成。
新昌麻将的名词说明如下:
(1)明杠:自家有三张一样的牌,别家又打出来一张相同的牌;或者自家已经碰过的牌,又拿到第四张相同的牌;这两种情况都称为明杠,如果是后者可以被别家抢杠胡。
(2)暗杠:自家有三张一样的牌,又摸到第四第四张相同的牌。不管是明杠,还是暗杠,只有在自己的牌满足缺一门的情况下才能够计分。
(3)流局:在桌面上所有的牌都被拿完时仍然没有任何一家胡牌。流局时候,如果有杠牌,则下一局轮到下一家坐庄,否则保留现有庄家。
新昌麻将的胡牌规则如下:
(1)必须要缺一门才能胡牌。
(2)只能碰牌,不能吃牌。
(3)允许放冲、自摸,在明杠的时候允许抢杠胡牌。
(4)不允许一炮多响。当出现两家以上可以同时胡牌时,优先上家,过牌后才能允许下家胡牌。
随着网络游戏的快速发展,在线棋牌类游戏被大众所接受并逐渐流行,在线麻将游戏亦是如此。然而,在线麻将游戏中用户可能通过某些方式串通、作弊,一个玩家可能会故意打出关键牌使得另一玩家可以吃、碰、杠、胡,这样的做法严重影响了游戏的公平性和用户体验。一般而言,玩家在作弊时往往会出现不合理的出牌并明显有利于另一位玩家,这是作弊玩家的一个非常明显的特征。因此,可以利用技术手段有效地检测出用户的作弊行为,对作弊玩家进行惩罚,保障在线麻将游戏的公平性,提高用户的体验度和满意度。
发明内容
为了克服已有技术无法有效检测作弊行为、公平性较差的不足,本发明提供了一种有效检测作弊行为、保障公平性的新昌麻将游戏的作弊检测方法。
本发明解决其技术问题所采用的技术方案是:
一种新昌麻将游戏的作弊检测方法,包括以下步骤:
1)麻将游戏数据输入,过程如下:
将麻将牌编码,采用三维数组对麻将牌进行编码,牌类型typeInt:1-万;2-筒;3-条;4-字;牌大小number:1~9;牌标识index:1~4,区分相同的四张牌;对于麻将游戏中每一种操作也需要编码,编码规则是整数从低位到高位依次是:操作operation2位、位置position1位、牌类型type1、牌数字number1,若干牌序号index;如碰需要三个index,别人打过来的杠需要四个index,吃胡只需要一个index;操作operation的编码规则如下:10:发牌,11:打牌,12:碰,13:别人打过来的胡,14:自摸,15:暗杠,16:自摸明杠,17:别人打过来的明杠,18:过,19:流局,20:抢杠胡,21:抢杠过;
2)判断下一步操作是不是出牌操作,如果不是执行步骤3),如果是执行步骤4);
3)执行当前操作,回到步骤2);
4)执行预测出牌模块,预测当前出牌玩家的出牌集合,和实际出牌做对比,如果实际出的牌在预测出牌集中,执行步骤2),否则执行步骤5);
5)执行作弊决策模块,如果发现玩家作弊,给出提示,执行步骤2)。
进一步,所述步骤4)中,所述预测出牌模块的处理过程如下:
4.1)分析用户手牌中的每一门牌型的评分,这里每一门牌的评分由两部分组成,一部分是每一门牌的牌型得分由牌型分析模块计算出的得分,另一部分是每一门牌的手牌的数量,取这两部分的和作为每一门牌的牌型的评分;
4.2)将评分最低的那一门的手牌都加入到预测出牌结果中,如果还有另一门牌的评分小于20分,则将这一门的单牌加入预测出牌结果中,将字牌中的单牌加入预测出牌结果中;
4.3)如果出牌预测结果不是空的则返回,否则进入下一步;
4.4)把无法组成缺一顺子,顺子,对子,刻子的单牌加入到预测出牌结果中;
4.5)如果出牌预测结果不是空的则返回,否则进入下一步;
4.6)分析手牌找出一张牌,使得出了这张牌后玩家的牌型评分最高,返回这张牌。
再进一步,所述步骤4.1)中,所述牌型得分由牌型分析模块,用于量化当前玩家全部手牌的得分,用户当前的牌型得分计算时还要结合当前台面上的明牌进行分析,定义如下:
在万、筒、条三门中一个顺子为20分;一个刻子为20分,字牌中一个刻子得分也为20分;定义M为组成缺一张顺子牌型时牌局中还能组成顺子的牌的数量,组成一筒,二筒或者八筒,九筒这样的缺一张顺子牌型时得分为5×M/4分;组成一筒,三筒这样的中间缺一个牌的顺子牌型时得分为3×M/4分;组成二筒,三筒这样的顺子牌型时得分为8×M/8分;定义N为组成对子时牌局中还剩下的对子牌的数量,在筒、条、万三门中组成一对时得分为7×N/2分;在字牌中一个对子得分为12×N/2分;分析完所有的对子牌之后,在手牌中找到一个评分最低的对子,如果这个对子属于万、筒、条三门那么评分修改为10分;如果这个对子属于字牌,那么评分修改为14分;
采用递归方法求得玩家手牌的最大牌型得分maxscore,包括以下步骤:
4.1.1)定义最大牌型得分maxscore为0,当前牌型得分curscore为0;
4.1.2)如果玩家的手牌为空,执行步骤4.1.3),否则执行步骤4.1.4);
4.1.3)如果分析过程中存在对子,则找出评分最低的对子,如果这个对子属于万、筒、条三门那么评分修改为10分;如果这个对子属于字牌,那么评分修改为14分,更新curscore;如果curscore大于maxscore,那么令maxscore=curscore,结束;
4.1.4)对于玩家的第一张牌,如果能组成顺子则执行步骤4.1.5);如果能组成刻子则执行步骤4.1.6);如果能组成对子则执行步骤4.1.7)。如果能组成缺一顺子则执行步骤4.1.8);
如果第一张牌能组成多种牌型,那么要对每一种牌型进行分析;例如第一张牌能组成顺子、刻字、对子、缺一顺子,那么要分别执行步骤4.1.5)、4.1.6)、4.1.7)、4.1.8),如果什么都不能组成则去除第一张牌,返回步骤4.1.2);
4.1.5)当前牌型得分curscore加20分,把能组成顺子的牌移除,执行步骤4.1.2);
4.1.6)当前牌型得分curscore加20分,把能组成刻子的牌移除,执行步骤4.1.2);
4.1.7)如果组成对子的牌属于万、筒、条三门,则当前牌型得分curscore加10×N/2分;如果组成对子的牌是字牌,则当前牌型得分curscore加14×N/2分,把能组成对子的牌移除,执行步骤4.1.2);
4.1.8)如果是一筒,二筒或者八筒,九筒这样的缺一张顺子牌型时,当前牌型得分curscore加5×M/4分;如果是一筒,三筒这样的缺一张顺子牌型时,当前牌型得分curscore加3×M/4分;如果是二筒,三筒这样的顺子牌型时,当前牌型得分curscore加8×M/8分,返回步骤4.1.2)。
更进一步,所述步骤5)中,所述作弊决策模块,对于每一局玩家麻将游戏,每一个玩家和其他玩家之间都应该建立相关的二维作弊数组CheatMatrix。CheatMatrix[i][j]表示第i个玩家放牌给第j个玩家的作弊指数CheatValue,CheatValue的计算方式如下:
5.1)计算出牌玩家i出任意一张牌后可以获得的最佳牌型评分Smax;
5.2)计算出牌玩家i实际出牌后牌型的评分Sreal;
5.3)计算可以碰或者可以胡的玩家j拿到这张牌前后的牌型评分Sbefore,Safter;
5.4)CheatValue=(Smax-Sreal)*(Safter-Sbefore);
5.5)更新CheatMatrix,CheatMatrix[i][j]+=CheatValue;
5.6)如果CheatMatrix[i][j]>作弊阈值T,则判断玩家i和j相互串通作弊。
所述作弊决策模块中,对于同一牌桌的玩家完成一局游戏之后,CheatMatrix并不清零,下一局的检测基于上一局的CheatMatrix结果。
本发明为了检测新昌缺一麻将中的作弊情况开发了牌型分析模块,出牌预测模块,作弊决策模块。牌型分析模块用来分析麻将玩家手牌的得分。出牌预测模块是用来预测用户的出牌,通过预测出牌结果和用户实际出牌的比对来判定用户出牌是否合理。作弊决策模块对是用来判断玩家之间是否存在作弊行为。
本发明的有益效果主要表现在:保障在线麻将游戏的公平性,提高用户的体验度和满意度。
附图说明
图1是牌型分析模块样例。
图2是出牌预测模块样例。
图3是作弊决策模块样例。
图4是单局麻将作弊检测算法流程图。
图5是动态连续的多局麻将作弊检测算法流程图。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1~图5,一种新昌麻将游戏的作弊检测方法,包括以下步骤:
1)麻将游戏数据输入,麻将游戏数据输入时应该将麻将牌编码,采用三维数组对麻将牌进行编码,牌类型(typeInt):1-万;2-筒;3-条;4-字;牌大小(number):1~9;牌标识(index):1~4,区分相同的四张牌;对于麻将游戏中每一种操作也需要编码,编码规则是整数从低位到高位依次是:操作operation(2位)、位置position(1位)、牌类型type(1)、牌数字number(1),若干牌序号(index)。如碰需要三个index,别人打过来的杠需要四个index,吃胡只需要一个index。操作operation的编码规则如下:10:发牌,11:打牌,12:碰,13:别人打过来的胡,14:自摸,15:暗杠,16:自摸明杠,17:别人打过来的明杠,18:过,19:流局,20:抢杠胡,21:抢杠过;
2)判断下一步操作是不是出牌操作,如果不是执行步骤3),如果是执行步骤4);
3)执行当前操作(包括胡、碰、杠,过等),回到步骤2);
4)执行预测出牌模块,预测当前出牌玩家的出牌集合,和实际出牌做对比,如果实际出的牌在预测出牌集中,执行步骤2),否则执行步骤5);
5)执行作弊决策模块,如果发现玩家作弊,给出提示,执行步骤2)。
定义牌型分析模块,用于量化当前玩家全部手牌的得分,得分越高则当前牌型越好,用户当前的牌型得分计算时还要结合当前台面上的明牌进行分析。例如组成一筒,二筒这样的缺一张顺子时,如果已经打出的牌中没有三筒,那么评分应高于打出的牌中存在一张或者多张三筒的情况,具体定义如下:
在万、筒、条三门中一个顺子(例如一筒,二筒,三筒)为20分;一个刻子(例如一筒,一筒,一筒)为20分,字牌中一个刻子得分也为20分。定义M为组成缺一张顺子牌型时牌局中还能组成顺子的牌的数量。例如手牌中有一筒,二筒这样的缺一顺子,三筒已经打了1张,那么M为3。组成一筒,二筒或者八筒,九筒这样的缺一张顺子牌型时得分为5×M/4分。组成一筒,三筒这样的中间缺一个牌的顺子牌型时得分为3×M/4分。组成二筒,三筒这样的顺子牌型时得分为8×M/8分。定义N为组成对子时牌局中还剩下的对子牌的数量。例如手牌中有对一筒,一筒已经打了1张,那么N为1。在筒、条、万三门中组成一对时得分为7×N/2分。在字牌中一个对子得分为12×N/2分。分析完所有的对子牌之后,在手牌中找到一个评分最低的对子,如果这个对子属于万、筒、条三门那么评分修改为10分。如果这个对子属于字牌,那么评分修改为14分。
采用递归方法求得玩家手牌的最大牌型得分maxscore,该过程的的步骤如下:
4.1.1)定义最大牌型得分maxscore为0,当前牌型得分curscore为0;
4.1.2)如果玩家的手牌为空,执行步骤4.1.3),否则执行步骤4.1.4);
4.1.3)如果分析过程中存在对子,则找出评分最低的对子,如果这个对子属于万、筒、条三门那么评分修改为10分;如果这个对子属于字牌,那么评分修改为14分,更新curscore;如果curscore大于maxscore,那么令maxscore=curscore,结束;
4.1.4)对于玩家的第一张牌,如果能组成顺子则执行步骤4.1.5);如果能组成刻子则执行步骤4.1.6);如果能组成对子则执行步骤4.1.7)。如果能组成缺一顺子则执行步骤4.1.8);
如果第一张牌能组成多种牌型,那么要对每一种牌型进行分析;例如第一张牌能组成顺子、刻字、对子、缺一顺子,那么要分别执行步骤4.1.5)、4.1.6)、4.1.7)、4.1.8),如果什么都不能组成则去除第一张牌,返回步骤4.1.2);
4.1.5)当前牌型得分curscore加20分,把能组成顺子的牌移除,执行步骤4.1.2);
4.1.6)当前牌型得分curscore加20分,把能组成刻子的牌移除,执行步骤4.1.2);
4.1.7)如果组成对子的牌属于万、筒、条三门,则当前牌型得分curscore加10×N/2分;如果组成对子的牌是字牌,则当前牌型得分curscore加14×N/2分,把能组成对子的牌移除,执行步骤4.1.2);
4.1.8)如果是一筒,二筒或者八筒,九筒这样的缺一张顺子牌型时,当前牌型得分curscore加5×M/4分;如果是一筒,三筒这样的缺一张顺子牌型时,当前牌型得分curscore加3×M/4分;如果是二筒,三筒这样的顺子牌型时,当前牌型得分curscore加8×M/8分,返回步骤4.1.2)。
出牌预测模块是用来预测用户的出牌,通过预测结果来判定用户出牌是否合理。根据新昌缺一麻将的规则,预测规则如下:
4.1)分析用户手牌中的每一门牌型的评分。这里每一门牌的评分由两部分组成,一部分是每一门牌的牌型得分由牌型分析模块计算出的得分,另一部分是每一门牌的手牌的数量,取这两部分的和作为每一门牌的牌型的评分;
4.2)将评分最低的那一门的手牌都加入到预测出牌结果中。如果还有另一门牌的评分小于20分,则将这一门的单牌加入预测出牌结果中。将字牌中的单牌加入预测出牌结果中;
4.3)如果出牌预测结果不是空的则返回,否则进入下一步;
4.4)把无法组成缺一顺子,顺子,对子,刻子的单牌加入到预测出牌结果中;
4.5)如果出牌预测结果不是空的则返回,否则进入下一步;
4.6)分析手牌找出一张牌,使得出了这张牌后玩家的牌型评分最高,返回这张牌。
如果某一用户出牌破坏了自己的牌型,并且又利于某个玩家的牌型,那么玩家就可能作弊。作弊决策模块是用来量化分析玩家是否作弊,对于每一局玩家麻将游戏,每一个玩家和其他玩家之间都应该建立相关的二维作弊数组CheatMatrix。CheatMatrix[i][j]表示第i个玩家放牌给第j个玩家的作弊指数CheatValue,CheatValue的计算方式如下:
5.1)计算出牌玩家i出任意一张牌后可以获得的最佳牌型评分Smax;
5.2)计算出牌玩家i实际出牌后牌型的评分Sreal;
5.3)计算可以碰或者可以胡的玩家j拿到这张牌前后的牌型评分Sbefore,Safter;
5.4)CheatValue=(Smax-Sreal)*(Safter-Sbefore);
5.5)更新CheatMatrix,CheatMatrix[i][j]+=CheatValue;
5.6)如果CheatMatrix[i][j]>作弊阈值T,则判断玩家i和j相互串通作弊。
作弊用户在单局牌中的作弊行为可能不太明显,结合多局牌来分析可以大大提高作弊行为的检测率。对于同一牌桌的玩家完成一局游戏之后,CheatMatrix并不清零,下一局的检测基于上一局的CheatMatrix结果。
图1表示了牌型分析模块样例。当玩家的手牌是五万、六万、一筒、四筒、四筒、二条、六条、六条、七条、七条、八条、九条、东风时,可以组成一个七条、八条、九条的顺子,一个五万、六万的缺一顺子,还有四筒对子和六条对子。顺子得20分,缺一顺子得8分,2个对子得20分,这个手牌的最大牌型得分为48分。
图2表示出牌预测模块样例。当玩家的手牌是五万、六万、一筒、四筒、四筒、二条、六条、六条、七条、七条、八条、九条、东风、發财时,万、筒、条三门中万子的评分只有10分,评分最低,因此五万、六万都在预测出牌中。筒子的牌型评分只有13分,小于20分,因此筒子中的单牌一筒也在出牌预测中。字牌中的单牌东风和發财也在出牌预测中。
图3表示出牌作弊决策模块样例。当麻将游戏进行到第13步操作时,玩家2选择出八万,八万并不在预测出牌中,并且拆了七万、八万的缺一顺子导致玩家2的最大牌型评分从26.25下降到了19.25。玩家1却可以碰八万,碰牌后玩家1的最大牌型得分从58上涨到了68。这时的CheatValue达到了70,本次牌局中作弊阈值T设置为60,因此判断玩家2和玩家1存在作弊行为。
图4表示了单局麻将作弊检测算法具体实施方式流程,麻将作弊检测方法包括以下步骤:
1)麻将游戏数据输入。麻将游戏数据输入时应该将麻将牌编码,采用三维数组对麻将牌进行编码,牌类型(typeInt):1-万;2-筒;3-条;4-字。牌大小(number):1~9(比如在typeInt=1下,number=9,表示九万)。牌标识(index):1~4,区分相同的四张牌。对于麻将游戏中每一种操作也需要编码,编码规则是整数从低位到高位依次是:操作operation(2位)、位置position(1位)、牌类型type(1)、牌数字number(1),若干牌序号(index)。如碰需要三个index,别人打过来的杠需要四个index,吃胡只需要一个index。操作operation的编码规则如下:10:发牌,11:打牌,12:碰,13:别人打过来的胡,14:自摸,15:暗杠,16:自摸明杠,17:别人打过来的明杠,18:过,19:流局,20:抢杠胡,21:抢杠过。
2)判断下一步操作是不是出牌操作,如果不是执行步骤3,如果是执行步骤4;
3)执行当前操作(包括胡、碰、杠,过等),回到步骤2);
4)执行预测出牌模块,预测当前出牌玩家的出牌集合,和实际出牌做对比,如果实际出的牌在预测出牌集中,执行步骤2),否则执行步骤5);
5)执行作弊决策模块,如果发现玩家作弊,给出提示,执行步骤2)。
图5表示了动态连续的多局麻将作弊检测算法具体实施方式流程。作弊检测方法包括以下步骤:
Step 1初始化二维作弊数组CheatMatrix都为0;
Step 2对于单局麻将进行作弊检测(执行步骤1)~步骤5)),更新CheatMatrix;
Step 3对于同一牌桌的玩家完成一局游戏之后进入下一局游戏,CheatMatrix并不清零,执行步骤Step2。

Claims (5)

1.一种新昌麻将游戏的作弊检测方法,其特征在于:包括以下步骤:
1)麻将游戏数据输入,过程如下:
将麻将牌编码,采用三维数组对麻将牌进行编码,牌类型typeInt:1-万;2-筒;3-条;4-字;牌大小number:1~9;牌标识index:1~4,区分相同的四张牌;对于麻将游戏中每一种操作也需要编码,编码规则是整数从低位到高位依次是:操作operation2位、位置position1位、牌类型type1、牌数字number1,若干牌序号index;如碰需要三个index,别人打过来的杠需要四个index,吃胡只需要一个index;操作operation的编码规则如下:10:发牌,11:打牌,12:碰,13:别人打过来的胡,14:自摸,15:暗杠,16:自摸明杠,17:别人打过来的明杠,18:过,19:流局,20:抢杠胡,21:抢杠过;
2)判断下一步操作是不是出牌操作,如果不是执行步骤3),如果是执行步骤4);
3)执行当前操作,回到步骤2);
4)执行预测出牌模块,预测当前出牌玩家的出牌集合,和实际出牌做对比,如果实际出的牌在预测出牌集中,执行步骤2),否则执行步骤5);
5)执行作弊决策模块,如果发现玩家作弊,给出提示,执行步骤2)。
2.如权利要求1所述的一种新昌麻将游戏的作弊检测方法,其特征在于:所述步骤4)中,所述预测出牌模块的处理过程如下:
4.1)分析用户手牌中的每一门牌型的评分,这里每一门牌的评分由两部分组成,一部分是每一门牌的牌型得分由牌型分析模块计算出的得分,另一部分是每一门牌的手牌的数量,取这两部分的和作为每一门牌的牌型的评分;
4.2)将评分最低的那一门的手牌都加入到预测出牌结果中,如果还有另一门牌的评分小于20分,则将这一门的单牌加入预测出牌结果中,将字牌中的单牌加入预测出牌结果中;
4.3)如果出牌预测结果不是空的则返回,否则进入下一步;
4.4)把无法组成缺一顺子,顺子,对子,刻子的单牌加入到预测出牌结果中;
4.5)如果出牌预测结果不是空的则返回,否则进入下一步;
4.6)分析手牌找出一张牌,使得出了这张牌后玩家的牌型评分最高,返回这张牌。
3.如权利要求2所述的一种新昌麻将游戏的作弊检测方法,其特征在于:所述步骤4.1)中,所述牌型得分由牌型分析模块,用于量化当前玩家全部手牌的得分,用户当前的牌型得分计算时还要结合当前台面上的明牌进行分析,定义如下:
在万、筒、条三门中一个顺子为20分;一个刻子为20分,字牌中一个刻子得分也为20分;定义M为组成缺一张顺子牌型时牌局中还能组成顺子的牌的数量,组成一筒,二筒或者八筒,九筒这样的缺一张顺子牌型时得分为5×M/4分;组成一筒,三筒这样的中间缺一个牌的顺子牌型时得分为3×M/4分;组成二筒,三筒这样的顺子牌型时得分为8×M/8分;定义N为组成对子时牌局中还剩下的对子牌的数量,在筒、条、万三门中组成一对时得分为7×N/2分;在字牌中一个对子得分为12×N/2分;分析完所有的对子牌之后,在手牌中找到一个评分最低的对子,如果这个对子属于万、筒、条三门那么评分修改为10分;如果这个对子属于字牌,那么评分修改为14分;
采用递归方法求得玩家手牌的最大牌型得分maxscore,包括以下步骤:
4.1.1)定义最大牌型得分maxscore为0,当前牌型得分curscore为0;
4.1.2)如果玩家的手牌为空,执行步骤4.1.3),否则执行步骤4.1.4);
4.1.3)如果分析过程中存在对子,则找出评分最低的对子,如果这个对子属于万、筒、条三门那么评分修改为10分;如果这个对子属于字牌,那么评分修改为14分,更新curscore;如果curscore大于maxscore,那么令maxscore=curscore,结束;
4.1.4)对于玩家的第一张牌,如果能组成顺子则执行步骤4.1.5);如果能组成刻子则执行步骤4.1.6);如果能组成对子则执行步骤4.1.7)。如果能组成缺一顺子则执行步骤4.1.8);
如果第一张牌能组成多种牌型,那么要对每一种牌型进行分析;例如第一张牌能组成顺子、刻字、对子、缺一顺子,那么要分别执行步骤4.1.5)、4.1.6)、4.1.7)、4.1.8),如果什么都不能组成则去除第一张牌,返回步骤4.1.2);
4.1.5)当前牌型得分curscore加20分,把能组成顺子的牌移除,执行步骤4.1.2);
4.1.6)当前牌型得分curscore加20分,把能组成刻子的牌移除,执行步骤4.1.2);
4.1.7)如果组成对子的牌属于万、筒、条三门,则当前牌型得分curscore加10×N/2分;如果组成对子的牌是字牌,则当前牌型得分curscore加14×N/2分,把能组成对子的牌移除,执行步骤4.1.2);
4.1.8)如果是一筒,二筒或者八筒,九筒这样的缺一张顺子牌型时,当前牌型得分curscore加5×M/4分;如果是一筒,三筒这样的缺一张顺子牌型时,当前牌型得分curscore加3×M/4分;如果是二筒,三筒这样的顺子牌型时,当前牌型得分curscore加8×M/8分,返回步骤4.1.2)。
4.如权利要求1~3之一所述的一种新昌麻将游戏的作弊检测方法,其特征在于:所述步骤5)中,所述作弊决策模块,对于每一局玩家麻将游戏,每一个玩家和其他玩家之间都应该建立相关的二维作弊数组CheatMatrix。CheatMatrix[i][j]表示第i个玩家放牌给第j个玩家的作弊指数CheatValue,CheatValue的计算方式如下:
5.1)计算出牌玩家i出任意一张牌后可以获得的最佳牌型评分Smax;
5.2)计算出牌玩家i实际出牌后牌型的评分Sreal;
5.3)计算可以碰或者可以胡的玩家j拿到这张牌前后的牌型评分Sbefore,Safter;
5.4)CheatValue=(Smax-Sreal)*(Safter-Sbefore);
5.5)更新CheatMatrix,CheatMatrix[i][j]+=CheatValue;
5.6)如果CheatMatrix[i][j]>作弊阈值T,则判断玩家i和j相互串通作弊。
5.如权利要求4所述的一种新昌麻将游戏的作弊检测方法,其特征在于:所述作弊决策模块中,对于同一牌桌的玩家完成一局游戏之后,CheatMatrix并不清零,下一局的检测基于上一局的CheatMatrix结果。
CN201710446944.5A 2017-06-14 2017-06-14 一种新昌麻将游戏的作弊检测方法 Pending CN107335214A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710446944.5A CN107335214A (zh) 2017-06-14 2017-06-14 一种新昌麻将游戏的作弊检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710446944.5A CN107335214A (zh) 2017-06-14 2017-06-14 一种新昌麻将游戏的作弊检测方法

Publications (1)

Publication Number Publication Date
CN107335214A true CN107335214A (zh) 2017-11-10

Family

ID=60221148

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710446944.5A Pending CN107335214A (zh) 2017-06-14 2017-06-14 一种新昌麻将游戏的作弊检测方法

Country Status (1)

Country Link
CN (1) CN107335214A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109718556A (zh) * 2019-01-30 2019-05-07 腾讯科技(深圳)有限公司 游戏数据处理方法、装置及服务器
CN109985389A (zh) * 2019-04-04 2019-07-09 南京邮电大学 基于区块链智能合约的牌类游戏防作弊方法及其系统
CN110478908A (zh) * 2019-08-22 2019-11-22 网易(杭州)网络有限公司 麻将游戏的控制方法及装置、存储介质、电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02234785A (ja) * 1989-03-08 1990-09-17 Michio Araki 麻雀牌の整列方法
CN101259328A (zh) * 2007-07-17 2008-09-10 科乐美游戏公司 麻将游戏机和麻将游戏系统
CN201154206Y (zh) * 2008-02-28 2008-11-26 林家萍 自动麻将机上牌机构

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02234785A (ja) * 1989-03-08 1990-09-17 Michio Araki 麻雀牌の整列方法
CN101259328A (zh) * 2007-07-17 2008-09-10 科乐美游戏公司 麻将游戏机和麻将游戏系统
CN201154206Y (zh) * 2008-02-28 2008-11-26 林家萍 自动麻将机上牌机构

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109718556A (zh) * 2019-01-30 2019-05-07 腾讯科技(深圳)有限公司 游戏数据处理方法、装置及服务器
CN109718556B (zh) * 2019-01-30 2021-09-28 腾讯科技(深圳)有限公司 游戏数据处理方法、装置及服务器
CN109985389A (zh) * 2019-04-04 2019-07-09 南京邮电大学 基于区块链智能合约的牌类游戏防作弊方法及其系统
CN109985389B (zh) * 2019-04-04 2022-08-23 南京邮电大学 基于区块链智能合约的牌类游戏防作弊方法及其系统
CN110478908A (zh) * 2019-08-22 2019-11-22 网易(杭州)网络有限公司 麻将游戏的控制方法及装置、存储介质、电子设备

Similar Documents

Publication Publication Date Title
CN110404265B (zh) 一种基于博弈残局在线解算的多人非完备信息机器博弈方法、装置、系统及存储介质
CN107335214A (zh) 一种新昌麻将游戏的作弊检测方法
Sharma A factor analysis approach in performance analysis of T-20 cricket
Yicong et al. Evolution of games towards the discovery of noble uncertainty
Gao et al. Building a computer Mahjong player via deep convolutional neural networks
Billings Thoughts on roshambo
KR20090002789A (ko) 인터넷 대전 게임을 이용한 언어 학습 장치 및 그 방법
CN107773984A (zh) 棋牌类游戏加载方法及棋牌类游戏系统
Viggiato et al. Trouncing in dota 2: An investigation of blowout matches
Silva et al. Tactics for Twenty20 cricket
Aung et al. Advantage of Initiative Revisited: A case study using Scrabble AI
CN111242818B (zh) 针对少儿的围棋教学系统
CN112138367A (zh) 一种麻将游戏的出牌推荐方法、系统及设备
CN112766461A (zh) 一种基于深度学习的斗地主游戏选手余牌计算方法
Yi et al. Vicarious experimentation through imitation: Evidence from video game sequel releases
Douglas Luck and skill in professional league of legends (E-sports)
CN115177958A (zh) 一种用于模拟麻将游戏的测试方法及其系统
Honghai et al. Improving mahjong agent by predicting types of yaku
KR102568685B1 (ko) Ai에 의한 바둑기력 평가방법
US20090045575A1 (en) Poker game method and device
Cauwet et al. Depth, balancing, and limits of the Elo model
Gao et al. Research on Strategies for Tripeaks Variant with Various Layouts
Li et al. A multi-strategy valuation model for popular mahjong actions
Tong et al. Playing mini-Hanabi card game with Q-learning
Kastha Comparison of Heuristic Methods In The Othello Game

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20171110