一种操牌信息确定方法、装置、服务器及存储介质与流程

文档序号:19475480发布日期:2019-12-21 02:45阅读:319来源:国知局
一种操牌信息确定方法、装置、服务器及存储介质与流程

本发明涉及数据处理技术领域,更具体的说,是涉及一种操牌信息确定方法、装置、服务器及存储介质。



背景技术:

随着网络技术的发展,人们的娱乐生活越来越丰富多样,对于棋牌类游戏的玩家可以不再要求空间上的限制,位于不同地理位置处的人们可以通过棋牌类应用程序进行相互切磋。

棋牌类游戏玩家在通过应用程序互相切磋的过程中,在某一玩家操牌之前,系统会按照棋牌类游戏的规则,向玩家提示合适的操牌信息,例如:玩家适合将哪张牌打出,或玩家是否抓取上一家的出牌,或玩家是否适合摸牌等,基于此,为了提高玩家的游戏体验,对提示操牌信息的准确性提出了更高的要求。



技术实现要素:

有鉴于此,本发明提供了一种操牌信息确定方法、装置、服务器及存储介质,以提高现有技术中提示操牌信息的准确性。

为实现上述目的,本发明提供如下技术方案:

一方面,本申请提供了一种操牌信息确定方法,所述方法包括:

获取棋牌对决过程中目标玩家的当前手牌信息;

获取棋牌对决过程中所有玩家的历史操牌信息;

将所述当前手牌信息以及所述历史操牌信息输入到预先训练的玩家棋牌预测模型中;

利用所述预先训练的玩家棋牌预测模型预测目标玩家对应的对决玩家的预测手牌信息;

利用所述当前手牌信息、历史操牌信息、预测手牌信息以及预先设置的棋牌规则,确定目标玩家的操牌信息。

又一方面,本申请还提供了一种操牌信息确定装置,所述装置包括:

当前手牌信息获取单元,用于获取棋牌对决过程中目标玩家的当前手牌信息;

历史操牌信息获取单元,用于获取棋牌对决过程中所有玩家的历史操牌信息;

输入单元,用于将所述当前手牌信息以及所述历史操牌信息输入到预先训练的玩家棋牌预测模型中;

预测单元,用于利用所述预先训练的玩家棋牌预测模型预测目标玩家对应的对决玩家的预测手牌信息;

操牌信息确定单元,用于利用所述当前手牌信息、历史操牌信息、预测手牌信息以及预先设置的棋牌规则,确定目标玩家的操牌信息。

又一方面,本申请还提供了一种服务器,所述服务器包括:

处理器和存储器;

所述处理器,用于调用并执行所述存储器中存储的程序;

所述存储器用于存储所述程序,所述程序至少用于:

获取棋牌对决过程中目标玩家的当前手牌信息;

获取棋牌对决过程中所有玩家的历史操牌信息;

将所述当前手牌信息以及所述历史操牌信息输入到预先训练的玩家棋牌预测模型中;

利用所述预先训练的玩家棋牌预测模型预测目标玩家对应的对决玩家的预测手牌信息;

利用所述当前手牌信息、历史操牌信息、预测手牌信息以及预先设置的棋牌规则,确定目标玩家的操牌信息。

又一方面,本申请还提供了一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上所述的操牌信息确定方法。

经由上述的技术方案可知,与现有技术相比,本发明提供了一种操牌信息确定方法、装置、服务器及存储介质,通过获取棋牌对决过程中目标玩家的当前手牌信息;获取棋牌对决过程中所有玩家的历史操牌信息;将所述当前手牌信息以及所述历史操牌信息输入到预先训练的玩家棋牌预测模型中;利用所述预先训练的玩家棋牌预测模型预测目标玩家对应的对决玩家的预测手牌信息;利用所述当前手牌信息、历史操牌信息、预测手牌信息以及预先设置的棋牌规则,确定目标玩家的操牌信息。本申请利用预先训练的玩家棋牌预测模型预测目标玩家对应的对决玩家的预测手牌信息,并且在预测的过程中不仅参考了目标玩家的当前手牌信息,还参考了棋牌对决过程中所有玩家的历史操牌信息,从而考虑到了历史操牌信息对对决玩家的预测手牌信息的影响,能够提高预测对决玩家的预测手牌信息的准确性,进而能够提高向目标玩家提示的操牌信息的准确性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的服务器的一种组成结构示意图;

图2为本发明实施例提供的区块链系统中各节点的功能示意图;

图3为本发明实施例提供的区块结构(blockstructure)一个可选的示意图;

图4为本发明实施例提供的一种操牌信息确定方法流程图;

图5为本发明实施例提供的另一种操牌信息确定方法流程图;

图6为本发明实施例提供的玩家棋牌预测模型的训练过程的流程图;

图7为本发明实施例提供的一种操牌信息确定装置的结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请实施例提供的玩家棋牌预测模型训练方法涉及人工智能中的机器学习技术等技术,下面先对人工智能技术和机器学习技术进行说明。

人工智能(artificialintelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。

人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。

机器学习(machinelearning,ml)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。

本申请实施例提供的方案涉及人工智能的机器学习等技术,具体通过如下实施例进行说明:

目前在玩家通过棋牌类应用程序进行相互切磋的过程中,在某一玩家操牌之前,系统会按照棋牌类游戏的规则,向玩家提示合适的操牌信息,例如:玩家适合将哪张牌打出,或玩家是否抓取上一家的出牌,或玩家是否适合摸牌等,基于此,为了提高玩家的游戏体验,对提示操牌信息的准确性提出了更高的要求。

本申请实施例为了提示操牌信息的准确性,提出了如下一种操牌信息确定方法,通过获取棋牌对决过程中目标玩家的当前手牌信息;获取棋牌对决过程中所有玩家的历史操牌信息;将所述当前手牌信息以及所述历史打牌信息输入到预先训练的玩家棋牌预测模型中;利用所述预先训练的玩家棋牌预测模型预测目标玩家对应的对决玩家的预测手牌信息;利用所述当前手牌信息、历史操牌信息、预测手牌信息以及预先设置的棋牌规则,确定目标玩家的操牌信息。本申请利用预先训练的玩家棋牌预测模型预测目标玩家对应的对决玩家的预测手牌信息,并且在预测的过程中不仅参考了目标玩家的当前手牌信息,还参考了棋牌对决过程中所有玩家的历史操牌信息,从而考虑到了历史操牌信息对对决玩家的预测手牌信息的影响,能够提高预测对决玩家的预测手牌信息的准确性,进而能够提高向目标玩家提示的操牌信息的准确性。

为了便于理解,先对本申请实施例的操牌信息确定方法应用的在服务器进行介绍,如图1所示,其示出了本申请的方案所适用的服务器的一种组成结构示意图。在图1中,该服务器可以包括:处理器101和存储器102。

该服务器100还可以包括:通信接口103、输入单元104和显示器105和通信总线106。

处理器101、存储器102、通信接口103、输入单元104、显示器105、均通过通信总线106完成相互间的通信。

在本申请实施例中,该处理器101,可以为中央处理器(centralprocessingunit,cpu),现成可编程门阵列(fpga)或者其他可编程逻辑器件等。

该处理器可以调用存储器102中存储的程序,具体的,可以处理器可以执行以下方法实施例中终端侧所执行的操作。

存储器102中用于存放一个或者一个以上程序,程序可以包括程序代码,所述程序代码包括计算机操作指令,在本申请实施例中,该存储器中至少存储有用于实现以下功能的程序:

获取棋牌对决过程中目标玩家的当前手牌信息;

获取棋牌对决过程中所有玩家的历史操牌信息;

将所述当前手牌信息以及所述历史打牌信息输入到预先训练的玩家棋牌预测模型中;

利用所述预先训练的玩家棋牌预测模型预测目标玩家对应的对决玩家的预测手牌信息;

利用所述当前手牌信息、历史操牌信息、预测手牌信息以及预先设置的棋牌规则,确定目标玩家的操牌信息。

本发明实施例玩家棋牌预测模型存储到服务器中,服务器为区块链中的一个节点。

以分布式系统100为区块链系统为例,参见图2,图2是本发明实施例提供的服务器应用于区块链系统的一个可选的结构示意图,由多个节点200(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端300形成,节点之间形成组成的点对点(p2p,peertopeer)网络,p2p协议是一个运行在传输控制协议(tcp,transmissioncontrolprotocol)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。

参见图2示出的区块链系统中各节点的功能,涉及的功能包括:

1)路由,节点具有的基本功能,用于支持节点之间的通信。

节点除具有路由功能外,还可以具有以下功能:

2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。

例如,应用实现的业务包括:

2.1)钱包,用于提供进行电子货币的交易的功能,包括发起交易(即,将当前交易的交易记录发送给区块链系统中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;当然,钱包还支持查询电子货币地址中剩余的电子货币;

2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。

2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。

3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。

参见图3,图3是本发明实施例提供的区块结构(blockstructure)一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。

如图4所示,其示出了本申请一种操牌信息确定方法一个实施例的流程示意图,本实施例主要以该方法应用于服务器来举例说明,参照图4,该操牌信息确定方法具体包括如下步骤:

s100、获取棋牌对决过程中目标玩家的当前手牌信息;

需要说明的是,目标玩家为当前需要提示操牌信息的玩家,目标玩家的当前手牌信息为目标玩家当前所拥有的摆在自己面前、能够看到的棋牌的相关信息,至少包括:目标玩家当前所拥有的摆在自己面前、能够看到的棋牌的种类以及数量。本申请中对于当前手牌的种类以及数量并不做具体限定,可以依据不同种类的棋牌对应的棋牌规则而定。

s110、获取棋牌对决过程中所有玩家的历史操牌信息;

需要说明的是,棋牌对决过程中所有玩家既包括目标玩家,又包括目标玩家对应的对决玩家。

本申请实施例中的棋牌对决过程指的是从棋牌开局到当前时间点的历史棋牌对决过程。

所有玩家的历史操牌信息指的是棋牌对决过程中的历史时间段内,所有玩家所操作的棋牌的相关信息,既包含操作对象又包含操作方式。

所有玩家的历史操牌信息既包括所有玩家的历史出牌信息又包括所有玩家的历史抓牌信息等,本申请并不做具体限定,具体可以指的是:所有玩家的历史出牌的种类、数量,以及所有玩家的历史抓牌的种类、数量等。

s120、将所述当前手牌信息以及所述历史操牌信息输入到预先训练的玩家棋牌预测模型中;

本申请实施例中将当前手牌信息以及历史操牌信息作为玩家棋牌预测模型的输入量,输入到预先训练的玩家棋牌预测模型中。

s130、利用所述预先训练的玩家棋牌预测模型预测目标玩家对应的对决玩家的预测手牌信息;

本申请实施例主要利用预先训练的玩家棋牌预测模型预测对决玩家的手牌信息,其中,对决玩家指的是在棋牌类游戏中的某一局游戏中与目标玩家处于对决状态的玩家,本申请实施例对对决玩家的数量并不做具体限定,需要根据棋牌类游戏的游戏规则而定。

预测手牌信息为利用预先训练的玩家棋牌预测模型预测的目标玩家对应的对决玩家当前所拥有的摆在对决玩家面前、对决玩家能够看到的棋牌的种类以及数量。本申请中对于预测手牌的种类以及数量并不做具体限定,可以依据不同种类的棋牌对应的棋牌规则而定。

需要说明的是,本发明实施例在利用所述预先训练的玩家棋牌预测模型预测目标玩家对应的一个对决玩家的预测手牌信息的过程中,还可以对与该对决玩家相邻的一个玩家的手牌信息进行预测,从而利用与该对决玩家相邻的一个玩家的手牌信息预测结果,对该对决玩家的预测手牌信息进行调整,进而提高该对决玩家的预测手牌信息的准确性。

本申请实施例中的玩家棋牌预测模型采用ismcts算法预测目标玩家对应的对决玩家的预测手牌信息,还可以采用其他算法预测目标玩家对应的对决玩家的预测手牌信息,本申请实施例不做具体限定。服务端由python预测手牌信息,ismcts算法使用c++实现。

s140、利用所述当前手牌信息、历史操牌信息、预测手牌信息以及预先设置的棋牌规则,确定目标玩家的操牌信息。

本申请实施例可以利用当前目标玩家的手牌信息、棋牌对决过程中所有玩家的历史操牌信息,以及利用预先训练的玩家棋牌预测模型预测的目标玩家对应的对决玩家的预测手牌信息,结合预先设置的棋牌规则,确定目标玩家的操牌信息。

预先设置的棋牌规则为棋牌的游戏玩法,可以包含:棋牌玩家的个数、玩家所拥有的棋牌的个数、出牌规则、抓牌规则、赢牌规则、输牌规则等,本申请实施例不做具体限定。

目标玩家的操牌信息具体为目标玩家下一步操牌的操作方式以及操牌的操作对象,例如:具体为目标玩家下一步的出牌信息或目标玩家下一步的抓牌信息等,例如:目标玩家下一步出牌的种类以及个数、或目标玩家下一步抓牌的种类以及个数等,本申请实施例不做具体限定。

通过获取棋牌对决过程中目标玩家的当前手牌信息;获取棋牌对决过程中所有玩家的历史操牌信息;将所述当前手牌信息以及所述历史操牌信息输入到预先训练的玩家棋牌预测模型中;利用所述预先训练的玩家棋牌预测模型预测目标玩家对应的对决玩家的预测手牌信息;利用所述当前手牌信息、历史操牌信息、预测手牌信息以及预先设置的棋牌规则,确定目标玩家的操牌信息。本申请利用预先训练的玩家棋牌预测模型预测目标玩家对应的对决玩家的预测手牌信息,并且在预测的过程中不仅参考了目标玩家的当前手牌信息,还参考了棋牌对决过程中所有玩家的历史操牌信息,从而考虑到了历史操牌信息对对决玩家的预测手牌信息的影响,例如:某一玩家在历史棋牌对决过程中出牌的种类或数量,以及抓牌的种类或数量等,都会影响对决玩家的预测手牌信息分布,因此,本申请技术方案将历史操牌信息考虑进来,能够提高预测对决玩家的预测手牌信息的准确性,进而能够提高向目标玩家提示的操牌信息的准确性。

为了进一步提高向目标玩家提示的操牌信息的准确性,本申请中还提供了如下一种操牌信息确定方法一个实施例的流程示意图,参照图5,本实施例包括:

s200、获取棋牌对决过程中目标玩家的当前手牌信息;

需要说明的是,本申请实施例公开了一种获取棋牌对决过程中目标玩家的当前手牌信息的方式:

获取棋牌对决过程中目标玩家的当前手牌的种类信息以及个数信息;将所述当前手牌的种类信息以及个数信息映射到预先设置的棋牌标签矩阵中,得到当前手牌标签矩阵;建立所述当前手牌标签矩阵与目标玩家标识的对应关系,并将所述当前手牌标签矩阵与目标玩家标识的对应关系作为当前手牌信息。

本申请实施例中按照棋牌的类型设置了棋牌标签矩阵,棋牌标签矩阵中每一维度的信息代表了棋牌中每一个棋牌的信息,棋牌标签矩阵的维度与棋牌中棋牌的个数相同,本申请预先为棋牌中每个棋牌分别建立了唯一的棋牌标识信息,棋牌标签矩阵中每一维度分别与各个棋牌标识信息一一对应。例如一款棋牌类游戏麻将中麻将的个数为144个,本申请实施例则建立的棋牌标签矩阵的维度可以为144维,每一维度与每个麻将一一对应。

当然,为了编码方便,本申请实施例中还可以将棋牌标签矩阵的维度设置为多于棋牌的个数,其中会在棋牌标签矩阵中承载棋牌信息的维度之间设置承载内容为空的维度,例如在表示不同类型的棋牌的维度之间插入承载内容为空的维度,将表示不同类型的棋牌的维度采用内容为空的维度进行隔开,避免编码的过程中出现错误。

本申请实施例中按照当前手牌的种类信息以及个数信息,将当前手牌映射到预先设置的棋牌标签矩阵中,也就是说按照棋牌标签矩阵中每一维度与棋牌标识信息的对应关系,将当前手牌中所具有的棋牌映射到棋牌标签矩阵中。由于在一些棋牌类游戏中,同一种类型的棋牌可能有多个,例如麻将棋牌类游戏中,同一种类型的棋牌有四个,为了避免混淆,本申请中相同类型的多个棋牌分别具有不同的棋牌标识信息。

具体的,将当前手牌中所具有的棋牌对应的维度上的信息设置为1,而当前手牌中没有的棋牌对应维度上的信息设置为0,承载内容为空的维度上的信息也设置为0,这样得到当前手牌标签矩阵,当前手牌标签矩阵为内容包含0、1的矩阵,利用当前手牌标签矩阵就可以将目标玩家所拥有的当前手牌的分布情况表示出来。

需要说明的是,当前手牌标签矩阵与目标玩家标识为一一对应的关系。

s210、获取棋牌对决过程中所有玩家的历史操牌信息;

需要说明的是,本申请实施例公开了一种获取棋牌对决过程中所有玩家的历史操牌信息的过程包括:确定棋牌对决过程中所有玩家历史操作棋牌的种类信息以及个数信息;将每个玩家的历史操作棋牌的种类信息以及个数信息映射到预先设置的棋牌标签矩阵中,得到每个玩家对应的历史操牌标签矩阵;建立历史操牌标签矩阵与玩家标识的对应关系,并将所述历史操牌标签矩阵与玩家标识的对应关系作为历史操牌信息。

玩家在棋牌对决过程中,可以对棋牌采取不同的操作方式,本申请实施例可以按照玩家对棋牌采取的不同操作方式,划分为不同的历史操牌集合。每一种类型的历史操牌集合对应了玩家对棋牌采取的不同操作方式。

对于麻将来说,玩家可以对麻将采用的操作方式例如为吃牌或碰牌,吃牌为上一玩家舍出的牌能与当前玩家手牌中的两张牌形成一顺牌,这时当前玩家即可吃掉上一玩家舍出的牌,同时当前玩家这两张牌组成顺子后要亮于自己面前,然后再舍出一张牌。碰牌为别家打出的牌刚好与当前玩家手牌中的一对牌一样,当前玩家报碰后可形成一刻牌,当前玩家取出这两张牌与别家打出的这张牌组合成一刻牌放在自己面前,然后再舍出一张牌。本申请针对吃牌可以建立一个历史操牌集合,吃牌对应的历史操牌集合中的牌为与玩家吃牌相关的牌,本申请还可以针对碰牌可以建立一个历史操牌集合,碰牌对应的历史操牌集合中的牌为与玩家碰牌相关的牌。

每个玩家对应的每一种历史操牌集合中都包含了被操作棋牌的种类信息以及个数信息,因此,本申请可以针对每个玩家对应的每一种历史操牌集合都建立一个历史操牌标签矩阵,因此,每个玩家都对应至少一种类型的历史操牌标签矩阵。

本申请实施例中按照每一种历史操牌集合中包含的被操作棋牌的种类信息以及个数信息,将被操作棋牌映射到预先设置的棋牌标签矩阵中,也就是说按照棋牌标签矩阵中每一维度与棋牌标识信息的对应关系,将被操作棋牌中所具有的棋牌映射到棋牌标签矩阵中。由于在一些棋牌类游戏中,同一种类型的棋牌可能有多个,例如麻将棋牌类游戏中,同一种类型的棋牌有四个,为了避免混淆,本申请中相同类型的多个棋牌分别具有不同的棋牌标识信息。

具体的,将被操作棋牌中所具有的棋牌对应的维度上的信息设置为1,而被操作棋牌中没有的棋牌对应维度上的信息设置为0,承载内容为空的维度上的信息也设置为0,这样每一种历史操牌集合对应的历史操牌标签矩阵,为内容包含0、1的矩阵,利用历史操牌标签矩阵就可以将所有玩家历史操作棋牌的分布情况表示出来。

s220、将所述当前手牌信息以及所述历史操牌信息输入到预先训练的玩家棋牌预测模型中;

s230、利用所述预先训练的玩家棋牌预测模型预测所述对决玩家的手牌种类信息概率以及手牌个数信息概率,得到所述对决玩家各自对应的预测手牌种类信息概率以及预测手牌个数信息概率;

需要说明的是,本申请实施例中利用所述预先训练的玩家棋牌预测模型可以对对决玩家的手牌种类以及手牌的个数进行预测,例如对决玩家手中有哪几种类型的牌,每种类型的牌的个数为多少进行预测。

预测结果会得到预测手牌种类信息概率以及预测手牌个数信息概率。

s240、将所述对决玩家各自对应的预测手牌种类信息概率以及预测手牌个数信息概率映射到预先设置的棋牌标签矩阵中,得到所述对决玩家各自对应的预测手牌标签矩阵;

本申请实施例中可以依据对决玩家各自对应的预测手牌种类信息概率以及预测手牌个数信息概率得到对决玩家手中所拥有的每种手牌的概率分布,进而将对决玩家手中所拥有的每种手牌的概率分布映射到预先设置的棋牌标签矩阵中,得到所述对决玩家各自对应的预测手牌标签矩阵。

由于本申请实施例按照棋牌的类型设置了棋牌标签矩阵,棋牌标签矩阵中每一维度的信息代表了棋牌中每一个棋牌的信息,本申请可以按照预测手牌种类信息,将预测到的手牌对应到棋牌标签矩阵的相应维度上,并将相应维度上的信息设置为某一种手牌的概率值,概率值为0-1之间的数值,包括0与1。

本申请实施例中利用预测手牌标签矩阵,便可以表示对决玩家手中所拥有的每种手牌的概率分布情况。

s250、建立预测手牌标签矩阵与对决玩家标识的对应关系,并将所述预测手牌标签矩阵与对决玩家标识的对应关系作为预测手牌信息;

预测手牌信息中包含了每个对决玩家与预测手牌标签矩阵的对应关系。

s260、利用所述当前手牌信息、历史操牌信息、预测手牌信息以及预先设置的棋牌规则,确定目标玩家的操牌信息。

本申请实施例可以利用当前目标玩家的手牌信息、棋牌对决过程中所有玩家的历史操牌信息,以及利用预先训练的玩家棋牌预测模型预测的目标玩家对应的对决玩家的预测手牌信息,结合预先设置的棋牌规则,确定目标玩家的操牌信息。

具体的,本发明实施例中可以将目标玩家的当前手牌中的每个棋牌依次作为预出棋牌;利用所述当前手牌信息、历史操牌信息、预测手牌信息以及预先设置的棋牌规则,计算每个预出棋牌各自对应的赢牌概率;利用每个预出棋牌各自对应的赢牌概率,计算目标玩家的出牌信息。

在将目标玩家的当前手牌中的一个棋牌作为预出棋牌的情况下,则会利用所述当前手牌信息、历史操牌信息、预测手牌信息以及预先设置的棋牌规则,计算每个对决玩家各自的操牌方式,并在目标玩家与对决玩家对决预设局数之后,针对每个对决玩家的每种操牌方式,得到目标玩家的对决结果,并对每个对决玩家的每种操牌方式对应的目标玩家的对决结果进行分析,得到目标玩家的一个预出棋牌对应的赢牌概率。预设局数本申请并不做具体限定。

利用每个预出棋牌各自对应的赢牌概率,计算目标玩家的出牌信息,例如可以选取赢牌概率最高的棋牌作为目标玩家的最终出牌,还可以通过其他方式选取目标玩家的最终出牌,本申请实施例不做具体限定。

另一方面,本申请实施例中还可以将对决玩家的当前手牌中的每个棋牌依次作为预抓棋牌;利用所述当前手牌信息、历史操牌信息、预测手牌信息以及预先设置的棋牌规则,计算每个预抓棋牌各自对应的赢牌概率;利用每个预抓棋牌各自对应的赢牌概率,计算目标玩家的抓牌信息。

在将对决玩家的当前手牌中的一个棋牌作为预抓棋牌的情况下,则会利用所述当前手牌信息、历史操牌信息、预测手牌信息以及预先设置的棋牌规则,计算每个对决玩家各自的操牌方式,并在目标玩家与对决玩家对决预设局数之后,针对每个对决玩家的每种操牌方式,得到目标玩家的对决结果,并对每个对决玩家的每种操牌方式对应的目标玩家的对决结果进行分析,得到目标玩家的一个预抓棋牌对应的赢牌概率。预设局数本申请并不做具体限定。

利用每个预抓棋牌各自对应的赢牌概率,计算目标玩家的抓牌信息,例如可以选取赢牌概率最高的棋牌作为目标玩家的最终抓牌,还可以通过其他方式选取目标玩家的最终抓牌,本申请实施例不做具体限定。

由于本申请实施例中利用预测手牌标签矩阵,表示对决玩家手中所拥有的每种手牌的概率分布情况,并且,目标玩家的当前手牌信息用当前手牌标签矩阵的方式表示,所有玩家的历史操牌信息也用历史操牌标签矩阵的形式表示,从而在利用所述当前手牌信息、历史操牌信息、预测手牌信息以及预先设置的棋牌规则,确定目标玩家的操牌信息的过程中,可以通过对预测手牌标签矩阵、当前手牌标签矩阵以及历史操牌标签矩阵的分析来确定,将复杂的棋牌关系数值化,通过对数值的处理,能够得到精确的操牌信息提示结果,提高向目标玩家提示的操牌信息的准确性。

下面,本申请中还提供了如下一种玩家棋牌预测模型的训练过程的流程示意图,参照图6,本实施例包括:

s300、获取样本集中的训练样本,所述训练样本至少包括:样本玩家的样本手牌信息、棋牌对决过程中所有玩家的样本历史操牌信息以及样本玩家对应的对决玩家的参考手牌信息;

s310、将所述样本集中的训练样本输入到玩家棋牌预测模型中进行训练,得到样本玩家对应的对决玩家的预测手牌信息;

将所述样本集中的训练样本输入到玩家棋牌预测模型中,利用所述玩家棋牌预测模型对样本玩家对应的对决玩家的手牌信息进行预测,得到样本玩家对应的对决玩家的预测手牌信息。

s320、利用所述参考手牌信息以及所述预测手牌信息,得到所述玩家棋牌预测模型的目标函数;

具体的,训练过程中可朝着减小参考手牌信息与预测手牌信息之间的差异的方向,不断调整模型参数。这样,通过不断的输入样本集,得到预测手牌信息,根据参考手牌信息与预测手牌信息之间的差异调整模型参数,以训练玩家棋牌预测模型。

s330、将所述目标函数最大化时的模型参数作为所述玩家棋牌预测模型的模型参数,返回步骤s310继续训练,直至满足训练停止条件时停止训练。

其中,训练停止条件是结束模型训练的条件,训练停止条件可以是达到预设的迭代次数,或者是调整模型参数后的玩家棋牌预测模型的性能指标达到预设指标等,本申请不做具体限定。具体地,对于每个训练样本对应的目标函数,取目标函数最大化时的模型参数作为机器翻译模型的模型参数,然后在该模型参数的基础上对下一个样本集进行预测,以对模型参数继续进行训练,直至满足训练停止条件时停止训练。

本申请实施例采用resnet的网络架构,采用的训练方式是multilabel的训练方式。在此不做具体限定。

可选的,本申请实施例中的训练停止条件可以为玩家棋牌预测模型的损失函数最小,将玩家棋牌预测模型的损失函数降低到最小的程度即为训练停止条件。本申请实施例中采用的损失函数可以为sigmoidcrossentropy,本身请实施例并不做具体限定。当训练曲线开始有过拟合现象的时候,表明玩家棋牌预测模型的损失函数降低到最小,停止训练。本申请实施例采取的训练框架为google的tensorflow训练框架。

通过利用本申请实施例公开的上述模型训练方法能够得到准确的玩家棋牌预测模型,训练得到的模型能够得到准确的对决玩家的预测手牌信息。

下面以一个具体的棋牌例子详细说明本申请实施例公开的操牌信息确定方法:

以麻将例子为例,麻将对决过程中目标玩家为a,对决玩家为b、c、d;假设目标玩家a的玩家标识player_id=0,那上个玩家b的玩家标识playe_id=3,上上个玩家c的玩家标识player_id=2,上上上个玩家d的玩家标识player_id=1。每个玩家的棋牌标签矩阵的维度为152维,其中麻将中(一万~九万)编码为(1~9),对应棋牌标签矩阵中第1维至第9维;(一条~九条)的编码为(11~19),对应棋牌标签矩阵中第11维至第19维;(一筒~九筒)的编码为(21~29),对应棋牌标签矩阵中第21维至第29维;(东南西北中发白)的编码为(31~37),对应棋牌标签矩阵中第31维至第37维;棋牌标签矩阵中第10维、20维、30维、38维,填充0。依次类推,得到152维矩阵,因而38*4=152,其中4代表每种牌有4张。前38维承载麻将中每种牌的第一张牌信息,第39-第76维承载麻将中每种牌的第二张牌信息,第77-第114维承载麻将中每种牌的第三张牌信息,第115-第152维承载麻将中每种牌的第四张牌信息,对于每种牌的四张牌的顺序本申请并不做具体限定。

首先获取棋牌对决过程中目标玩家a的当前手牌信息;假设目标玩家a的当前手牌为(1万,1万,九万,一条,九筒,九筒,东,白),对应的当前手牌标签矩阵为d。那么d[4*1]=1(第一张一万),d[4*1+1]=1(第二张一万),d[4*9]=1(九万),d[4*11]=1(一条),d[4*29]=1(第一张九筒),d[4*29+1]=1(第二张九筒),d[31*4]=1(东),d[37*4]=1(白),其他的位都是0。d[]表示当前手牌标签矩阵中相位维度上的数值,[]中的内容表示相应的维度。

将所述当前手牌标签矩阵与目标玩家标识player_id=0的对应关系作为当前手牌信息;

获取棋牌对决过程中所有玩家a、b、c、d各自的历史操牌信息;

将玩家a的当前手牌信息以及所有玩家a、b、c、d各自的历史操牌信息输入到预先训练的玩家棋牌预测模型中;

本申请除了将玩家a的当前手牌信息以及所有玩家a、b、c、d各自的历史操牌信息输入到预先训练的玩家棋牌预测模型中之外,还将上一个操牌动作玩家到当前玩家的距离、上一个操牌动作玩家的动作类别、上一个操牌动作玩家的牌、当前目标玩家是否听牌、当前目标玩家所听的牌、牌桌上暴露出来的所有的牌、从当前步往前30步的牌桌暴露出来的牌等信息也输入到预先训练的玩家棋牌预测模型中。

利用所述预先训练的玩家棋牌预测模型预测目标玩家a对应的对决玩家b、c、d的预测手牌信息,本方案采用的损失函数是sigmoid_cross_entropy,也就是使用multilabel来进行训练;

为了尽可能完整的表达计算番型所需的棋牌信息,本方案使用若干平面,综合表达出手牌信息和非手牌信息。将非手牌信息采用不同的平面集合表示,这里给出两种表达方式:平面组合表示(plane-combinationrepresentation)和平面差分表示(plane-differencerepresentation)。

平面组合表示法:

平面组合表示使用四个平面,1个平面表示某个玩家的手牌信息和4个平面表示非手牌信息中的吃,碰,明杠和暗杠。判断番型时,我们需要将四个平面做叠加式的组合操作,玩家牌面番型组合确定性更高。具体的,

平面0:表示某个玩家的手牌的种类以及张数信息。

平面1:表示吃牌的信息,注意吃过的牌已固定成组,因为吃的牌的张数可以唯一确定吃的种类和个数,此平面表示吃牌的种类以及张数信息。

平面2:表示碰牌信息,一个碰的3张牌,在计算番型被当做一个刻子。对每一个碰,对应的碰牌的张数为3。

平面3:表示明杠信息,类似碰牌平面,对每一个明杠(也包括加杠),对应的杠牌的张数为4。

平面4:表示暗杠信息,对每一个暗杠(也包括加杠),对应的杠牌的张数为4。

平面差分表示法:

平面差分表示法也使用四个平面。不同于平面组合表示法,平面差分表示中的每个平面是某些信息的整合,具体来说,手牌信息和非手牌信息(指所有人出过的牌信息)需要通过平面间的差异来表示。

平面0:表示手牌里所有牌的种类以及数量(手牌信息和非手牌信息)。

平面1:表示吃牌的信息,与平面组合表示法中的平面1相同。

平面2:表示非手牌信息中的碰(刻子)杠信息,碰牌张数为3,杠牌张数为4,是平面组合表示法中的平面2、3、4的组合。

平面3:表示杠牌(包括明杠和暗杠),每张杠牌张数为4。

平面4:表示暗杠,每张暗杠张数为4。

平面差分表示法比平面组合表示法更直观,更容易学习。

平面组合表示法必须完全组合多个(4个)平面的信息才能得到手牌信息和非手牌信息的综合信息,平面差分表示法由宏观到局部的差分表示方法。

依据上述提供的两种平面集合的表示方法,可以从上述两种平面集合表示的内容中提取出a、b、c、d各自对应的一个棋牌标签矩阵,a、b、c、d各自对应的棋牌标签矩阵分别为:d0(玩家a),d1(玩家b),d2(玩家c),d3(玩家d)。其中d0包含(所有人出过的牌信息标签矩阵+玩家a自己的手牌信息标签矩阵),d1包含(所有人出过的牌信息标签矩阵+玩家b自己的手牌标签矩阵+上家玩家a的手牌信息标签矩阵),d2包含(所有人出过的牌信息标签矩阵+玩家c自己的手牌信息标签矩阵+上家b手牌信息标签矩阵+上上家a手牌信息标签矩阵),d3包含(所有人出过的牌信息标签矩阵+玩家d自己的手牌信息标签矩阵+上家c手牌信息标签矩阵+上上b家手牌信息标签矩阵+上上上a家手牌信息标签矩阵);

棋牌标签矩阵d1(玩家b)中玩家b自己的手牌标签矩阵相应维度上的数据例如可以为:mask1[0:4]=1,mask1[10*4:10*4+4]=1,mask1[20*4:20*4+4]=1;mask1[]表示玩家b自己的手牌标签矩阵中相位维度上的数值,[]中的内容表示相应的维度。

棋牌标签矩阵d2(玩家c)中玩家c自己的手牌标签矩阵相应维度上的数据例如可以为:mask2[0:4]=1,mask2[10*4:10*4+4]=1,mask2[20*4:20*4+4]=1;mask2[]表示玩家c自己的手牌标签矩阵中相位维度上的数值,[]中的内容表示相应的维度。

棋牌标签矩阵d3(玩家d)中玩家d自己的手牌标签矩阵相应维度上的数据例如可以为:mask3[0:4]=1,mask3[10*4:10*4+4]=1,mask3[20*4:20*4+4]=1。mask3[]表示玩家d自己的手牌标签矩阵中相位维度上的数值,[]中的内容表示相应的维度。

最后利用上述a、b、c、d各自对应的棋牌标签矩阵d0(玩家a),d1(玩家b),d2(玩家c),d3(玩家d),以及预先设置的棋牌规则,确定目标玩家a的操牌信息。利用本发明中的上述方法能够明显提高预测对决玩家b、c、d的预测手牌信息的准确性,进而能够提高向目标玩家a提示的操牌信息的准确性。

对应本申请的一种操牌信息确定方法,本申请还提供了一种操牌信息确定装置。如图7所示,其示出了本申请一种操牌信息确定装置的一种组成结构示意图,该装置可以包括:

当前手牌信息获取单元100,用于获取棋牌对决过程中目标玩家的当前手牌信息;

历史操牌信息获取单元110,用于获取棋牌对决过程中所有玩家的历史操牌信息;

输入单元120,用于将所述当前手牌信息以及所述历史操牌信息输入到预先训练的玩家棋牌预测模型中;

预测单元130,用于利用所述预先训练的玩家棋牌预测模型预测目标玩家对应的对决玩家的预测手牌信息;

操牌信息确定单元140,用于利用所述当前手牌信息、历史操牌信息、预测手牌信息以及预先设置的棋牌规则,确定目标玩家的操牌信息。

当前手牌信息获取单元包括:

当前手牌获取单元,用于获取棋牌对决过程中目标玩家的当前手牌的种类信息以及个数信息;

第一映射单元,用于将所述当前手牌的种类信息以及个数信息映射到预先设置的棋牌标签矩阵中,得到当前手牌标签矩阵;

第一对应关系建立单元,用于建立所述当前手牌标签矩阵与目标玩家标识的对应关系,并将所述当前手牌标签矩阵与目标玩家标识的对应关系作为当前手牌信息。

历史操牌信息获取单元包括:

历史操作棋牌确定单元,用于确定棋牌对决过程中所有玩家历史操作棋牌的种类信息以及个数信息;

第二映射单元,用于将每个玩家的历史操作棋牌的种类信息以及个数信息映射到预先设置的棋牌标签矩阵中,得到每个玩家对应的历史操牌标签矩阵;

第二对应关系建立单元,用于建立历史操牌标签矩阵与玩家标识的对应关系,并将所述历史操牌标签矩阵与玩家标识的对应关系作为历史操牌信息。

预测单元包括:

对决玩家手牌概率预测单元,用于利用所述预先训练的玩家棋牌预测模型预测所述对决玩家的手牌种类信息概率以及手牌个数信息概率,得到所述对决玩家各自对应的预测手牌种类信息概率以及预测手牌个数信息概率;

第三映射单元,用于将所述对决玩家各自对应的预测手牌种类信息概率以及预测手牌个数信息概率映射到预先设置的棋牌标签矩阵中,得到所述对决玩家各自对应的预测手牌标签矩阵;

第三对应关系建立单元,用于建立预测手牌标签矩阵与对决玩家标识的对应关系,并将所述预测手牌标签矩阵与对决玩家标识的对应关系作为预测手牌信息。

操牌信息确定单元包括:

预出棋牌确定单元,用于将目标玩家的当前手牌中的每个棋牌依次作为预出棋牌;

赢牌概率计算单元,用于利用所述当前手牌信息、历史操牌信息、预测手牌信息以及预先设置的棋牌规则,计算每个预出棋牌各自对应的赢牌概率;

出牌信息计算单元,用于利用每个预出棋牌各自对应的赢牌概率,计算目标玩家的出牌信息。

还包括:玩家棋牌预测模型训练单元,所述玩家棋牌预测模型训练单元用于:

获取样本集中的训练样本,所述训练样本至少包括:样本玩家的样本手牌信息、棋牌对决过程中所有玩家的样本历史操牌信息以及样本玩家对应的对决玩家的参考手牌信息;

将所述样本集中的训练样本输入到玩家棋牌预测模型中进行训练,得到样本玩家对应的对决玩家的预测手牌信息;

利用所述参考手牌信息以及所述预测手牌信息,得到所述玩家棋牌预测模型的目标函数;

将所述目标函数最大化时的模型参数作为所述玩家棋牌预测模型的模型参数,返回所述将所述样本集中的训练样本输入到玩家棋牌预测模型中进行训练,得到样本玩家对应的对决玩家的预测手牌信息的步骤继续训练,直至满足训练停止条件时停止训练。

还包括:将玩家棋牌预测模型存储到服务器中,服务器为区块链中的一个节点。

另一方面,本申请还提供了一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上所述的操牌信息确定方法。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1