残局牌面筛选方法、装置、服务器及存储介质与流程

文档序号:18972550发布日期:2019-10-29 03:01阅读:312来源:国知局
残局牌面筛选方法、装置、服务器及存储介质与流程

本发明属于计算机技术领域,尤其涉及残局牌面筛选方法、装置、服务器及存储介质。



背景技术:

在竞技类棋牌游戏中,残局是指继承了开局和中局,从中间阶段开始的模式,残局模式下有两个参与方,每个参与方持有不同的牌组合的虚拟纸牌(例如,可以是少于17张的扑克牌)进行对战,先出完虚拟纸牌的一方获胜。

残局牌库中包括数百万级的残局牌面,其中必然包含牌面特征相同,解法也相似的牌面,大量相似的残局很容易使用户厌倦。目前现有技术中没有提供能够从残局牌库中筛选出有特点的残局的解决方案。



技术实现要素:

有鉴于此,本发明的目的在于提供残局牌面筛选方法、装置、服务器及存储介质,以解决相关技术中无法筛选出具有特点的残局牌面的技术问题,具体的技术方案如下:

第一方面,本发明提供了一种残局牌面筛选方法,包括:

获取每个待筛选残局的牌面向量;

基于聚类算法,对各个待筛选残局的牌面向量进行聚类得到聚类簇,同一个聚类簇中的待筛选残局的牌面特征相同,不同聚类簇中的待筛选残局的牌面特征不同;

获取每个待筛选残局中先出牌一方获胜的解法路径对应的解法特征,所述解法特征表征解法路径在至少两个预设维度的特点,所述至少两个预设维度包括解法路径中先出牌一方前预设数量次出牌牌面对应的牌面类型及拆牌类型;

基于得到的聚类簇以及各个待筛选残局的解法特征,得到目标残局牌面集合,所述目标残局牌面集合中残局牌面的牌面特征相同且解法特征不同,或者,牌面特征不同且解法特征相同。

在一种可能的实现方式中,所述基于聚类算法和所述牌面向量,对全部待筛选残局进行聚类得到聚类簇,包括:

从全部待筛选残局对应的牌面向量中,选取k个牌面向量作为初始的聚类中心;

依据其它牌面向量与选取的k个聚类中心之间的距离将其它待筛选残局进行聚类得到k个聚类簇;

调整k个聚类簇的聚类中心并进行迭代聚类直到聚类结果满足预设收敛条件得到最终的聚类簇。

在一种可能的实现方式中,所述获取每个待筛选残局中先出牌一方获胜的解法路径对应的解法特征,包括:

获取先出牌一方获胜的解法路径在所述至少两个预设维度对应的信息;

将所述至少两个预设维度对应的信息转换为相应的向量,得到所述解法特征。

在一种可能的实现方式中,所述基于得到的聚类簇以及各个待筛选残局的解法特征,得到目标残局牌面集合,包括:

比较同一个聚类簇中各个待筛选残局的解法特征,得到解法特征相同的残局牌面,并去除解法特征重复的残局牌面;

确定所述同一个聚类簇中剩余的残局牌面为牌面特征相同解法特征不相同的残局牌面集合。

在一种可能的实现方式中,所述基于得到的聚类簇以及各个待筛选残局的解法特征,得到目标残局牌面集合,包括:

比较不同聚类簇中的各个待筛选残局的解法特征,得到不同聚类簇中解法特征相同的残局牌面;

确定不同聚类簇中解法特征相同的残局牌面为牌面特征不同且解法特征相同的残局牌面集合。

在一种可能的实现方式中,比较各个待筛选残局的解法特征,包括:

比较至少两个待筛选残局的解法特征中与至少两个指定维度的特征对应的数值是否相同;

如果所述至少两个指定维度的特征对应的数值相同,则确定所述至少两个待筛选残局的解法特征相同;

如果所述至少两个指定维度的特征对应的数值不同,则确定所述至少两个待筛选残局的解法特征不相同。

在一种可能的实现方式中,所述获取每个待筛选残局的牌面向量,包括:

对于任意一个待筛选残局,将先出牌一方的牌面转换为相应的表示向量,得到所述待筛选残局的牌面向量;

或者,

对于任意一个待筛选残局,将两个参与方的牌面都转换为相应的表示向量,得到所述待筛选残局的牌面向量。

第二方面,本发明还提供了一种残局牌面筛选装置,包括:

第一获取模块,用于获取每个待筛选残局的牌面向量;

聚类模块,用于基于聚类算法,对各个待筛选残局的牌面向量进行聚类得到聚类簇,同一个聚类簇中的待筛选残局的牌面特征相同,不同聚类簇中的待筛选残局的牌面特征不同;

第二获取模块,用于获取每个待筛选残局中先出牌一方获胜的解法路径对应的解法特征,所述解法特征表征解法路径在至少两个预设维度的特点,所述至少两个预设维度包括解法路径中先出牌一方前预设数量次出牌牌面对应的牌面类型及拆牌类型;

筛选模块,用于基于得到的聚类簇以及各个待筛选残局的解法特征,得到目标残局牌面集合,所述目标残局牌面集合中残局牌面的牌面特征相同且解法特征不同,或者,牌面特征不同且解法特征相同。

第三方面,本发明还提供了一种服务器,包括:存储器和处理器;

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

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

获取每个待筛选残局的牌面向量;

基于聚类算法,对各个待筛选残局的牌面向量进行聚类得到聚类簇,同一个聚类簇中的待筛选残局的牌面特征相同,不同聚类簇中的待筛选残局的牌面特征不同;

获取每个待筛选残局中先出牌一方获胜的解法路径对应的解法特征,所述解法特征表征解法路径在至少两个预设维度的特点,所述至少两个预设维度包括解法路径中先出牌一方前预设数量次出牌牌面对应的牌面类型及拆牌类型;

基于得到的聚类簇以及各个待筛选残局的解法特征,得到目标残局牌面集合,所述目标残局牌面集合中残局牌面的牌面特征相同且解法特征不同,或者,牌面特征不同且解法特征相同。

第四方面,本发明还提供了一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上第一方面任一种可能的实现方式所述的残局牌面筛选方法。

本发明提供的残局牌面筛选方法,首先获取各个待筛选残局的牌面向量,即利用向量表示牌面;然后,基于聚类算法和牌面向量,将牌面特征相同的残局牌面聚类成一个聚类簇。以及,获取各个待筛选残局中先出牌一方获胜的解法特征。基于得到的聚类簇和每个残局牌面的解法特征筛选得到目标残局牌面集合,其中,目标残局牌面集合中残局牌面的牌面特征相同且解法特征不相同,或者,牌面特征不同且解法特征相同的特征。该方法能够自动从海量残局牌库中筛选除具有指定特点的残局牌面,而且,筛选速度快、准确率高。

附图说明

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

图1是本发明提供的残局牌面筛选系统的结构示意图;

图2是本发明提供的一种残局牌面筛选方法的流程图;

图3是本发明提供的另一种残局牌面筛选方法的流程图;

图4是本发明提供的一种残局牌面筛选装置的结构示意图;

图5是本发明提供的一种服务器的结构示意图。

具体实施方式

筛选牌面和解法符合要求的残局牌面的难点在于,如何定义筛选标准,以及,如何从海量的残局牌库中筛选出牌面和解法符合要求的残局牌面。对于牌面而言,相关技术通常是人为规定残局牌面中包含某几张虚拟纸牌作为筛选相似牌面的方法,但是这种方式无法找出牌型相似但牌面数字不同的牌面,当牌面有轻微变化时就无法识别出,而且,此种方式在海量牌库中的过滤过程非常慢;对于解法而言,相关技术通常是关注解法路径中出牌的牌面向量(例如,单牌、炸弹等)作为筛选相似解法的方法,此种筛选相似解法的方式,会忽略解法中的其它方面的内容,例如出牌策略等。综上,相关技术中的残局牌面筛选方法的速度慢且准确率低。

为了解决上述技术问题,本发明提供的残局牌面筛选方法,获取残局牌库中残局牌面的牌面向量,然后,基于聚类算法和牌面向量,将牌面特征相同的残局牌面聚类成一个聚类簇。同时,获取各个残局牌面的解法特征,该解法特征是指先出牌一方获胜的解法特征(本文中先出牌一方特指人类玩家)。最后,基于聚类簇和残局牌面的解法特征筛选得出符合指定特征的残局牌面,例如,牌面特征相同且解法不相似,或者,牌面特征不同且解法相同的残局牌面。此种筛选方法自动从海量残局牌库中筛选除具有指定特征的残局牌面,而且,筛选速度快,而且,筛选结果准确率高。

为了便于理解,将本文中的相关名词进行解释:

残局:是指继承了开局和中局,从中间阶段开始的模式,残局模式下有两个参与方,一个参与方是人,另一个参与方是打牌机器人;每个参与方持有不同数量(例如,少于17张,即参与双方的牌面之和不是一套完整的纸牌)的牌组合的虚拟纸牌进行对战,对战过程中为明牌,即对战双方能够看到对方持有的牌面。对战时,指定角色的参与方(如人类玩家,)先出牌,先出完牌的一方获胜。

残局牌面:本申请中是指参与对战的各参与方分别持有的虚拟纸牌的牌面。

残局搜索树:是指由双方出牌步骤组成的一棵树,每个非叶子节点可以包括多个子节点,每个子节点都是对方针对自己当前牌型的应对牌型。叶子节点是一方获胜的位置,整棵树由打牌机器人和人类玩家的节点交替延伸组成,残局搜索树中包括所有可能的出牌步骤。

解法路径:本申请中特指指定角色(即人类玩家)的参与方破解残局过程中双方轮流出牌步骤,可以通过残局搜索树获得能够使人类玩家获胜的出牌步骤即得到解法路径。通过分析残局搜索树中指定角色获胜的解法路径可知,人类玩家在最开始几轮的出牌为特定牌时才能获胜。

请参见图1,示出了本发明提供的残局牌面筛选系统的结构示意图,该系统包括残局牌库101、服务器102、终端设备103。

残局牌库101中存储有大量的残局牌面,残局牌面可以由计算机设备生成并存储到残局牌库101中。

服务器102以残局牌库101中的残局牌面为对象,从中筛选出具有指定特征的残局牌面,并将筛选出的残局牌面提供给终端设备103以供用户选择,以及,基于用户选择的残局牌面提供相应的服务。

其中,该服务器102可以是独立的服务器,或者是若干台服务器构成的服务器集群。

终端设备103可以安装支持残局游戏的应用程序,相应的,服务器102是提供残局游戏服务的服务器。

终端设备103可以是智能手机、平板电脑等移动终端,或者,还可以是电脑等,本申请对此不做限定。

终端设备103与服务器102之间通过通信网络进行通信,该通信网络可以是有线网络或无线网络。

下面将结合图2所示的残局牌面筛选方法流程图,介绍残局牌面筛选过程:

s110,获取每个待筛选残局的牌面向量。

残局牌库中的每一组残局都包含两个残局牌面,分别表示残局对战中的两个参与方所持有的牌组合。待筛选残局可以是残局牌库中的任意一组残局牌面。

牌面向量能够唯一表示一个牌面,在本发明的一个实施例中,可以通过以下方式获得残局牌面对应的向量表示:

一套扑克牌中,只关注牌面的大小不关注牌面的花色,得到15张不同大小的牌,由小到大依次为3、4、5、6、7、8、9、10、j、q、k、a、2、小王、大王。因此,包含若干张牌的牌面都可以使用一个15维的向量表示。向量的第一位表示牌面中包含“3”的牌数量、第二位表示牌面中包含“4”的牌的数量、第三位表示牌面中包含“5”的牌的数量,依次类推第十五位表示牌面中包含“大王”的牌的数量。

对于若干张牌组成的一个牌面,统计不同牌的数量,此处只关注牌面的大小,不关注牌面的花色,并按照由小到大的顺序排列,得到一个长度为15的牌面向量。

需要说明的是,为了便于牌面的表达,10、小王和大王这三种牌采用特殊字母表示,其中,10表示为t,小王表示为r,大王表示为r,其余牌使用其自身的符号表示。

例如,一个残局牌面是“3456789ttjjqkkkk2r”分别统计不同牌的数量如表1所示:

表1

因此,该残局牌面“3456789ttjjqkkkk2r”对应的向量是[1,1,1,1,1,1,1,2,2,1,4,0,1,1,0]。

s120,基于聚类算法,对全部待筛选残局的牌面向量进行聚类得到聚类簇。

其中,同一个聚类簇中的待筛选残局的牌面特征相同(即牌面相似),不同聚类簇中的残局牌面特征不同(即,牌面不相似)。

牌面特征表示残局牌面的牌面特点,可以利用牌面向量衡量表达牌面特征,但是,牌面向量并不等同于牌面特征,牌面向量能够唯一表示一个残局牌面;牌面特征是一类残局牌面所具有的相同或相似的特征。

当两个牌面向量之间的距离小于或等于预设距离阈值时,认为这两个残局牌面的牌面特征相同,并将这两个残局牌面聚到一个聚类簇中。

利用聚类算法对残局牌面进行聚类,将牌面相似的残局牌面聚成一个簇。

在实际应用中,可以基于不同角色所持有的牌面进行聚类,一个残局由两个角色的牌面组成,由于残局主要是人类玩家和打牌机器人对战,为了提高人类玩家的参与度,主要站在包括人类玩家的角度进行考虑。例如,可以基于人类玩家牌面进行聚类,或者,基于人类玩家和打牌机器人的整个残局牌面进行聚类。

如果基于人类玩家的角度,则使用人类玩家对应的牌面进行聚类,得到人类玩家的牌面相似的残局。

此种应用场景下将各个待筛选残局的人类玩家对应的牌面转换成对应的15维向量,作为该待筛选残局的牌面向量。并基于该15维向量对各个待筛选残局进行聚类。

在本发明的另一种应用场景下,可以基于人类玩家和打牌机器人的牌面组成的整个残局进行聚类,得到残局牌面中两个牌面整体都相似的残局。

此种应用场景下,分别将同一待筛选残局对应的人类玩家的牌面及打牌机器人的牌面转换成对应的15维向量,然后,再将两个15维向量案件找人类玩家在前打牌机器人在后的顺序组合成一个30维的向量。然后,基于该30维向量对待筛选残局进行聚类。

基于牌面向量对残局进行聚类时,可以采用k-means算法进行聚类,其中,k-means算法的思想简单,对于给定的对象集,按照对象之间的距离大小,将对象集划分为k个簇,让簇内的点尽量紧密,让簇间距离尽量大。通过k-means算法,多次迭代可对多个残局进行聚类。

k-means算法中k值的选取至关重要,由于没有先验知识,所以可以通过多次试验并计算轮廓系数,选择一个合适的k值。轮廓系数silhouette_score用于衡量聚类效果,其中,轮廓系数的计算过程如下:

对于每个对象i,计算对象i与其同一个簇内的所有其他元素距离的平均值,记作a(i),用于量化簇内的凝聚度。

选取对象i之外的一个簇b,计算对象i与簇b中所有元素的平均距离,遍历所有其他簇,找到平均距离最小的簇记作b(i),即对象i的邻居类,用于量化簇之间分离度。

对于对象i,轮廓系数s(i)=(b(i)–a(i))/max{a(i),b(i)}。

然后,计算所有对象i的轮廓系数,求出平均值即为当前聚类的整体轮廓系数,度量聚类的紧密程度。

轮廓系数的取值范围为[-1,1],轮廓系数s的值越接近1说明对象与所属簇之间越密切,反之,s值越接近-1说明对象与所属簇之间越不紧密。

具体的,对于基于人类玩家的牌面进行聚类的场景,可以先指定k个对象(即,k个人类玩家对应的牌面向量)作为初始的聚类中心。然后,计算任意一个非聚类中心的对象与这k个聚类中心之间的距离(例如,欧式距离),如果该对象距离某个聚类中心的距离最小(或者,小于预设距离阈值),则将该对象划分到该聚类中心对应的聚类簇中。对每个待筛选残局牌面执行上述的过程,将其它对象划分到对应的聚类簇中得到k个聚类簇。此时,可以计算每个聚类簇的均值点,得到k个新的聚类中心,并重新计算其它对象与k个新的聚类中心之间的距离,重新划分其它对象所属的聚类簇,得到k个新的聚类簇。进行多次迭代直到满足收敛条件或者对象所属的聚类簇不再变化。

然后,计算聚类簇的轮廓系数,如果轮廓系数不满足要求,则重新选取若干个对象(可能是选取的点的数量发生变化,或者,选取的点发生变化)作为新的聚类中心,重新进行聚类,再次计算轮廓系数,根据轮廓系数选取最优的聚类结果。

例如,牌面“345778899”对应的向量是[1,1,1,0,2,2,2,0,0,0,0,0,0,0,0],牌面“334455789”对应的向量是[2,2,2,0,1,1,1,0,0,0,0,0,0,0,0],然后,计算这两个向量之间的距离,该距离小于预设距离阈值,因此,确定牌面“345778899”与牌面“334455789”是相似牌面。

s130,获取每个待筛选残局中先出牌一方获胜的解法路径对应的解法特征。

解法特征表征解法路径在至少两个预设维度的特点,至少两个预设维度包括解法路径中先出牌一方(即,人类玩家)前预设数量次出牌牌面对应的牌面类型及拆牌类型。通过分析残局的解法路径,发现人类玩家的前三轮出的牌为特定牌时才能保证人类玩家胜利。

在本发明的一个实施例中,解法特征包括解法路径中的如下维度的信息:

(1)打牌机器人持有的牌数量,人类玩家持有的牌数量;

(2)解法路径中人类玩家前三轮出牌的出牌类型;

在一种应用场景中,牌型包括如表2所示的类型:

表2

(3)解法路径中人类玩家前三轮出牌是否有拆牌情况,例如,拆对子、拆三张,拆炸弹,拆顺子,拆连对,拆三顺;

(4)故意不出牌的次数;

(5)是否反常规出牌,例如飞机带翅膀的牌型中,一般带走比较小的牌,但若带大牌如333444a2,则记为反常规。

(6)整个解法路径中是否拆了起始牌面的牌型,例如,拆三张、拆炸弹、拆顺子、拆连对、拆三顺等。

各个维度的特征可以利用一个多维向量表示,例如,可以将每个维度的特征按照一定的顺序进行排列,然后,统计每个解法路径中出现的各维度的特征,得到一个多维向量。例如,向量的第一位表示打牌机器人的持牌数量,向量的第二位表示人类玩家的持牌数量,第三位表示人类玩家前三轮出牌的类型,依次类推,向量中的不同位表示了解法路径在不同维度具有的特点。

需要说明的是,本申请并不限定s110-s130的执行顺序,可以同时执行这三个步骤,或者,先执行其中的任意一个步骤,然后执行其它步骤。

s140,基于得到的聚类簇以及各个待筛选残局的解法特征,得到目标残局牌面集合。

在本发明的一个实施例中,从各待筛选残局中筛选出的目标残局牌面集合中的残局牌面的牌面相似且解法不相似,或者,牌面不相似且解法相似。

需要说明的是,本文中的解法相似是指解法路径中包含的指定的解法特征相同,解法不相似是指解法路径中包含的指定的解法特征不相同。

例如,基于人类玩家的牌面而言,牌面相似且解法不相似的几个示例,其中,示例中人类玩家的牌面在前,打牌机器人的牌面在后。

示例1:23334669q-2458jktttr:33366,x,4,5,9,j,q,2,x,4ttt,x,r,x,8,2。

该示例中,人类玩家的牌面是“23334669q”打牌机器人的牌面是“2458jktttr”,解法路径是“33366,x,4,5,9,j,q,2,x,4ttt,x,r,x,8,2”,其中,x表示不出。该示例中,人类玩家第一轮出牌“33366”,然后,打牌机器人是x,表示不出;人类玩家第二轮出牌“4”,打牌机器人第二轮出牌“5”;人类玩家第三轮出牌“9”,打牌机器人第三轮出牌“j”;人类玩家第四轮出牌“q”,打牌机器人第四轮出牌“2”;人类玩家第五轮不出,打牌机器人第五轮出牌“4ttt”,其中,t代表10;人类玩家第六轮不出,打牌机器人第六轮出牌“r”代表小王;人类玩家第七轮不出,打牌机器人第七轮出牌“8”;人类玩家第八轮出牌“2”此时人类玩家持有的牌全部出完,人类玩家获胜。

示例2:2334669kq-2344556ajkqr:33,44,66,x,4,6,9,j,q,k,2,r,x,55,x,a,x,2,x,3,k;

示例3:233669kqr-2557899jkqttt:9,q,k,2,r,x,33,55,66,tt,x,789jt,x,9,2,x,q;

示例4:3334669aq-25899ajqrtt:3334,x,66,99,x,tt,x,5,9,j,q,a,x,2,x,r,x,8,a。

分析上述的四个示例可知,这四个示例中人类玩家持有的牌面相似,但是具体的解法不相似。

在本发明的另一个实施例中,还可以从各待筛选残局中筛选出,牌面相似解法也相似的残局牌面,或者,牌面不相似解法也不相似的残局牌面。具体可以实际需求选取具有哪种特点的残局牌面提供给用户。

本发明实施例提供的残局牌面筛选方法,首先获取各个待筛选残局的牌面向量,即利用向量表示牌面;然后,基于聚类算法和牌面向量,将牌面特征相同的残局牌面聚类成一个聚类簇。以及,获取各个待筛选残局中先出牌一方获胜的解法特征。基于得到的聚类簇和每个残局牌面的解法特征筛选得到目标残局牌面集合,其中,目标残局牌面集合中残局牌面的牌面相似但解法特征不相似,或者,牌面不相似但解法相似。该方法能够自动从海量残局牌库中筛选出具有指定特征的残局牌面,而且,筛选速度快、准确率高。

请参见图3,示出了本发明提供的另一种残局牌面筛选方法的流程图,本实施例中着重介绍基于解法特征和聚类簇筛选符合要求的残局牌面的过程。

如图3所示,该方法包括以下步骤:

s210,获取每个待筛选残局的牌面向量。

s220,基于聚类算法,对全部待筛选残局的牌面向量进行聚类得到聚类簇。

s230,获取每个待筛选残局中先出牌一方获胜的解法路径对应的解法特征。

其中,s210~s230与图2所示实施例中的s110~s130相同,此处不再赘述。

s240,比较同一个聚类簇中各待筛选残局的解法特征,得到解法特征不同的残局牌面。

如果要筛选牌面相似但解法不相似的牌面,则比较同一个聚类簇中解法特征。

比较同一个聚类簇中至少两个待筛选残局的解法特征中与至少两个指定维度的特征对应的数值是否相同,如果相同,则确定该至少两个待筛选残局的解法特征相似;如果不相同,则确定该至少两个待筛选残局的解法特征不相似。

在本发明的一个实施例中,由于残局的解法路径中,人类玩家的前三轮出牌的情况相对固定,所以,着重考虑解法特征中人类玩家前三轮出牌的特点,例如,人类玩家前三轮出牌的类型、前三轮是否有拆牌等特点。然后,将人类玩家的前三轮的出牌特点是否相同作为判断不同残局牌面的解法特征是否相同的判断依据。

在筛选同一个聚类簇中解法特征不同的残局牌面的过程中,可以直接判断解法特征对应的向量中指定位的数值是否相同,如果相同,则确定解法特征相同;如果不相同,则确定解法特征不相同。

如果确定同一聚类簇中的至少两个残局牌面的解法特征相同,则仅保留该解法特征对应的一个残局牌面。即对于解法特征相同的多个残局牌面仅保留其中的任意一个残局牌面,删除其它的残局牌面。对同一聚类簇中的残局牌面都比较完之后,该聚类簇中最终保留下来的残局牌面即牌面特征相同且解法不相似的残局牌面。

s250,确定同一个聚类簇中解法特征不相同的残局牌面为牌面特征相同且解法特征不相同的残局牌面集合。

同一个聚类簇中的残局牌面都是牌面特征相同的残局牌面,因此,从同一聚类簇中筛选出解法特征不相同的残局牌面,即得到牌面特征相同且解法不相似的残局牌面。

s260,比较不同聚类簇中各待筛选残局的解法特征,得到解法特征相同的残局牌面。

如果要筛选牌面不相似但解法相似的牌面,则比较不同的聚类簇中的解法特征。

其中,比较不同聚类簇中的待筛选残局的解法特征是否相同的过程与上述的比较同一聚类簇中的待筛选残局的解法特征是否相同的过程相同,此处不再赘述。

s270,确定不同聚类簇中解法特征相同的残局牌面为牌面特征不同且解法特征相同的残局牌面集合。

不同聚类簇中的牌面特征不同,因此,筛选不同的聚类簇包含的解法特征相同的残局牌面,即得到牌面特征不同且解法相同的残局牌面集合。

相应于上述的残局牌面筛选方法实施例,本发明还提供了残局牌面筛选装置实施例。

请参见图4,示出了本发明提供的一种残局牌面筛选装置的结构示意图,该装置应用于服务器中,如图4所示,该装置可以包括:第一获取模块110、聚类模块120、第二获取模块130和筛选模块140。

第一获取模块110,用于获取每个待筛选残局的牌面向量。

在一种可能的实现方式中,可以只针对人类玩家的残局牌面进行聚类,此种情况下,可以将人类玩家持有的牌面转换得到的向量作为待筛选残局的牌面向量。

在另一种可能的实现方式中,针对人类玩家和打牌机器人残局牌面的组合进行聚类,此种情况下,将两个参与方的牌面都转换为相应的表示向量,得到所述待筛选残局的牌面向量。

聚类模块120,用于基于聚类算法,对各个待筛选残局的牌面向量进行聚类得到聚类簇。

在一种可能的实现方式中,聚类模块120具体用于:

从全部待筛选残局对应的牌面向量中,选取k个牌面向量作为初始的聚类中心;

依据其它牌面向量与选取的k个聚类中心之间的距离将其它待筛选残局进行聚类得到k个聚类簇;

调整k个聚类簇的聚类中心并进行迭代聚类直到聚类结果满足预设收敛条件得到最终的聚类簇。

其中,同一个聚类簇中的待筛选残局的牌面特征相同,不同聚类簇中的待筛选残局的牌面特征不同。

第二获取模块130,用于获取每个待筛选残局中先出牌一方获胜的解法路径对应的解法特征。

所述解法特征表征解法路径在至少两个预设维度的特点,所述至少两个预设维度包括解法路径中先出牌一方前预设数量次出牌牌面对应的牌面类型及拆牌类型。

在一种可能的实现方式中,第二获取模块130具体用于:

获取先出牌一方获胜的解法路径在所述至少两个预设维度对应的信息;

将所述至少两个预设维度对应的信息转换为相应的向量,得到所述解法特征。

筛选模块140,用于基于得到的聚类簇以及各个待筛选残局的解法特征,得到目标残局牌面集合。

目标残局牌面集合中残局牌面具有牌面特征相同但解法特征不相同的特征,或者,牌面特征不同但解法特征相同的特征。

在一种可能的实现方式中,利用该筛选模块140筛选得到牌面特征相同且解法特征不同的残局牌面时,具体用于:

比较同一个聚类簇中各个待筛选残局的解法特征,得到解法特征相同的残局牌面,并去除解法特征重复的残局牌面;

确定所述同一个聚类簇中剩余的残局牌面为牌面特征相同解法特征不相同的残局牌面集合。

在另一种可能的实现方式中,利用该筛选模块140筛选得到牌面特征不同且解法相似的残局牌面时,具体用于:

比较不同聚类簇中的各个待筛选残局的解法特征,得到不同聚类簇中解法特征相同的残局牌面;

确定不同聚类簇中解法特征相同的残局牌面为牌面特征不同但解法特征相同的残局牌面集合。

在又一种可能的实现方式中,比较各个待筛选残局的解法特征的过程可以包括:

比较至少两个待筛选残局的解法特征中与至少两个指定维度的特征对应的数值是否相同;

如果至少两个指定维度的特征对应的数值相同,则确定至少两个待筛选残局的解法特征相同;

如果至少两个指定维度的特征对应的数值不同,则确定至少两个待筛选残局的解法特征不相同。

另一方面,本发明实施例还提供了一种服务器,如图5所示,该服务器可以存储器210和处理器220。

可选地,该服务器还可以包括通信接口203、输入单元204和显示器205和通信总线206。

处理器201、存储器202、通信接口203、输入单元204、显示器205、均通过通信总线206完成相互间的通信。

在本申请实施例中,该处理器201,可以为中央处理器(centralprocessingunit,cpu),特定应用集成电路,数字信号处理器、现成可编程门阵列或者其他可编程逻辑器件等。

存储器202中用于存放一个或者一个以上程序,程序可以包括程序代码,所述程序代码包括计算机操作指令,处理器201可以调用存储器202中存储的程序以实现图2或图3所示的方法实施例中的全部或部分步骤。

又一方面,本发明实施例还提供了一种存储介质,该存储介质中存储有计算机可执行指令,该计算机可执行指令被处理器加载并执行时,实现上述图2或图3所示的方法实施例中的全部或部分步骤。

对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

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

本申请各实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。

本申请各实施例中的装置及终端中的模块和子模块可以根据实际需要进行合并、划分和删减。

本申请所提供的几个实施例中,应该理解到,所揭露的终端,装置和方法,可以通过其它的方式实现。例如,以上所描述的终端实施例仅仅是示意性的,例如,模块或子模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个子模块或模块可以结合或者可以集成到另一个模块,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的模块或子模块可以是或者也可以不是物理上分开的,作为模块或子模块的部件可以是或者也可以不是物理模块或子模块,即可以位于一个地方,或者也可以分布到多个网络模块或子模块上。可以根据实际的需要选择其中的部分或者全部模块或子模块来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能模块或子模块可以集成在一个处理模块中,也可以是各个模块或子模块单独物理存在,也可以两个或两个以上模块或子模块集成在一个模块中。上述集成的模块或子模块既可以采用硬件的形式实现,也可以采用软件功能模块或子模块的形式实现。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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