一种掼蛋数据处理方法及相关装置与流程

文档序号:29226753发布日期:2022-03-12 13:11阅读:321来源:国知局
一种掼蛋数据处理方法及相关装置与流程

1.本技术涉及数据处理技术领域,特别涉及一种掼蛋数据处理方法、掼蛋数据处理装置、服务器以及计算机可读存储介质。


背景技术:

2.随着信息技术不断,在游戏技术领域中,由于存在参与游戏人员不足的问题,需要通过对游戏中的数据进行自动化处理,以便实现虚拟游戏过程,提高实际游戏参与人员的参与感。
3.相关技术中,为了提高掼蛋游戏的实际游戏人员参与感。基于专家规则的逻辑系统,机器人对于自己牌型组合和牌面值计算较优秀。但是,对于对手牌面值大小,队友牌面值大小,什么情况过牌,该挣头游,该帮助队友挣头游等等问题无法做出智能判断。从而影响掼蛋数据中出牌动作数据的合理性和拟人化程度,降低对掼蛋数据的处理效果。
4.因此,如何提高掼蛋数据的处理效果是本领域技术人员关注的重点问题。


技术实现要素:

5.本技术的目的是提供一种掼蛋数据处理方法、掼蛋数据处理装置、服务器以及计算机可读存储介质,通过训练好的bert决策模型对接收到的状态信息和历史状态信息进行处理,得到出牌动作数据,而不是采用专家规则进行决策,提高了对掼蛋数据进行处理的效果,提高了拟人化程度。
6.为解决上述技术问题,本技术提供一种掼蛋数据处理方法,包括:
7.从掼蛋游戏服务器接收状态信息;
8.根据所述状态信息和历史状态信息进行特征提取处理,得到状态特征矩阵数据;
9.采用bert决策模型对所述状态特征矩阵数据进行处理,得到出牌动作数据;其中,bert决策模型为根据掼蛋游戏数据训练集进行训练得到的模型;
10.发送所述出牌动作数据。
11.可选的,根据所述状态信息和历史状态信息进行特征提取处理,得到状态特征矩阵数据,包括:
12.根据掼蛋游戏模型对所述状态信息和所述历史状态信息进行归类处理,得到所述状态特征矩阵数据。
13.可选的,采用bert决策模型对所述状态特征矩阵数据进行处理,得到出牌动作数据,包括:
14.根据所述bert决策模型和所述状态特征矩阵数据对所有出牌动作进行赢面概率预测,得到每个出牌动作对应的概率;
15.将概率最大的出牌动作作为所述出牌动作数据。
16.可选的,所述根据掼蛋游戏数据训练集进行训练得到所述bert决策模型的步骤,包括:
17.对获取到的掼蛋历史数据进行特征提取处理,得到所述掼蛋游戏数据训练集;
18.根据所述掼蛋游戏数据训练集进行神经网络训练,得到所述bert决策模型。
19.可选的,还包括:
20.当接收到状态信息时,将所述状态信息保存,并作为所述历史状态信息。
21.本技术还提供一种掼蛋数据处理装置,包括:
22.信息接收模块,用于从掼蛋游戏服务器接收状态信息;
23.信息处理模块,用于根据所述状态信息和历史状态信息进行特征提取处理,得到状态特征矩阵数据;
24.模型决策模块,用于采用bert决策模型对所述状态特征矩阵数据进行处理,得到出牌动作数据;其中,bert决策模型为根据掼蛋游戏数据训练集进行训练得到的模型;
25.出牌数据发送模块,用于发送所述出牌动作数据。
26.可选的,所述信息处理模块,具体用于根据掼蛋游戏模型对所述状态信息和所述历史状态信息进行归类处理,得到所述状态特征矩阵数据。
27.可选的,还包括:
28.信息保存模块,用于当接收到状态信息时,将所述状态信息保存,并作为所述历史状态信息。
29.本技术还提供一种服务器,包括:
30.存储器,用于存储计算机程序;
31.处理器,用于执行所述计算机程序时实现如上所述的掼蛋数据处理方法的步骤。
32.本技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的掼蛋数据处理方法的步骤。
33.本技术所提供的一种掼蛋数据处理方法,包括:从掼蛋游戏服务器接收状态信息;根据所述状态信息和历史状态信息进行特征提取处理,得到状态特征矩阵数据;采用bert决策模型对所述状态特征矩阵数据进行处理,得到出牌动作数据;其中,bert决策模型为根据掼蛋游戏数据训练集进行训练得到的模型;发送所述出牌动作数据。
34.通过训练好的bert决策模型对接收到的状态信息和历史状态信息进行处理,得到出牌动作数据,而不是采用专家规则进行决策,提高了对掼蛋数据进行处理的效果,提高了拟人化程度。
35.本技术还提供一种掼蛋数据处理装置、服务器以及计算机可读存储介质,具有以上有益效果,在此不做赘述。
附图说明
36.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
37.图1为本技术实施例所提供的一种掼蛋数据处理方法的流程图;
38.图2为本技术实施例所提供的一种掼蛋数据处理装置的结构示意图。
具体实施方式
39.本技术的核心是提供一种掼蛋数据处理方法、掼蛋数据处理装置、服务器以及计算机可读存储介质,通过训练好的bert决策模型对接收到的状态信息和历史状态信息进行处理,得到出牌动作数据,而不是采用专家规则进行决策,提高了对掼蛋数据进行处理的效果,提高了拟人化程度。
40.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
41.相关技术中,为了提高掼蛋游戏的实际游戏人员参与感。基于专家规则的逻辑系统,机器人对于自己牌型组合和牌面值计算较优秀。但是,对于对手牌面值大小,队友牌面值大小,什么情况过牌,该挣头游,该帮助队友挣头游等等问题无法做出智能判断。从而影响掼蛋数据中出牌动作数据的合理性和拟人化程度,降低对掼蛋数据的处理效果。
42.因此,本技术提供一种掼蛋数据处理方法,通过训练好的bert决策模型对接收到的状态信息和历史状态信息进行处理,得到出牌动作数据,而不是采用专家规则进行决策,提高了对掼蛋数据进行处理的效果,提高了拟人化程度。
43.以下通过一个实施例,对本技术提供的一种掼蛋数据处理方法进行说明。
44.请参考图1,图1为本技术实施例所提供的一种掼蛋数据处理方法的流程图。
45.本实施例中,该方法可以包括:
46.s101,从掼蛋游戏服务器接收状态信息;
47.可见,本步骤旨在数据处理服务器从掼蛋游戏服务器中接收到状态信息。其中,数据处理服务器根据从掼蛋游戏服务器中接收到的状态信息,进行决策并返回对应的出牌数据,以便参与到掼蛋游戏服务器中的游戏中,实现在掼蛋游戏服务器中虚拟游戏者。
48.其中,状态信息是指当前游戏的状态信息,包括但不限于用户当前手中牌的数量、用户当前手中癞子牌的数量、前三轮每个玩家按照出牌顺序出的牌的数量、当前玩家的上家、对家、下家和自己所有打出去的牌的数量、所有四个玩家已经打出的牌的数量、不包括当前玩家的其他三个玩家剩余的手牌数量、级牌位置。也就是当前游戏进行中的环境数据。
49.其中,状态信息可以是图像数据,也可以是字节数据,还可以是矩阵数据,在此不做具体限定。
50.s102,根据状态信息和历史状态信息进行特征提取处理,得到状态特征矩阵数据;
51.在s101的基础上,本步骤旨在根据状态信息和历史状态信息进行特征提取处理,得到状态特征矩阵数据。也就是,从获取到的状态信息和历史存储的历史状态信息中进行特征提取,得到状态特征矩阵数据。
52.其中,该状态特征矩阵数据就是以矩阵的方式表示状态特征的数据。
53.进一步的,本步骤可以包括:
54.根据掼蛋游戏模型对状态信息和历史状态信息进行归类处理,得到状态特征矩阵数据。
55.可见,本可选方案中主要是对如何获取状态特征矩阵数据进行说明。本可选方案中根据掼蛋游戏模型对状态信息和历史状态信息进行归类处理,得到状态特征矩阵数据。
其中,掼蛋游戏模型就是掼蛋游戏规则下,需要关注的各项游戏数据的模型。
56.s103,采用bert决策模型对状态特征矩阵数据进行处理,得到出牌动作数据;其中,bert决策模型为根据掼蛋游戏数据训练集进行训练得到的模型;
57.在s102的基础上,本步骤旨在采用bert决策模型对状态特征矩阵数据进行处理,得到出牌动作数据;其中,bert决策模型为根据掼蛋游戏数据训练集进行训练得到的模型。
58.也就是说,通过bert决策模型进行决策,以便确定当前的出牌动作。其中,bert(bidirectional encoder representations from transformers,基于转换器的双向编码表征)是一个语言表示模型。它的主要模型结构是trasnformer的encoder堆叠而成,它其实是一个2阶段的框架,分别是pretraining,以及在各个具体任务上进行finetuning。
59.进一步的,其中,bert决策模型包括:卷积层、multihead attention block和全连接层。
60.进一步的,本步骤中,根据掼蛋游戏数据训练集进行训练得到bert决策模型的步骤,包括:
61.步骤1,对获取到的掼蛋历史数据进行特征提取处理,得到掼蛋游戏数据训练集;
62.步骤2,根据掼蛋游戏数据训练集进行神经网络训练,得到bert决策模型。
63.可见,本可选方案中主要是对如何训练出决策模型进行说明。本可选方案中对获取到的掼蛋历史数据进行特征提取处理,得到掼蛋游戏数据训练集;然后,根据掼蛋游戏数据训练集进行神经网络训练,得到bert决策模型。
64.进一步的,本实施例中该步骤可以包括:
65.步骤1,根据所述bert决策模型和所述状态特征矩阵数据对所有出牌动作进行赢面概率预测,得到每个出牌动作对应的概率;
66.步骤2,将概率最大的出牌动作作为所述出牌动作数据。
67.s104,发送出牌动作数据。
68.在s103的基础上,本步骤旨在向掼蛋游戏服务器发送该出牌动作数据,以便实现出牌动作。
69.进一步的,可以通过http(hypertext transfer protocol,超文本传输协议)接口发送出牌动作数据。
70.此外,本实施例还可以包括:
71.当接收到状态信息时,将状态信息保存,并作为历史状态信息。
72.综上,本实施例通过训练好的bert决策模型对接收到的状态信息和历史状态信息进行处理,得到出牌动作数据,而不是采用专家规则进行决策,提高了对掼蛋数据进行处理的效果,提高了拟人化程度。
73.以下通过一个具体的实施例,对本技术提供的一种掼蛋数据处理方法做进一步说明。
74.本实施例中,对接的掼蛋游戏服务器中的游戏数据的处理规则如下:
75.两人一组,牌先跑完的为胜者。掼蛋有两副牌,总共108张。每个选手拿到27张牌。每一局都有级牌,级牌从第一局的2开始,到最后一局的a。每一局中红桃级牌是癞子,可以在所有牌型中代替除王之外的其他任何类型的牌。掼蛋牌型包括:单牌、对子、顺子、连对、三张牌、三带二、钢板、炸弹、同花顺、四王。掼蛋的牌型的大小关系等可见下表。
76.表1掼蛋牌型表
77.[0078][0079]
游戏第一局随机指定一人先发牌,按逆时针顺序发牌,之后每局由上局先出完牌的玩家先发牌。第一局系统随机指定玩家先出牌。从第二局开始,一般情况下由进贡的末游先出牌,若抗贡则由头游先出;双下情况下,由进贡牌大的一家先出牌,若一样大则由头游的上家先出。逆时针依次出牌,只能出比上一手玩家大的牌型,也可以选择不出。除炸弹、同花顺和四王外,只有相同牌型才能比较大小。当一家出完牌时,其他家都不管牌,则下一轮由对家出牌。
[0080]
掼蛋最先跑完的选手成为头游,依次为二游、三游和四游。有一方的两名玩家都出完牌以后本局结束。如果某一方两个选手为头游和二游,则为双扣。如果某方两个选手为头游和三游则称单扣。如果某方两个选手为头游和四游则称平扣。在这个游戏中选手要争取本方的两个选手双扣对方的两个选手。
[0081]
进一步的,掼蛋游戏可以简单抽象为马尔可夫的决策过程。每一步玩家根据当前自己的牌面信息和其他玩家的已出牌信息做出打哪一副牌或者pass的决策。
[0082]
掼蛋游戏动作类型包含362个动作类型——按照牌型和牌面值大小。
[0083]
单牌:2,3,4,5,6,7,8,9,j,q,k,a,小王,大王共计14个动作。
[0084]
对子:2-2,3-3,4-4,5-5,6-6,7-7,8-8,9-9,j-j,q-q,k-k,a-a,小王-小王,大王-大王共计14个动作。
[0085]
三张:2-2-2,3-3-3,4-4-4,5-5-5,6-6-6,7-7-7,8-8-8,9-9-9,j-j-j,q-q-q,k-k-k,a-a-a共计12个动作。
[0086]
顺子:a-2-3-4-5,2-3-4-5-6,3-4-5-6-7,4-5-6-7-8,5-6-7-8-9,6-7-8-9-10,7-8-9-10-j,8-9-10-j-q,9-10-j-q-k,10-j-q-k-a共计10个动作。
[0087]
同花顺:a-2-3-4-5,2-3-4-5-6,3-4-5-6-7,4-5-6-7-8,5-6-7-8-9,6-7-8-9-10,7-8-9-10-j,8-9-10-j-q,9-10-j-q-k,10-j-q-k-a共计10个动作。
[0088]
连对:a-a-2-2-3-3,2-2-3-3-4-4,3-3-4-4-5-5,4-4-5-5-6-6,5-5-6-6-7-7,6-6-7-7-8-8,7-7-8-8-9-9,8-8-9-9-10-10,9-9-10-10-j-j,10-10-j-j-q-q,j-j-q-q-k-k,q-q-k-k-a-a,共计12个动作。
[0089]
钢板:2-2-2-3-3-3,3-3-3-4-4-4,4-4-4-5-5-5,5-5-5-6-6-6,6-6-6-7-7-7,7-7-7-8-8-8,8-8-8-9-9-9,9-9-9-10-10-10,10-10-10-j-j-j,j-j-j-q-q-q,q-q-q-k-k-k,k-k-k-a-a-a共计12个动作。
[0090]
炸弹:炸弹分为4炸、5炸、6炸、7炸、8炸、9炸和10炸。每种又分为2、3、4、5、6、7、8、9、10、j、q、k、a,12种炸弹。共计70个动作。
[0091]
三带二:三可以是2、3、4、5、6、7、8、9、10、j、q、k、a,12中的任意一种,二可以是2,3,4,5,6,7,8,9,j,q,k,a,小王,大王中的任意一种。比如2-2-2-k-k。合计182种动作。
[0092]
四王:小王-小王-大王-大王,1种动作。
[0093]
pass:1种动作。
[0094]
掼蛋每一步决策是从上面362个动作中选择符合游戏规则且赢面最大的动作类型。这个决策可以端到端,也就是直接根据当前局面从362个动作做出选择。也可以将整个决策过程进行拆分。发牌时:首先决策出牌类型:单牌、对子、三张、连对、钢板、顺子、三带二、同花顺、炸弹、王炸,然后从应牌型中选择要出的动作。比如选定要出三张,然后从三张的12个的动作中选出具体出那个动作,比如3-3-3。跟牌时:决策是否跟牌,然后决策跟的牌型,最后决策具体出那个动作。比如上家出牌4-4-4-4,决策出牌,判断出牌类型为同花顺,具体动作为1-2-3-4-5。
[0095]
在掼蛋游戏中,玩家会根据当前的牌局信息和游戏规则来决定当前该出哪一副牌。在机器学习建模时,当前的牌局信息要以机器可理解的数据形式表达。
[0096]
对掼蛋游戏,可以设计如下特征:
[0097]
特征为54x21的二维数组。在54个元素的维度方向,每个位置分别代表不同花色的扑克牌的数量。在21个元素的维度方向,每个元素代表不同类型的特征。第一个特征是用户当前手中牌的数量;第二个特征是用户当前手中癞子牌的数量;第三到十四个特征依次为前三轮每个玩家按照出牌顺序出的牌的数量;第十五到十八个特征依次为当前玩家的上家、对家、下家和自己所有打出去的牌的数量;第十九个特征是所有四个玩家已经打出的牌
的数量;第二十个特征是不包括当前玩家的其他三个玩家剩余的手牌数量,这个特征可以用总牌数减去所有玩家已出牌,再减去当前玩家剩余牌得到;第二十一个特征为级牌位置。
[0098]
进一步的,cnn(convolutional neural networks,卷积神经网络)架构的深度学习模型通过提取数据局部特征和不断抽象特征来实现对当前游戏局面信息捕获和当前局面该采取的动作的推导。在类似围棋、象棋等具有局部局面天然相关性的游戏中cnn架构有效(alphago采用了resnet残差网络的cnn架构)。扑克游戏牌型不仅依赖于局部牌面的组合,还有长距离依赖关系(比如3-3-3和a-1-2-3-4)。cnn架构的模型天然地无法完整地提取扑克游戏当前局面信息。google2018年提出bert模型,bert模型是对transformmer的encoder架构的改写。其核心为multihead attention block。该block将multihead attention模块和feed forward模块用resnet的参加结构串联起来。multihead attention是一种全连接机制attention机制,能够有效的关联任务中每个时间步上的特征。在掼蛋游戏中,multihead attention block可以有效的关联不同牌值位置上的当前牌、以出牌、剩余牌等信息,从全局的角度捕获游戏当前的局面信息,从而更加准确的推导出当前该采取什么动作。
[0099]
本实施例的深度学习架构融合1x1卷积核的卷积层、multihead attention block和全连接层。模型架构中输入game state是4.3中构造的54x21的特征矩阵;conv1d是1x1的卷积层,输入特征为54x21矩阵,输出特征为54x64的特征;红色虚线框为3个连续的block,每个block输入特征和输出特征的维度都是54x64,每个block包括3个模块:multihead attention模块是多头的注意力模块、layer norm层归一化模块、feed forward前馈的全连接网络;faltten模块将54x64的二维矩阵转化为3456个元素的一维的向量;batch norm对输入的一批数据归一化处理;dropout层随机屏蔽掉一些特征,提升模型的泛化能力;dense层为全连接的神经网络层,输入为3456的一维数组,输出为掼蛋游戏的动作行为数量362;output层为输出层,得到该出的行为动作。
[0100]
游戏服务端在开局时,将当前机器人玩家的初始牌发到算法服务端,算法服务端将机器人的id号、机器人的房间号以及座位号作为key,机器人当前的游戏状态54x21的矩阵作为value,保存到redis数据库中。
[0101]
在游戏过程中,当其他玩家出牌时,游戏服务端会将出牌玩家的信息和所出牌发送给算法服务端,数据处理服务器会根据玩家的信息对机器人的游戏状态进行更新,并保存会redis中。当机器人出牌时,游戏服务端会将当前出牌机器人的信息和出牌请求发送给算法服务端。算法服务端会根据机器人玩家信息从redis提出机器人玩家当前的游戏状态,然后调用ai模型,计算出机器人玩家当前该出哪几张牌,并通过http接口返回给游戏服务端。
[0102]
可见,本实施例通过训练好的bert决策模型对接收到的状态信息和历史状态信息进行处理,得到出牌动作数据,而不是采用专家规则进行决策,提高了对掼蛋数据进行处理的效果,提高了拟人化程度。
[0103]
下面对本技术实施例提供的掼蛋数据处理装置进行介绍,下文描述的掼蛋数据处理装置与上文描述的掼蛋数据处理方法可相互对应参照。
[0104]
请参考图2,图2为本技术实施例所提供的一种掼蛋数据处理装置的结构示意图。
[0105]
本实施例中,该装置可以包括:
[0106]
信息接收模块100,用于从掼蛋游戏服务器接收状态信息;
[0107]
信息处理模块200,用于根据状态信息和历史状态信息进行特征提取处理,得到状态特征矩阵数据;
[0108]
模型决策模块300,用于采用bert决策模型对状态特征矩阵数据进行处理,得到出牌动作数据;其中,bert决策模型为根据掼蛋游戏数据训练集进行训练得到的模型;
[0109]
出牌数据发送模块400,用于发送出牌动作数据。
[0110]
可选的,该信息处理模块200,具体用于根据掼蛋游戏模型对状态信息和历史状态信息进行归类处理,得到状态特征矩阵数据。
[0111]
可选的,还可以包括:
[0112]
信息保存模块,用于当接收到状态信息时,将状态信息保存,并作为历史状态信息。
[0113]
本技术实施例还提供一种服务器,包括:
[0114]
存储器,用于存储计算机程序;
[0115]
处理器,用于执行所述计算机程序时实现如上所述的掼蛋数据处理方法的步骤。
[0116]
本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的掼蛋数据处理方法的步骤。
[0117]
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0118]
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0119]
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
[0120]
以上对本技术所提供的一种掼蛋数据处理方法、掼蛋数据处理装置、服务器以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1