CN107837532B - 用户匹配方法、装置、服务器以及存储介质 - Google Patents

用户匹配方法、装置、服务器以及存储介质 Download PDF

Info

Publication number
CN107837532B
CN107837532B CN201711139143.0A CN201711139143A CN107837532B CN 107837532 B CN107837532 B CN 107837532B CN 201711139143 A CN201711139143 A CN 201711139143A CN 107837532 B CN107837532 B CN 107837532B
Authority
CN
China
Prior art keywords
team
target
queue
user
sorting
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.)
Active
Application number
CN201711139143.0A
Other languages
English (en)
Other versions
CN107837532A (zh
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.)
Tencent Technology Shanghai Co Ltd
Original Assignee
Tencent Technology Shanghai Co Ltd
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 Tencent Technology Shanghai Co Ltd filed Critical Tencent Technology Shanghai Co Ltd
Priority to CN201711139143.0A priority Critical patent/CN107837532B/zh
Publication of CN107837532A publication Critical patent/CN107837532A/zh
Application granted granted Critical
Publication of CN107837532B publication Critical patent/CN107837532B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • A63F13/795Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories for finding other players; for building a team; for providing a buddy list
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • A63F13/798Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories for assessing skills or for ranking players, e.g. for generating a hall of fame

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请提供了一种用户匹配方法、装置、服务器以及存储介质,在该方法中,获取待处理的多个元素,元素中记录有至少一个用户的用户标识及用户属性值;获取至少一个排序队列,排序队列包括按照用户属性值的预设顺序排序的至少一个元素,且,排序队列的元素中用户标识的数量与排序队列对应的标识数量相同;从该多个元素中,确定当前待处理的目标元素,并确定目标元素中用户标识的目标数量;依据目标元素中的用户属性值,从标识数量与该目标数量相加为设定数量的至少一个排序队列中,确定至少一个候选元素;基于目标元素以及候选元素中的用户标识,匹配出包含该设定数量个用户的队伍。该方案可以提高为用户匹配队伍的匹配效率。

Description

用户匹配方法、装置、服务器以及存储介质
技术领域
本申请涉及计算机应用技术领域,尤其涉及一种用户匹配方法、装置、服务器以及存储介质。
背景技术
在网络平台中,经常需要对网络平台中的用户进行匹配,以将满足一定规则的用户匹配为一个组。如,以需要多人战斗的网络游戏为例进行说明,在多人战斗的网络游戏中,服务器需要根据游戏玩家在游戏中属性,如游戏玩家的等级、功力值等属性,将属性满足特定规则的多个游戏玩家匹配到一个组,使得一个组的游戏玩家一起参与游戏战斗。
当游戏玩家希望以组的形式参与到游戏战斗时,可以通过终端向服务器发送战斗参与请求,服务器根据战斗参与请求确定出需要参与战斗的游戏玩家。而服务器在为游戏玩家匹配属于同一个组的其他游戏玩家时,需要综合预先设定的组内人数,并根据该游戏玩家的属性,依次查询当前请求参与游戏战斗的所有游戏玩家的属性,才可以最终匹配到与该游戏玩家的属性最相近的一个或多个游戏玩家。然而,由于同一时刻或者时间段内,请求参与战斗的游戏玩家的数量较多,因此,服务器每次将游戏玩家分配到一个组,都需要遍历所有游戏玩家的属性,必然会导致匹配效率较低。
发明内容
有鉴于此,本申请提供了一种用户匹配方法、装置、服务器以及存储介质,以提高为用户匹配队伍的匹配效率。
为了实现以上目的,一方面,本申请提供了一种用户匹配方法,包括:
获取待处理的多个元素,所述元素中记录有一次组队请求对应的至少一个用户的用户标识以及反映所述至少一个用户的属性特征的用户属性值;
获取基于所述多个元素中用户标识的数量以及用户属性值,构建出的至少一个具有数量类型的排序队列,所述排序队列包括按照所述用户属性值的预设顺序排序的至少一个元素,且,所述排序队列的元素中用户标识的数量与所述排序队列的数量类型所设定的标识数量相同;
从所述多个元素中,确定当前待处理的目标元素,并确定所述目标元素中用户标识的目标数量;
依据所述目标元素中的用户属性值,从标识数量与所述目标数量相加为设定数量的至少一个排序队列中,确定至少一个候选元素,所述设定数量为预先设定的队伍中包含的用户数量;
基于所述目标元素以及候选元素中的用户标识,匹配出包含所述设定数量个用户的队伍。
另一方面,本申请实施例还提供了一种用户匹配装置,包括:
元素获取单元,用于获取待处理的多个元素,所述元素中记录有一次组队请求对应的至少一个用户的用户标识以及反映所述至少一个用户的属性特征的用户属性值;
排序获取单元,用于获取基于所述多个元素中用户标识的数量以及用户属性值,构建出的至少一个具有数量类型的排序队列,所述排序队列包括按照所述用户属性值的预设顺序排序的至少一个元素,且,所述排序队列的元素中用户标识的数量与所述排序队列的数量类型所设定的标识数量相同;
目标确定单元,用于从所述多个元素中,确定当前待处理的目标元素,并确定所述目标元素中用户标识的目标数量;
元素匹配单元,用于依据所述目标元素中的用户属性值,从标识数量与所述目标数量相加为设定数量的至少一个排序队列中,确定至少一个候选元素,所述设定数量为预先设定的队伍中包含的用户数量;
队伍构建单元,用于基于所述目标元素以及候选元素中的用户标识,匹配出包含所述设定数量个用户的队伍。
又一方面,本申请还提供了一种服务器,包括:
处理器和存储器;
其中,所述处理器用于执行所述存储器中存储的程序;
所述存储器用于存储程序,所述程序至少用于:
获取待处理的多个元素,所述元素中记录有一次组队请求对应的至少一个用户的用户标识以及反映所述至少一个用户的属性特征的用户属性值;
获取基于所述多个元素中用户标识的数量以及用户属性值,构建出的至少一个具有数量类型的排序队列,所述排序队列包括按照所述用户属性值的预设顺序排序的至少一个元素,且,所述排序队列的元素中用户标识的数量与所述排序队列的数量类型所设定的标识数量相同;
从所述多个元素中,确定当前待处理的目标元素,并确定所述目标元素中用户标识的目标数量;
依据所述目标元素中的用户属性值,从标识数量与所述目标数量相加为设定数量的至少一个排序队列中,确定至少一个候选元素,所述设定数量为预先设定的队伍中包含的用户数量;
基于所述目标元素以及候选元素中的用户标识,匹配出包含所述设定数量个用户的队伍。
另一方面,本申请还提供了一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,用于执行以上所述的用户匹配方法。
由以上内容可知,在本申请实施例中,服务器获取到针对不同组队请求所生成的多个元素之后,还会获取该多个元素对应的至少一个排序队列,而每个排序队列中只包括用户标识的数量与该排序队列对应的标识数量相同的元素,这样,在确定出待匹配的目标元素之后,只需要从标识数量与该目标元素中用户标识的目标数量相加为设定数量的至少一个排序队列中,匹配候选元素,从而只需从部分排序队列所对应的元素中匹配候选元素,而无需遍历所有的元素,便可以匹配出能够与目标元素中至少一个用户组成队伍的其他用户所在的候选元素,并完成队伍匹配,减少了匹配工作量,提高了匹配效率。
同时,由于排序队列中是按照用户属性值的预设顺序对元素进行排序,这样,在依据目标元素中的用户属性值,从排序队列中匹配候选元素时,无需按照排序队列中各个元素的顺序依次遍历该排序队列中的所有元素,便可以通过折中搜索法等匹配算法快速匹配出候选元素,从而进一步提高了匹配候选元素的效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的用户匹配方法所适用的一种场景的组成结构示意图;
图2示出了本申请一种用户匹配方法一个实施例的流程示意图;
图3示出了本申请一种用户匹配方法又一个实施例的流程示意图;
图4a示出了本申请一种节点队列中节点的排布示意图;
图4b示出了本申请一种排序队列中节点的排布示意图;
图5示出了本申请一种用户匹配方法应用于游戏场景的一种具体实例的流程示意图;
图6示出了本申请一种用户匹配方法中将多个队伍匹配到不同的队伍组合的一种流程示意图;
图7示出了本申请一种用户匹配装置一个实施例的组成结构示意图;
图8示出了本申请一种用户匹配装置又一个实施例的组成结构示意图;
图9示出本申请一种服务器的一种组成结构示意图。
具体实施方式
为了便于理解,以游戏场景为例进行介绍,如图1,其示出了本申请一种用户匹配方法所适用的一种场景的示意图,该场景可以包括:游戏服务平台10和多台终端11。
其中,该游戏服务平台可以包括至少一台服务器101。当然,为了提高游戏数据的处理效率,游戏服务平台可以为由多台服务器101组成的服务器集群。
该终端11可以为游戏应用所在的客户端,在该种情况下,终端可以基于该游戏应用的客户端访问该游戏服务平台中的服务器,以使得游戏玩家(也可以称为用户)可以进行游戏操作。该终端也可以是浏览器所在的客户端,在该种情况下,游戏玩家可以通过浏览器登录游戏服务平台的服务器,以获取游戏数据,并进行相应的游戏操作。
在涉及到战斗比拼的游戏场景中,如,游戏中的战队比赛、跨服游戏战斗等游戏场景,都需要将多个游戏玩家匹配为一个组,在本申请实施例中,将多个游戏玩家匹配成的组称为队伍,该队伍也就是俗称的战队或者玩家组合,每个队伍包括至少两个游戏玩家。该队伍内的游戏玩家可以共同攻击游戏场景中的虚拟对象或者对其他队伍内的玩家进行攻击。
相应的,终端11,用于向游戏服务平台的服务器101发送组队请求,该组队请求携带有至少一个游戏玩家的玩家标识,且该组队请求用于请求将该至少一个游戏玩家匹配到一个包含N个游戏玩家的队伍中。其中,队伍所包含的游戏玩家的人数N为预先设定的,N为大于等于二的自然数。如,可以设定该游戏场景中,每个队伍为由5个游戏玩家组成的队伍。
其中,如果游戏玩家不存在与好友(该游戏玩家之外的其他游戏玩家)分配到同一个队伍的需求时,该游戏玩家通过终端向该服务器发送的组队请求中可以仅仅携带该游戏玩家的玩家标识;如果该游戏玩家希望与游戏中的好友分配到同一个队伍,则该游戏玩家通过该终端发起的组队请求中可以携带有该游戏玩家的玩家标识,以及该游戏玩家期望分配到同一个队伍的其他游戏玩家的玩家标识。
可以理解的是,受限于队伍中游戏玩家的个数限制,该组队请求中携带的游戏玩家的玩家标识的个数不能大于预先设定的队伍所需包含的人数N。如,N为6时,表示队伍为由6个游戏玩家组成的组合,在该种情况下,组队请求中最多可以携带6个游戏玩家的玩家标识。
服务器101,响应于终端发送的组队请求,依据该组队请求携带的该至少一个游戏玩家的玩家标识,确定该至少一个游戏玩家的游戏属性,并构成包含该至少一个游戏玩家的游戏属性的信息存储节点,将该信息存储节点加入到待组队的节点队列中;当确定当前满足组队条件时,依据节点队列中各个信息存储节点中所存储的至少一个游戏玩家的游戏属性,将多个不同游戏玩家分配到不同的队伍。
其中,游戏玩家的游戏属性用于表征游戏玩家的游戏水平,如,游戏玩家的游戏属性可以反映的游戏玩家的功力值、等级、每场游戏的游戏得分等等。其中,分配到同一个队伍的多个游戏玩家的游戏属性相匹配,例如,以游戏属性为功力值为例,同一个队伍内的不同游戏玩家的功力值的差值小于预设值。
可以理解的是,以上是以网络游戏为例来介绍用户匹配方法所适用的一种场景,但是可以理解的是,在其他网络平台中,也可能会涉及到将属性满足特定条件的用户匹配为一个组合(队伍)的情况,如,在购物平台中,将属性相近的用户匹配为一个组(或者说队伍),以使得组内的用户可以相互讨论购物经验;又如,在一些多媒体网络平台,将属性满足一定条件的用户匹配为一个队伍,以针对不同队伍内的用户推送不同的多媒体内容推荐等等,而本申请实施例的用户匹配方法适用于多种场景中的用户匹配。
结合以上共性,下面对本申请的一种用户匹配方法进行详细介绍。
如,参见图2,其示出了本申请一种用户匹配方法一个实施例流程示意图,该方法从服务器侧进行介绍,本实施例的方法可以包括:
S201,获取待处理的多个元素。
其中,元素中记录有一次组队请求对应的至少一个用户的用户标识以及反映该至少一个用户的属性特征的用户属性值。每个元素可以认为是一个数据单元,在该数据单元中存储了请求组合到一起的一个或多个用户的相关信息。
其中,该用户属性值可以综合反映该至少一个用户的属性特征,如,该用户属性值可以反映出该至少一个用户的属性特征的平均水平。例如,以游戏场景为例,每个游戏玩家均具有反映自身游戏水平的属性值,如果组队请求对应有至少一个游戏玩家的标识时,可以将该至少一个游戏玩家的属性值的平均值作为反映该至少一个游戏玩家的游戏水平特征的属性值。
该组队请求用于请求将该至少一个用户匹配到一个队伍中。其中,组队请求可以由终端发送给服务器,如,游戏场景中,一个游戏玩家将该游戏玩家以及期望与该游戏玩家匹配到一个队伍的其他一个或多个游戏玩家的信息发送给服务器。
当然,该组队请求也可以是由服务器生成的,如,服务器确定出哪些用户是必须分配到一个队伍的,则生成一个组队请求,以便后续将这些用户的信息存储到一个元素中。
可以理解的是,由于每个队伍中包含的用户数量为预先设定的数量,而组队请求对应的至少一个用户的人数不能超过队伍所包含的用户数量,如,每个队伍中可以包括用户数量为N,N为大于等于2的自然数,则该组队请求对应的至少一个用户的用户标识的个数应小于或者等于N。
在一种可能的实现方式中,该多个元素可以分别存储到至少一个具有数量类型的元素队列中,每个元素队列包括至少一个元素,元素队列的数量类型用于表征该元素队列所对应的标识数量,在元素队列中的元素中记录的标识数量与该元素队列的数量类型所设定的标识数量相同。如,元素队列A的数量类型为5,即标识数量为5个,如果元素中用户标识的数量为5个,则该元素会被存储到该元素队列A中。其中,不同元素队列的数量类型不同,使得不同元素队列中元素所包含的用户标识的个数不同。可见,在该种可能实现方式中,包含用户标识个数相同的元素被放入到同一个元素队列中,从而区分出包含不同用户标识数量的元素,有利于后续确定包含用户标识的数量较多的元素所在的元素队列,并优先处理标识数量较大的元素队列。
S202,获取基于该多个元素中用户标识的数量以及用户属性值,构建出的至少一个具有数量类型的排序队列。
其中,排序队列包括按照该用户属性值的预设顺序排序的至少一个元素,其中,该预设顺序可以为从大到小的顺序,或者是从小到大的顺序,具体可以根据需要设定。
排序队列的元素中用户标识的数量与该排序队列的数量类型所设定的标识数量相同。其中,排序队列的数量类型用于表征该排序队列所对应的标识数量,该标识数量表征该排序队列中每个元素中用户标识的数量。如,元素中用户标识的数量为5个,则该元素属于标识数量为5的排序队列。
在一种可能的实现方式中,可以在获取到该多个元素之后,再基于该多个元素的用户标识的数量,将该多个元素分别分配给多个元素队列,并依据该多个元素中的用户属性值,对元素队列中的元素进行排序。
在又一种可能的实现方式中,也可以是每次构建出一个元素之后,便根据该元素的用户标识的数量,确定该元素所需加入的排序队列,并根据该元素中的用户属性值,将该元素插入到该排序队列中。在该种情况下,该步骤S202可以是直接获取服务器生成的至少一个排序队列。
S203,从该多个元素中,确定当前待处理的目标元素,并确定该目标元素中用户标识的目标数量。
为了便于区分,将当前待处理(即,待匹配)的元素称为目标元素。
其中,从该多个元素中确定待处理的目标元素的方式可以有多种,如,可以从该多个元素中,随机选取一个未被处理的元素作为当前待处理的目标元素。可以理解的是,为了使得组队请求时间靠前的用户所在的元素被优先处理,可以将该多个元素中未被处理的,且生成时间最靠前的元素作为目标元素。
其中,为了便于区分,将目标元素中包含的用户标识的数量称为目标数量,如,目标元素中包括5个用户的用户标识,则该目标数量为5。
特别的,在多个元素以队列的形式存储的情况下,确定目标元素可以是:从该至少一个元素队列中,确定出当前未被处理且标识数量最大的目标元素队列;然后,再从该目标元素队列中,确定当前待处理的目标元素。如,当前为被处理的元素队列为标识数量为3的元素队列Q1,标识数量为2的元素队列Q2以及标识数量为1的元素队列Q3,则可以将元素队列Q1作为目标元素队列,并从元素队列Q1中确定目标元素。
由于目标元素队列是当前时刻标识数量最大的元素队列,相对于其他元素队列的元素,该目标元素队列中每个元素中包含的用户标识的数量是最多的,这样,该目标元素队列中的元素中用户标识的数量最接近所需组建的队伍的人数,而后续依据标识数量与目标元素的目标数量匹配队伍时,满足条件的排序队列的情况较少,从而有利于快速的完成对该目标元素的匹配处理;而一旦匹配到目标元素对应的用户组合为一个队伍的其他用户之后,该其他用户所对应的元素以及该目标元素均完成匹配,从而减少了未匹配元素的数量,进而有利于该多个元素的快速匹配。
S204,依据该目标元素中的用户属性值,从标识数量与该目标数量相加为设定数量的至少一个排序队列中,确定至少一个候选元素。
其中,该设定数量为预先设定的队伍中包含的用户数量。如,如果服务器中设定每个队伍中需要包括6个用户,那么设定数量为6。
可以理解的是,排序队列的标识数量代表了该排序队列的元素中包含的用户标识的数量,因此,确定出标识数量与该目标数量相加为设定数量的至少一个排序队列之后,该至少一个排序队列的标识数量与该目标数量的总和为该设定数量,这样,如果从该至少一个排序队列中的每个排序队列中分别匹配出一个候选元素,则匹配出的所有候选元素中用户标识的总数量与该目标元素中用户标识的数量之和就是该设定数量。可见,分别从该至少一个排序队列中匹配出至少一个候选元素,匹配出的至少一个候选元素以及该目标元素中用户标识所代表的用户就可以匹配为一个队伍。
需要说明的,标识数量与目标数量相加为设定数量的至少一个排序队列中可以存在两个或多个相同的排序队列。如,以设定数量为5,目标数量为3为例进行说明,能够与目标数量相加为设定数量的标识数量可以为2,那么可以从标识数量为2的一个排序队列中匹配出一个候选元素;同时,能够与该目标数量相加为设定数量的标识数量还可以为两个1,即,目标数量3+1+1=设定数量5,可见,标识数量与该目标数量相加为设定数量的排序队列有2个,且这两个排序队列均为标识数量为1的排序队列,这样,再从标识数量为1的排序队列中匹配出一个候选元素之后,还需要再从标识数量为1的排序队列中再匹配出一个候选元素。
由上面的例子也可以看出,标识数量与目标数量相加为设定数量的至少一个排序队列有可能会存在多种排序队列组合的可能,在该种情况下,可以先根据设定数量以及目标数量,从至少一个具有数量类型的排序队列中,确定出至少一个排序队列组。其中,每个排序队列组由至少一个排序队列构成,且该排序队列组中的该至少一个排序队列的标识数量与该目标数量相加为设定数量。然后,再从未被处理的排序队列组中,选取出排序队列的个数最少的目标排序队列组,并从该目标排序队列组的至少一个目标排序队列中分别匹配候选元素,得到匹配出的至少一个候选元素。
其中,选取排序队列组中排序队列的个数最少的排序队列组作为目标排序队列可以减少匹配候选元素的次数,从而有利于提高匹配效率。如,假设确定出的排序队列组包括:第一排序队列组和第二排序队列组,其中,第一排序队列组包括标识数量为3的排序队列1,而第二排序队列组标识数量为2的排序队列2和标识数量为1的排序队列3,则包含排序队列个数最少的为第一排序队列组,由于第一排序队列组中只有一个排序队列1,这样只需要从该排序队列1中匹配出一个候选元素,便可以完成匹配。而如果选取第二排序队列组,则需要分配从排序队列2和排序队列3中分别匹配出一个候选元素,匹配次数增加。
进一步的,如果该目标排序队列组的目标排序队列中不存在与该目标元素的用户属性值匹配的候选元素,则说明无法匹配到组合队伍所需的设定数量个用户,在该种情况下,则可以返回执行所述从未被处理的排序队列组中,选取出排序队列的个数最少的目标排序队列组的操作,以重新确定目标排序队列组,以便从最新确定的目标排序队列组的排序队列中分别匹配候选元素。
如果目标排序队列组的每个排序队列中均匹配出一个候选元素,则最终匹配出的候选元素的个数为设定数量与目标数量的差值,在该种情况下,目标元素与匹配出的候选元素中所有用户标识对应的用户就可以组成为一个队伍。
其中,从排序队列中匹配候选元素时,需要比较排序队列中元素的用户属性值与目标元素的用户属性值之间是否满足匹配条件。其中,该匹配条件可以根据需要设定,如,匹配条件可以为用户属性值相同;或者,用户属性值的差值小于预设值,且差值最小等。这样,可以基于目标元素的用户属性值,从排序队列中查找用户属性值满足匹配条件的候选元素。
可以理解的是,由于排序队列中的元素是按照元素中用户属性值的预设顺序进行排序的,这样,当基于目标元素的用户属性值,从排序队列中搜索候选元素时,则无需依次遍历该排序队列中的所有元素的用户属性值,便可以搜索出用户属性值满足匹配条件的元素,有利于提高元素搜索效率。
如,可以采用折半查找(也称为二分搜索或者对数搜索)算法,从该排序队列中定位出与该目标元素的用户属性值匹配的候选元素。其中,折半查找算法是一种在有序数组中查找某一特定元素的搜索算法,而该排序队列就相当于按照用户属性值的预设顺序排序的有序数组。
举例说明,在利用折半查找算法搜索候选元素时,可以搜索候选属性值为目标元素的候选属性值的元素,可以先从目标排序队列中处于中间位置的中间元素开始查找,如果该中间元素的用户属性值与该目标元素的用户属性值相同,则该中间元素就是候选元素;如果所需查找的候选元素的用户属性值应大于或者小于该中间元素的游戏属性值,则在该目标排序队列中,用户属性值大于或者小于该中间元素的用户属性值的一侧节点中查找,查找过程也是从该一侧元素所对应的中间元素开始查找,直至最终找到满足匹配条件的候选元素。可见,通过该折半查找算法每次搜索节点都是的搜索范围缩小为一半,大大减少了搜索量,提高了搜索效率。
S205,基于目标元素以及候选元素中的用户标识,匹配出包含该设定数量个用户的队伍。
如,依据该目标元素以及匹配出的至少一个候选元素中的多个用户标识,确定该多个用户标识所表征的用户,将该多个用户标识所表征的用户匹配为一个队伍,从而得到包含设定数量个用户的队伍。
可以理解的是,在基于该目标元素以及候选元素,匹配出一个队伍之后,可以从该多个元素中删除该目标元素和候选元素,同时,目标元素以及候选元素所在的排序队列中删除该目标元素以及候选元素,以避免重复匹配。
可见,服务器获取到针对不同组队请求所生成的多个元素之后,还会获取该多个元素对应的至少一个排序队列,而每个排序队列中只包括用户标识的数量与该排序队列对应的标识数量相同的元素,这样,在确定出待匹配的目标元素之后,只需要从标识数量与该目标元素中用户标识的目标数量相加为设定数量的至少一个排序队列中,匹配候选元素,从而只需从部分排序队列所对应的元素中匹配候选元素,而无需遍历所有的元素,便可以匹配出能够与目标元素中至少一个用户组成队伍的其他用户所在的候选元素,并完成队伍匹配,减少了匹配工作量,提高了匹配效率。
同时,由于排序队列中是按照用户属性值的预设顺序对元素进行排序,这样,在依据目标元素中的用户属性值,从排序队列中匹配候选元素时,无需按照排序队列中各个元素的顺序依次遍历该排序队列中的所有元素,便可以通过折中搜索法等匹配算法快速匹配出候选元素,从而进一步提高了匹配候选元素的效率。
为了便于理解,下面以游戏场景为例,结合游戏玩家的组队过程对本申请实施例的用户匹配方法进行详细介绍,在本申请实施例中,游戏玩家相当于所需匹配到队伍中的用户,玩家标识就相当于用户标识。如,参见图3,其示出了本申请一种用户匹配方法又一个实施例的流程示意图,本实施例的方法可以包括:
S301,终端向服务器发送组队请求,该组队请求携带有至少一个游戏玩家的玩家标识。
该组队请求中携带的游戏玩家的玩家标识的个数小于或者等于预先设定的队伍中所需包含的游戏玩家的设定数量N,N为大于等于2的自然数。
其中,当组队请求携带有一个游戏玩家的玩家标识时,则说明该组队请求仅仅携带有发起该组队请求的游戏玩家的玩家标识,在该种情况下,说明发起该组队请求的游戏玩家并未限制该游戏玩家必须与某些游戏玩家处于同一个队伍内。
当组队请求中携带有两个或多个游戏玩家的玩家标识时,该组队请求不仅携带有发起组队请求的游戏玩家的玩家标识,还携带有该游戏玩家希望分配到同一个队伍内的其他游戏玩家的玩家标识。例如,游戏玩家A与游戏玩家B和游戏玩家C为游戏中的好友关系,且游戏玩家A、游戏玩家B和游戏玩家C希望作为同一个队伍内的成员参与到游戏战斗中,在该种情况下,游戏玩家A可以向游戏玩家B和游戏玩家C发起联合战斗请求,得到游戏玩家B和游戏玩家C的确认后,游戏玩家A可以发起携带有这三个游戏玩家的玩家标识的组队请求。
S302,服务器响应于该组队请求,检测该组队请求中携带的该至少一个游戏玩家的玩家标识的个数是否小于N,如果是,则执行步骤S303;如果否,则说明组队请求中携带的游戏玩家的玩家标识的个数等于N,则将该至少一个游戏玩家的标识所表示的至少一个游戏玩家确定为一个队伍。
可以理解的是,如果组队请求中携带的游戏玩家的玩家标识的个数为队伍所需包含的玩家人数,则说明组队请求中携带的该至少一个游戏玩家的玩家标识所代表的该至少一个游戏玩家便可以组成一个队伍,在该种情况下,可以直接将该至少一个游戏玩家匹配为一个队伍,而无需执行后续匹配队伍的操作。
S303,服务器依据该至少一个游戏玩家的玩家标识,分别获取该至少一个游戏玩家各自的属性值,并将该至少一个游戏玩家的属性值的平均值作为用于反映该至少一个游戏玩家的游戏水平的游戏属性值。
其中,游戏玩家的属性值是反映游戏玩家游戏水平实力的量化值,游戏玩家的属性值可以用于表征游戏玩家的功力值、等级、排名情况等等。游戏玩家的属性值可以根据游戏玩家的历史游戏数据确定。
其中,游戏属性值可以反映出该至少一个游戏玩家作为一个整体所呈现出的平均游戏水平。该游戏属性值就相当于前面实施例所提到的用户属性值。
需要说明的是,将该至少一个游戏玩家的属性值的平均值作为反映该至少一个游戏玩家的游戏水平实力的游戏属性值仅仅是一种实现方式。在实际应用中,还可以有其他方式确定该至少一个游戏玩家的游戏属性值,如,当组队请求携带有一个游戏玩家的玩家标识时,可以直接将该游戏玩家的游戏属性值确定为该游戏玩家的游戏属性值;而当组队请求携带有多个游戏玩家的玩家标识时,可以从该多个游戏玩家的属性值中,去除最大以及最小的属性值之后,随机选取出一个属性值作为该多个游戏玩家的游戏属性值。当然,本申请对于根据该至少一个游戏玩家各自的属性值,确定该至少一个游戏玩家的游戏属性值的具体方式不加以限制。
可以理解的是,通过游戏属性值能够更加直观的反映出游戏玩家的水平实力,且更便于匹配水平实力相似的游戏玩家。但是,在为游戏玩家分配队伍时,也可以直接获取每个游戏玩家的游戏属性的数据,并确定该至少一个游戏玩家的游戏属性的综合特征数据,而无需将游戏属性的数据量化为数值。
S304,服务器构建存储有该至少一个游戏玩家的玩家标识以及该游戏属性值的节点,并根据节点中存储的玩家标识的标识数量,将该节点存储到该标识数量对应的节点队列中,且根据该至少一个游戏玩家的游戏属性值,将该节点插入到与该标识数量对应的排序队列中。
其中,服务器针对每个组队请求均会生成一个节点,该节点用于存储组队请求携带的该至少一个游戏玩家的玩家标识以及服务器为该至少一个游戏玩家确定出的游戏属性值。
其中,该节点队列用于存储节点。可选的,在节点队列可以按照节点生成的顺序依次存储各个节点,即,最近一个生成的节点会存储到该节点队列的末尾,使得节点队列中生成时刻靠前的节点所在的位置位于生成时刻靠后的节点所在位置之前,这样,服务器可以按照节点队列中节点的存储顺序,优先处理排序靠前的节点,从而使得服务器可以优先为请求组队时间靠前的游戏玩家匹配队伍。
如,参见图4a,其示出了本申请中节点队列所包含的多个节点的示意图,在图4a中节点队列中的节点按照生成时间顺序依次排序,该节点队列中依次包括节点1、节点2、节点3以及节点4,每个节点中都存储有该节点的标识,至少一个游戏玩家的玩家标识,以及该节点对应的游戏属性值,如图4a中节点1所包含的内容为节点1下方的箭头所指向的数据列表。其中,节点的标识用于区分各个节点,如,节点1的标识可以为node1,节点2的标识可以为node2。在该图4a中处于节点队列的末尾的节点为节点4,后续如果服务器再生成节点5,则节点5可以排在节点4的后端(在图4a中为节点4的右侧)。
其中,在本实施例中,将节点中存储的至少一个游戏玩家的玩家标识的总数量也称为标识数量,以便与节点队列的标识数量相对应。同时,针对一个节点中可能存储的玩家标识的不同数量,分别设置了不同种数量类型的节点队列,每种节点队列中节点内存储的玩家标识的数量不同。相应的,对于任意一个标识数量,标识数量对应的节点队列中每个节点内存储的玩家标识的数量为该标识数量。在本申请实施例中,在队伍包含N个游戏玩家,且组队请求最多携带N-1个游戏玩家的玩家标识的情况下,可以生成N-1种节点队列。
举例说明,队伍中可以包括4个游戏玩家,那么组队请求所携带的游戏玩家的玩家标识的个数可以有:3个、2个或者1个这3种情况,则对于组队请求携带有1个游戏玩家的玩家标识的情况,可以生成包含该1个游戏玩家的玩家标识的节点,并将该节点加入到个数1所对应的第一类节点队列中,该第一类节点队列中每个节点中存储的玩家标识的个数为1;相应的,对于携带有2个游戏玩家的玩家标识的组队请求,生成包含该2个游戏玩家的玩家标识的节点之后,可以将该节点加入到第二类节点队列中,该第二类节点队列中每个节点中存储有2个玩家标识;对于携带有3个玩家标识的组队请求,情况类似。
其中,该排序队列相当于将节点队列中包含的节点,按照节点中存储的游戏属性值的大小重新排序得到,该排序队列可以反映出不同节点中存储的游戏属性值的大小关系。
如,参见图4b,其示出了本申请一种排序队列的组成结构示意图。在该图4b的排序队列中包括4个节点,该4个节点与图4a的节点队列中所包含的节点相同,不同之处在于,在该排序队列中4个节点的排列顺序与节点队列中的排列顺序不同。假设在图4b的排序队列中,按照节点中存储的游戏属性值从小到大的顺序,排列这4个节点,同时,假设节点1的游戏属性值为120、节点2的游戏属性值为300、节点3的游戏属性值为200、节点4的游戏属性值为100,由图4b可以看出,游戏属性值较小的节点排序最靠前,即节点4位于该排序队列的第一位,然后依次为节点1、节点3和节点2。假设当前时刻服务器生成了一个节点5,且该节点5中存储的游戏属性值为180,则该节点5会插入到该排序列表中节点1和节点3之间。
与节点队列的种类相似,在本申请实施例中,针对节点中包含的玩家标识的个数,分别构建了多种排序队列,包含的玩家标识的个数相同的节点处于同一个排序队列中,因此,标识数量对应的排序队列中每个节点所包含的玩家标识的个数为该标识数量。例如,节点中包含3个游戏玩家的玩家标识,则会将该节点放到3对应的排序队列中,在该排序队列中每个节点都包含有3个玩家标识。在本申请实施例中,在队伍包含N个游戏玩家,且组队请求最多携带N-1个游戏玩家的玩家标识的情况下,服务器最多会创建并维护N-1种排序队列。
需要说明的是,本实施例是以节点形式存储玩家标识以及游戏属性值为例进行说明,但是通过其他形式的元素来作为数据单元存储该游戏玩家或者游戏属性值也同样适用于本申请实施例。
S305,服务器在满足组队条件时,基于队伍所需的游戏玩家的数量N,拆分出N对应的所有整数加和组,得到至少一组整数加和组。
其中,组队条件可以根据实际需要设定,在此不加以限制。
其中,每组整数加和组为至少两个整数的加和,且该至少两个整数的加和为N。其中,每组整数加和组中该至少两个整数可以为相同的整数也可以为不同的整数。
如,以N为5为例,则整数5可以拆分为以下整数加和组:
4+1;
3+2;
3+1+1;
2+2+1;
2+1+1+1;
1+1+1+1+1;
可见,N为5时,N可以拆分为6组整数加和组,每组整数加和组中的各个整数相加之和为5。
其中,N对应的每种整数加和组中每个整数均对应着标识数量为该整数的节点队列,分别从整数加和组中的各个整数对应的节点队列中选取出一个节点,那么选取出的节点中所包含的玩家标识的个数的总和就是N。如,以5拆分出整数加和组:4+1为例,从节点中玩家标识个数为4个的节点队列中选取出一个节点,然后从节点中玩家标识个数为2个的节点队列中选取出一个节点,那么选取出的这两个节点中包含的玩家标识的总个数为5个。可见,基于N拆分出的整数加和组,可以确定出为了构建出包含N个游戏玩家的队伍,需要从哪些节点队列中选取出节点。
S306,服务器从未被处理的整数加和组中,选取出包含有当前最大的第一整数且整数个数最少的整数加和组作为当前待处理的目标整数加和组。
其中,对于N拆分出的至少一组整数加和组,需要依次将该至少一组整数加和组分别作为目标整数加和组,以便后续依据目标整数加和组中所包含的整数,确定所需组合的节点所在的节点队列。
其中,为了便于区分,将未被处理的整数加和组中,包含的当前最大的整数称为第一整数。
举例说明,仍以N等于5,以及前面提到的5拆分出的6种整数加和组为例,N对应的6种整数加和组中,包含有最大的整数为4,且包含4的整数加和组只有4+1,则将4+1作为目标整数加和组。相应的,如果4+1作为目标整数加和组之后,后续如果还需要选择目标整数加和组,那么5拆分出的6种整数加和组中只有5种整数加和组未被处理,即,分别为:3+2;3+1+1;2+2+1;2+1+1+1;以及,1+1+1+1+1,可见,此时,这5种整数加和组中,当前最大的整数为3。其中,包含3的整数加和组有:3+2;和,3+1+1,而这两种整数加和组中包含整数个数最少的整数加和组为3+2,则将3+2作为目标整数加和组。
其中,如果包含当前最大的第一整数且整数个数最少的整数加和组有多个的情况下,可以随机选取一个作为目标整数加和组。当然,也可以是将N拆分出的每个整数加和组中各个整数按照从大到小的顺序排序,同时,对N拆分出的多个整数加和组进行排序,使得任意一个整数加和组中每位的整数都不小于位于整数加和组之后的其他整数加和组中相应位上的整数,例如,以N为5为例,则拆分出的6个整数家加和组的排序可以为前面例子中排序。相应的,可以选取从未被处理的整数加和组中,选取出排序靠前的目标整数加和组。
可以理解的是,在将设定数量N拆分为至少一个整数加和组之后,如果每个整数加和组中的整数都按照从大到小的顺序排序,那么可以选取当前第一个整数最大且包含的整数个数最少的整数加和组作为目标整数加和组。
S307,服务器依据目标整数加和组中的该第一整数,从节点队列中确定出与该第一整数对应的目标节点队列。
其中,第一整数对应的目标节点队列中每个节点包含有该第一整数个游戏玩家的玩家标识。为了便于区分,将由包含第一整数个玩家标识的节点所组成的节点队列称为目标节点队列。
该步骤S307就相当于确定出当前未被处理且对应的标识数量最大的目标节点队列。
S308,服务器从目标节点队列中获取当前待匹配的目标节点。
为了便于与其他节点进行区分,将该目标节点队列中当前待匹配的节点称为目标节点。该目标节点中存储的游戏玩家的玩家标识可以认为是当前需要匹配队伍的游戏玩家的标识。
其中,在节点队列具有先进先出的特征的情况下,可以从该目标节点队列中,获取排序最靠前且未被匹配的节点作为目标节点。当然,如果从该目标节点集合中随机选取出一个未被匹配的节点作为当前待匹配的目标节点也同样适用于本实施例。
可见,该第一整数就相当于目标节点中玩家标识的目标数量,从而无需重复确定该目标数量。
S309,服务器将该目标整数加和组所包含的至少两个整数中,去除一个第一整数所得到的至少一个整数均确定为第二整数,并依次从每个第二整数对应的目标排序队列中,选取出一个游戏属性值与该目标节点中存储的游戏属性值满足匹配条件的候选节点,得到至少一个第二整数对应的至少一个候选节点。
其中,目标整数加和组中包括两个或者多个整数的加和,而该目标整数加和组中除了一个第一整数之外,至少还包括一个整数,为了便于区分,将该目标整数加和组中去除一个第一整数之外的其他整数均称为第二整数。
为了便于区分,将第二整数对应的排序队列称为目标排序队列,将目标排序队列中,存储的游戏属性值与该目标节点中存储的游戏属性值相匹配的节点称为候选节点。其中,第二整数对应的目标排序队列中每个节点中存储的玩家标识的个数为该第二整数。
其中,根据目标整数加和组的不同,第二整数可以与第一整数相同,也可以不同。如,以目标整数加和组为:4+1为例,4为第一整数,那么1为第二整数。又如,以目标整数加和组为2+2+1为例,该目标整数加和组中的2为第一整数,而该目标整数加和组中包括有两个整数2以及一个整数1,那么去除一个第一整数之外,剩余的2和1为第二整数。
同时,在第二整数的个数为多个时,可能会存在两个或者多个数值相同的第二整数。对于数值相同的多个第二整数,可以根据第二整数的个数,可以依次从该第二整数对应的目标排序队列中匹配出多个候选节点。如,以整数加和组为:3+2+2为例,假设3为第一整数,那么第二整数为两个,且这两个第二整数均为2,则可以先从2对应的目标排序队列中查询到一个候选节点之后,由于剩余的第二整数仍为2,则再从2对应的目标排序队列中未被匹配出的节点中查找出一个候选节点。
可以理解的是,匹配出的候选节点的个数与该整数加和组中第二整数的个数相同。如,第二整数的个数为4个时,则匹配出的所有候选节点的总个数为4个。
其中,该匹配条件可以根据需要设定。以匹配条件为:候选节点中存储的游戏属性值与目标节点中存储的游戏属性值的差的绝对值最小,且该差的绝对值小于预设值为例说明。假设该预设值为10,如果目标节点的游戏属性值为100,而目标排序队列中节点A的游戏属性值为89,节点B的游戏属性值为98,节点C的游戏属性值为105,那么节点A的游戏属性值与目标节点的游戏属性值的差值的绝对值为11,11大于该绝对值10,所以节点A不满足匹配条件;而节点B和节点C的游戏属性值与目标节点的游戏属性值的差值均小于绝对值,其中,节点B的游戏属性值与目标节点的游戏属性值的差值为2,而节点C的游戏属性值与目标节点的游戏属性值的差值为5,因此,节点B为候选节点。
当然,匹配条件为其他情况也同样适用于本实施例,在此不加以限制。
可以理解的是,在本实施例中,将N拆分为至少一个整数加和组之后,整数加和组中最大的第一整数用于确定当前待匹配的目标节点(相当于目标元素)。而整数加和组中除了该第一整数之外的第二整数分别表示组成一个排序队列的标识数量,这样,每个整数加和组对应一个排序队列组,且该排序队列组由该整数加和组中的至少一个第二整数对应的至少一个排序队列构成。
相应的,在步骤S306确定出目标整数加和组实际上就确定出了包含有当前最大的标识数量且排序队列的个数最少的目标排序队列组,这样,基于目标整数加和组可以确定出一个目标排序队列,从而可以确定目标节点需要与该目标排序队列组中的至少一个目标排序队列中的节点进行匹配,以选取出候选节点。
可以理解的是,在确定出构成该设定数量N的至少一个整数加和组,并且按照从大到小的顺序,对整数加和组中各个整数排序的情况下,如果不是直接基于整数加和组确定出目标节点,而是通过其他方式确定出当前待匹配的目标节点,那么在确定出目标节点中玩家标识的目标数量之后,可以从设定数量拆分出的至少一个整数加和组中,确定出第一个整数为该目标数量的至少一个候选整数加和组,相应的,不同的候选整数加和组对应着不同的排序队列组,这样,将包含整数个数最少的候选整数加和组作为目标整数加和组,从而可以确定该目标整数加和组对应的目标排序队列组,并从目标排序队列组中的每个目标排序队列中分别匹配候选节点。
S310,服务器将该目标节点以及该至少一个候选节点中存储的玩家标识所表征的游戏玩家匹配为一个队伍,得到包含有N个游戏玩家的队伍。
可以理解的是,目标节点中可以包括一个或者多个玩家标识,而每个候选节点中包括一个或多个玩家标识,而目标节点与候选节点中存储的玩家标识的总个数为N,且目标节点与候选节点中玩家标识所表征的游戏玩家均为游戏属性值相匹配的游戏玩家,因此,可以将这N个玩家标识所表征的游戏玩家分配到一个队伍中。
举例说明,假设N为5,当前处理的目标整数加和组为2+2+1,那么目标节点应该为包含2个玩家标识的节点,相应的,需要从2对应的目标排序队列中匹配出一个包含2个玩家标识的第一候选节点,并从1对应的目标排序队列中匹配出一个包含1个玩家标识的第二候选节点,这样,目标节点中2个玩家标识各自代表的两个游戏玩家,与第一候选节点中2个玩家标识代表的2个游戏玩家以及第二候选节点中1个玩家标识代表的游戏玩家组成为一个队伍。
S311,服务器将匹配出的队伍所对应的组队结果发送给终端。
如,该组队结果可以包括与终端对应的游戏玩家处于同一个队伍的其他游戏玩家的相关信息。
其中,该步骤为可选步骤。
S312,服务器将目标节点从目标节点所在的节点队列以及排序队列中删除,并将每个候选节点分别从候选节点所在的节点队列以及排序队列中删除。
可以理解的是,由于目标节点以及候选节点中的玩家标识所代表的游戏玩家已经被组合到一个队伍,为了避免出现一个游戏玩家被分配到两个或者多个队伍的情况下,当将某个节点中的玩家标识所代表的游戏玩家分配到一个队伍之后,需要将该节点所在节点队列以及排序队列中的该节点删除。
当然,如果步骤S309中如果从某个目标排序队列中无法匹配到游戏属性值与该目标节点的游戏属性值匹配的候选节点,则说明基于目标节点,以及目标整数加和组所对应的排序队列组中无法出一个队伍,在该种情况下,可以不删除该目标节点以及已经匹配的候选节点,以便后续基于其他整数加和组为目标节点以及候选节点进行匹配,或者是,确定目标节点对应的游戏玩家无法匹配到队伍。
其中,该步骤S311和步骤S312的顺序可以互换,也可以同时执行,在此不加以限制。
S313,服务器检测该目标节点队列中是否仍存在未被匹配的节点,如果是,则返回步骤S308;如果否,则执行步骤S314。
可以理解的是,如果目标节点队列中仍存在未被匹配的节点,该未被匹配的节点中玩家标识所代表的游戏玩家仍未被分配到队伍中。相应的,如果该目标节点队列中不存在未被匹配的候选节点,则可以重新选取节点队列作为目标节点队列。
S314,服务器检测N拆分出的至少一个整数加和组中是否存在未被处理的整数加和组,如果是,则返回步骤S306;如果否,则结束本次队伍的匹配,得到至少一组队伍。
如果仍存在未被处理的整数加和组,则说明服务器存储的多个节点队列中,仍存在节点队列未被作为目标节点队列,而未作为目标节点队列的节点队列中的节点中的玩家标识所代表的游戏玩家未被匹配队伍,所以仍需要继续依据未被处理的整数加和组,确定目标节点队列,并返回步骤S306,以对目标节点队列中的节点记录的玩家标识所代表的游戏玩家分配队伍。
需要说明的是,在图3的实施例中是以确定出目标节点队列之后,基于目标整数加和组,依次对目标节点队列中的各个节点匹配候选节点为例进行说明。但是可以理解的是,在确定出目标节点队列中的目标节点之后,也可以是基于目标节点的目标数量,从设定数量对应的至少一个整数加和组中,选取出当前待处理的目标整数加和组;如果基于目标整数加和组,无法匹配到目标数量个候选节点,则重新从该至少一个整数加和组中确定目标整数加和组,直至所有包含目标数量的整数加和组均已经作为目标整数加和组为止。
可以理解的是,图3实施例是以游戏场景为例,为游戏玩家匹配队伍的过程进行介绍,但是对于其他应用场景中,对于为用户匹配到队伍(或者说组)的情况同样可以依据图3实施例所示的流程完成队伍匹配,在此不加以限制。
为了便于理解图3实施例的方案,结合一个应用实例进行介绍,假设游戏场景中每个队伍需包含4个游戏玩家,即,N=4,在该种情况下用户匹配方法可以参见图5,图5的实施例从服务器侧进行介绍,本实施例的方法可以包括:
S501,接收终端发送的组队请求,该组队请求携带有至少一个游戏玩家的玩家标识。
S502,检测该组队请求中携带的该至少一个游戏玩家的玩家标识的个数是否小于4,如果是,则执行步骤S503;如果该组队请求中携带的游戏玩家的玩家标识的个数等于4,则将该至少一个游戏玩家的标识所表示的至少一个游戏玩家确定为一个队伍。
S503,依据该至少一个游戏玩家的玩家标识,分别获取该至少一个游戏玩家的功力值,并计算该至少一个游戏玩家的平均功力值。
在本实施例中,以基于功力值匹配适合组队的游戏玩家为例进行说明。
S504,构建存储有该至少一个游戏玩家的玩家标识以及该平均功力值的节点,并根据节点中存储的玩家标识的标识数量,将该节点存储到该标识数量对应的节点队列,根据节点的平均功力值,将该节点插入到与该标识数量对应的排序队列中。
其中,在本申请实施例中,在N=4的情况下,服务器最多可以维护3种节点队列,分别为:
每个节点中存储有1个玩家标识的第一节点队列;
每个节点中存储有2个玩家标识的第二节点队列;
每个节点中存储有3个玩家标识的第三节点队列;
相应的,服务器中会分别维护每种节点队列对应的排序队列,每种节点队列对应的排序队列中按照存储的功力平均值从大到小的顺序,对节点队列中的节点进行排序。该服务器中维护的3种排序队列为:
第一节点队列对应的第一排序队列,第一排序队列对应的标识数量为1;
第二节点队列对应的第二排序队列,第二排序队列对应的标识数量为2;
第三节点队列对应的第三排序队列,第三排序队列对应的标识数量为3。
S505,在满足组队条件时,拆分出N对应的所有整数加和组,得到4组整数加和组。
其中,拆分的4组整数加和组依次为:
3+1;
2+2;
2+1+1;
1+1+1+1。
S506,将整数加和组“3+1”作为目标整数加和组,从3对应的第三节点队列中,确定出当前待匹配的目标节点J31,并依据目标节点J31中的平均功力值,从1对应的第一排序队列中选取出候选节点J11,并将该目标节点J31中的3个玩家标识所代表的3个游戏玩家与该候选节点J11中存储的1个玩家标识所代表的1个游戏玩家匹配为一个队伍。
相应的,在步骤S506之后,服务器会将目标节点J31从第三节点队列以及第三排序队列中删除,并将该候选节点J11分别从第一节点队列以及第一排序队列中删除。
S507,检测该第三节点队列中是否仍存在未被匹配的节点,如果是,则返回步骤S506;如果否,则执行步骤S508。
S508,将整数加和组“2+2”作为目标整数加和组,从2对应的第二节点队列中,确定出当前待匹配的目标节点J21,根据目标节点J21中的平均功力值,从2对应的第二排序队列中,选取出候选节点J22,将该目标节点J21中的2个玩家标识所代表的2个游戏玩家与该候选节点J22中存储的2个玩家标识所代表的2个游戏玩家匹配为一个队伍。
相应的,在步骤S508之后,服务器会将目标节点J21和候选节点J22从第二节点队列以及第二排序队列中删除。
S509,检测该第二节点队列中是否仍存在未被匹配的节点,如果是,则返回步骤S508;如果否,则执行步骤S510。
需要说明的是,该步骤S509所提到的第二节点队列中是否存在未被匹配的节点,是指第二节点队列中是否存在未按照“2+2”的方式进行匹配的节点。
S510,将整数加和组“2+1+1”作为目标整数加和组,从2对应的第二节点队列中,确定出当前待匹配的目标节点J23,从1对应的第一排序队列中,依次选取出存储的平均功力值与该目标节点J23中存储的平均功力值匹配的候选节点J12和候选节点J13,并将该目标节点J23中的2个玩家标识所代表的2个游戏玩家与该候选节点J12中存储的1个玩家标识所代表的1个游戏玩家,以及候选节点J13存储的1个玩家标识所代表的1个游戏玩家匹配为一个队伍。
相应的,在步骤S510之后,服务器会将目标节点J23从第二节点队列以及第二排序队列中删除,并将该候选节点J12和候选节点J13分别从第一节点队列以及第一排序队列中删除。
S511,检测该第二节点队列中是否仍存在未被匹配的节点,如果是,则返回步骤S510;如果否,则执行步骤S512。
需要说明的是,该步骤S511所提到的第二节点队列中是否存在未被匹配的节点,是指第二节点队列中是否存在未按照“2+1+1”的方式进行匹配的节点。
S512,将整数加和组“1+1+1+1”作为目标整数加和组,从1对应的第一节点队列中,确定出当前待匹配的目标节点J14,并从1对应的第一排序队列中,依次选取出存储的平均功力值与该目标节点J14中存储的平均功力值匹配的候选节点J15、候选节点J16和候选节点J17,将该目标节点J14中玩家标识所代表的1个游戏玩家与该候选节点J15、J16以及J17中各自存储的玩家标识所代表的1个游戏玩家匹配为一个队伍。
相应的,在步骤S512之后,服务器会将目标节点J14,候选节点J15、J16和J17分别从第一节点队列和第一排序队列中删除。
S513,服务器检测该第一节点队列中是否仍存在未被匹配的节点,如果是,则返回步骤S512;如果否,结束玩家匹配。
可以理解的是,在服务器匹配得到多个队伍之后,有些场景中还可能需要将两个或者多个队伍匹配为一个队伍组合,处于同一个队伍组合中的两个或多个队伍之间进行比较或者其他比拼。如,仍以网络游戏为例,在战斗比拼的网络游戏中,在将多个游戏玩家组合为一个队伍之后,还可能涉及两个队伍之间相互战斗的场景,即俗称的两个战队之间的PK,在该种情况下,服务器确定出各个队伍之后,还可以根据队伍中包括的各个游戏玩家的属性值,将包含的游戏玩家的属性相似的两个队伍匹配到一起,以将相互匹配的两个队伍确定需要相互战斗的队伍组合。
如,参见图6,其示出了本申请的用户匹配方法中将多个队伍匹配到不同的队伍组合的一种流程示意图,本实施例从服务器角度描述,本实施例的方法可以包括:
S601,基于匹配出的队伍中设定数量个用户的属性特征,确定出该队伍的队伍属性值。
可以理解的是,服务器每匹配出一个队伍,便可以根据该队伍中包含的设定数量个用户的属性特征,确定反映该队伍中所有用户的综合属性特征的属性值,为了便于区分,将此处的属性值称为队伍属性值。
在一种可能的情况中,将队伍中所有用户的属性值的平均值作为该队伍属性值。举例说明,在队伍为N个游戏玩家构成的队伍的情况下,则可以基于该队伍中这N个游戏玩家的属性值,计算该N个游戏玩家的平均属性值,将该平均属性值作为该队伍的队伍属性值。
在又一种可能的情况中,可以将队伍中所有用户的属性值之和作为该队伍属性值。
当然,还可以有其他确定队伍属性值的方式,不加以限制。
S602,创建记录有该队伍的标识以及该队伍的队伍属性值的数据项。
其中,该数据项也是记录队伍以及其相关信息的单元,为了便于与记录用户相关信息的元素进行区分,将记录有队伍的标识以及队伍属性值的数据单元称为数据项。
S603,将数据项加入到队伍队列中,并根据该队伍的队伍属性值,将该数据项插入到队伍排序队列中。
其中,队伍队列中可以包括服务器匹配出的多个队伍。可选的,队伍队列中可以按照服务器生成队伍的先后顺序,依次存储该多个队伍。
其中,该队伍排序队列中包括按照队伍的队伍属性值的预设顺序排序的至少一个队伍。该预设顺序可以为从大到小的顺序,也可以为从小到大的顺序。
其中,队伍队列与前面提到的元素队列的组成相似,只不过元素队列中每个单元为元素,而队伍队列中每个单元为数据项。相应的,队伍排序队列与前面元素对应的排序队列相似,在此不再赘述。
S604,当满足队伍匹配触发条件时,从该队伍队列中确定当前待匹配的目标队伍。
其中,队伍匹配触发条件可以根据需要设定,如,当服务器完成队伍匹配之后,可以确定满足队伍匹配触发条件;或者是,当匹配出的队伍数量到达预设数量时,确定当前满足队伍匹配触发条件。
目标队伍可以是随机选取的队伍;也可以是按照队伍的生成时间顺序,选取出的未处理的且生成时间靠前的队伍,如,在队伍队列中的队伍为按照生成时间排序的情况下,可以选取未被处理且排序最靠前的队伍作为目标队伍。
S605,根据该目标队伍的目标队伍属性值,从该队伍排序队列中匹配出队伍属性值与该目标队伍属性值之间满足预设队伍匹配条件的至少一个候选队伍。
为了便于区分,将目标队伍的队伍属性值称为目标队伍属性值。
其中,该预设队伍匹配条件可以根据需要设定,如,预设匹配条件可以为队伍属性值与该目标队伍的目标队伍属性值相同;或者,队伍属性值与该目标队伍属性值的差值小于预设值,且差值最小。
可以理解的是,由于队伍排序队列中所有队伍都是按照队伍属性值的预设顺序排序的,因此,在目标队伍的目标队伍属性值确定的情况下,无需遍历队伍排序队列中所有的队伍,便可以匹配出候选队伍,从而可以提高队伍组合的效率。如,可以基于折中搜索算法,从队伍排序队列中匹配出与该目标队伍的队伍属性值匹配的一个或者多个候选队伍。
可以理解的是,从队伍排序队列中匹配候选队伍的个数可以根据需要设定。如,假设游戏场景是两个队伍之间的战斗,则只需从队伍排序队列中匹配出一个候选队列即可。
S606,将该目标队伍与至少一个候选队伍匹配为一组队伍组合。
如,确定出目标队伍以及至少一个候选队伍之后,可以设定该目标队伍与该至少一个候选队伍为游戏场景中需要相互战斗的对手队伍。
下面对本申请实施例的一种用户匹配装置进行介绍。
参见图7,其示出了本申请一种用户匹配装置一个实施例的组成结构示意图,本实施例的装置可以包括:
元素获取单元701,用于获取待处理的多个元素,所述元素中记录有一次组队请求对应的至少一个用户的用户标识以及反映所述至少一个用户的属性特征的用户属性值;
排序获取单元702,用于基于所述多个元素中用户标识的数量以及用户属性值,构建出的至少一个具有数量类型的排序队列,所述排序队列包括按照所述用户属性值的预设顺序排序的至少一个元素,且,所述排序队列的元素中用户标识的数量与所述排序队列的数量类型所设定的标识数量相同;
目标确定单元703,用于从所述多个元素中,确定当前待处理的目标元素,并确定所述目标元素中用户标识的目标数量;
元素匹配单元704,用于依据所述目标元素中的用户属性值,从标识数量与所述目标数量相加为设定数量的至少一个排序队列中,确定至少一个候选元素,所述设定数量为预先设定的队伍中包含的用户数量;
队伍构建单元705,用于基于所述目标元素以及候选元素中的用户标识,匹配出包含所述设定数量个用户的队伍。
在一种可能的实现方式中,所述元素获取单元701,可以包括:
元素获取子单元,用于获取待处理的至少一个具有数量类型的元素队列,所述元素队列中包括至少一个元素,且所述元素队列的元素中记录的用户标识的数量与所述元素队列的数量类型所设定的标识数量相同;
相应的,所述目标确定单元703,包括:
第一确定子单元,用于从至少一个所述元素队列中,确定出当前未被处理且所述标识数量最大的目标元素队列;
元素确定子单元,用于从所述目标元素队列中,确定当前待处理的目标元素,并确定所述目标元素中用户标识的目标数量。
在一种可能的实现方式中,所述元素匹配单元,包括:
队列组合子单元,用于基于所述至少一个具有数量类型的排序队列,确定出至少一个排序队列组,所述排序队列组由至少一个排序队列构成,且所述至少一个排序队列的标识数量与所述目标数量相加为设定数量;
队列匹配子单元,用于从未被处理的排序队列组中,选取出排序队列的个数最少的目标排序队列组;
元素匹配子单元,用于依据所述目标元素中的用户属性值,从所述目标排序队列组的至少一个目标排序队列中,匹配出至少一个候选元素。
在一种可能的实现方式中,所述队列匹配子单元,具体为,用于从未被处理的排序队列组中,选取出包含有当前最大的标识数量且排序队列的个数最少的目标排序队列组。
进一步,所述装置还可以包括:
匹配检测单元,用于在所述元素匹配单元匹配出至少一个候选元素之后,当目标排序队列组的目标排序队列中不存在与所述目标元素的用户属性值匹配的候选元素时,则返回执行所述队列匹配子单元的操作,以重新确定目标排序队列组。
在一种可能的实现方式中,所述队伍组合子单元,包括:
整数组合子单元,用于确定构成所述设定数量的至少一个整数加和组,并且按照从大到小的顺序,对所述整数加和组中各个整数排序,所述整数加和组包括至少两个整数,且所述至少两个整数的加和为所述设定数量的数值;
候选组确定子单元,用于从所述至少一个整数加和组中,确定出第一个整数为所述目标数量的至少一个候选整数加和组,其中,不同的所述候选整数加和组对应着不同的排序队列组,且所述候选整数加和组中除第一个整数之外的每个整数分别表示组成所述排序队列组的一个排序队列的标识数量;
所述队伍匹配子单元,包括:
组选取子单元,用于从所述至少一个候选整数加和组中,选取出包含的整数个数最少的目标整数加和组;
队组确定子单元,用于确定与所述目标整数加和组对应的目标排序队列组。
在一种实现方式中,以上装置还可以包括:
请求接收单元,用于在所述元素获取单元获取待处理的多个元素之前,接收组队请求,所述组队请求携带有请求组合到同一个队伍的至少一个用户的用户标识;
属性确定单元,用于确定所述至少一个用户的所述用户属性值;
元素构建单元,用于构建包含所述至少一个用户的用户标识以及所述用户属性值的元素。
进一步的,该装置还可以包括:
排序构建单元,用于基于构建出的元素中用户标识的数量,将所述构建出的元素加入到具有指定数量类型的排序队列中,所述指定数量类型所设定的标识数量为所述构建出的元素中用户标识的数量。
另一方面,参见图8,其示出了本申请实施例的一种用户匹配装置的又一个实施例的组成结构示意图,本实施例的装置与前面实施例的装置的不同之处在于:
在本实施例中,装置还可以包括:
队属性确定单元706,用于基于匹配出的队伍中所述设定数量个用户的属性特征,确定出所述队伍的队伍属性值;
数据项构建单元707,用于创建记录有所述队伍的标识以及所述队伍的队伍属性值的数据项;
数据项存储单元708,用于将所述数据项加入到队伍队列中,并根据所述队伍的队伍属性值,将所述数据项插入到队伍排序队列中,其中,所述队伍排序队列中包括按照队伍的队伍属性值的预设顺序排序的至少一个队伍;
目标队确定单元709,用于当满足队伍匹配触发条件时,从所述队伍队列中确定当前待匹配的目标队伍;
候选队匹配单元710,用于根据所述目标队伍的目标队伍属性值,从所述队伍排序队列中匹配出队伍属性值与所述目标队伍属性值之间满足预设队伍匹配条件的至少一个候选队伍;
队伍组合单元711,用于将所述目标队伍与所述至少一个候选队伍确定为一组队伍组合。
本申请实施例还提供了一种服务器,该服务器可以实现上述所述的一种游戏技能释放方法。
图9示出了服务器的硬件结构框图,参照图9,服务器900可以包括:处理器901,通信接口902,存储器903和通信总线904;
其中处理器901、通信接口902、存储器903通过通信总线904完成相互间的通信;
可选的,通信接口902可以为通信模块的接口,如GSM模块的接口;
处理器901,用于执行程序;
存储器903用于存储处理器执行所需的程序,其中,该存储器中存储的程序至少用于:
获取待处理的多个元素,所述元素中记录有一次组队请求对应的至少一个用户的用户标识以及反映所述至少一个用户的属性特征的用户属性值;
基于所述多个元素中用户标识的数量以及用户属性值,构建出的至少一个具有数量类型的排序队列,所述排序队列包括按照所述用户属性值的预设顺序排序的至少一个元素,且,所述排序队列的元素中用户标识的数量与所述排序队列的数量类型所设定的标识数量相同;
从所述多个元素中,确定当前待处理的目标元素,并确定所述目标元素中用户标识的目标数量;
依据所述目标元素中的用户属性值,从标识数量与所述目标数量相加为设定数量的至少一个排序队列中,确定至少一个候选元素,所述设定数量为预先设定的队伍中包含的用户数量;
基于所述目标元素以及候选元素中的用户标识,匹配出包含所述设定数量个用户的队伍。
其中,程序可以包括程序代码,所述程序代码包括计算机操作指令。
处理器901可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器903可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
另一方面,本申请实施例还提供了一种存储介质,该存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,用于执行以上实施例中所描述的用户匹配方法。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (15)

1.一种用户匹配方法,其特征在于,包括:
获取待处理的多个元素,所述元素中记录有一次组队请求对应的至少一个用户的用户标识以及反映所述至少一个用户的属性特征的用户属性值;所述用户属性值包括:游戏属性值;
获取基于所述多个元素中用户标识的数量以及用户属性值,构建出的至少一个具有数量类型的排序队列,所述排序队列包括按照所述用户属性值的预设顺序排序的至少一个元素,且,所述排序队列的元素中用户标识的数量与所述排序队列的数量类型所设定的标识数量相同;
从所述多个元素中,确定当前待处理的目标元素,并确定所述目标元素中用户标识的目标数量;
依据所述目标元素中的用户属性值,从标识数量与所述目标数量相加为设定数量的至少一个排序队列中,确定至少一个候选元素,所述设定数量为预先设定的队伍中包含的用户数量;
基于所述目标元素以及候选元素中的用户标识,匹配出包含所述设定数量个用户的队伍。
2.根据权利要求1所述的用户匹配方法,其特征在于,所述获取待处理的多个元素,包括:
获取待处理的至少一个具有数量类型的元素队列,所述元素队列中包括至少一个元素,且所述元素队列的元素中记录的用户标识的数量与所述元素队列的数量类型所设定的标识数量相同;
所述从所述多个元素中,确定当前待处理的目标元素,包括:
从至少一个所述元素队列中,确定出当前未被处理且所述标识数量最大的目标元素队列;
从所述目标元素队列中,确定当前待处理的目标元素。
3.根据权利要求1或2所述的用户匹配方法,其特征在于,所述依据所述目标元素中的用户属性值,从标识数量与所述目标数量相加为设定数量的至少一个排序队列中,确定至少一个候选元素,包括:
基于所述至少一个具有数量类型的排序队列,确定出至少一个排序队列组,所述排序队列组由至少一个排序队列构成,且所述至少一个排序队列的标识数量与所述目标数量相加为设定数量;
从未被处理的排序队列组中,选取出排序队列的个数最少的目标排序队列组;
依据所述目标元素中的用户属性值,从所述目标排序队列组的至少一个目标排序队列中,匹配出至少一个候选元素。
4.根据权利要求3所述的用户匹配方法,其特征在于,所述从未被处理的排序队列组中,选取出排序队列的个数最少的目标排序队列组,包括:
从未被处理的排序队列组中,选取出包含有当前最大的标识数量且排序队列的个数最少的目标排序队列组。
5.根据权利要求3所述的用户匹配方法,其特征在于,在所述依据所述目标元素中的用户属性值,从所述目标排序队列组的至少一个目标排序队列中,匹配出至少一个候选元素之后,还包括:
当目标排序队列组的目标排序队列中不存在与所述目标元素的用户属性值匹配的候选元素时,则返回执行所述从未被处理的排序队列组中,选取出排序队列的个数最少的目标排序队列组的操作,以重新确定目标排序队列组。
6.根据权利要求3所述的用户匹配方法,其特征在于,所述基于所述至少一个具有数量类型的排序队列,确定出至少一个排序队列组,包括:
确定构成所述设定数量的至少一个整数加和组,并且按照从大到小的顺序,对所述整数加和组中各个整数排序,所述整数加和组包括至少两个整数,且所述至少两个整数的加和为所述设定数量的数值;
从所述至少一个整数加和组中,确定出第一个整数为所述目标数量的至少一个候选整数加和组,其中,不同的所述候选整数加和组对应着不同的排序队列组,且所述候选整数加和组中除第一个整数之外的每个整数分别表示组成所述排序队列组的一个排序队列的标识数量;
所述从未被处理的排序队列组中,选取出排序队列的个数最少的目标排序队列组,包括:
从所述至少一个候选整数加和组中,选取出包含的整数个数最少的目标整数加和组;
确定与所述目标整数加和组对应的目标排序队列组。
7.根据权利要求1所述的用户匹配方法,其特征在于,在所述获取待处理的多个元素之前,还包括:
接收组队请求,所述组队请求携带有请求组合到同一个队伍的至少一个用户的用户标识;
确定所述至少一个用户的所述用户属性值;
构建包含所述至少一个用户的用户标识以及所述用户属性值的元素。
8.根据权利要求7所述的用户匹配方法,其特征在于,还包括:
基于构建出的元素中用户标识的数量,将所述构建出的元素加入到具有指定数量类型的排序队列中,所述指定数量类型所设定的标识数量为所述构建出的元素中用户标识的数量。
9.根据权利要求1所述的用户匹配方法,其特征在于,还包括:
基于匹配出的队伍中所述设定数量个用户的属性特征,确定出所述队伍的队伍属性值;
创建记录有所述队伍的标识以及所述队伍的队伍属性值的数据项;
将所述数据项加入到队伍队列中,并根据所述队伍的队伍属性值,将所述数据项插入到队伍排序队列中,其中,所述队伍排序队列中包括按照队伍的队伍属性值的预设顺序排序的至少一个队伍;
当满足队伍匹配触发条件时,从所述队伍队列中确定当前待匹配的目标队伍;
根据所述目标队伍的目标队伍属性值,从所述队伍排序队列中匹配出队伍属性值与所述目标队伍属性值之间满足预设队伍匹配条件的至少一个候选队伍;
将所述目标队伍与所述至少一个候选队伍匹配为一组队伍组合。
10.一种用户匹配装置,其特征在于,包括:
元素获取单元,用于获取待处理的多个元素,所述元素中记录有一次组队请求对应的至少一个用户的用户标识以及反映所述至少一个用户的属性特征的用户属性值;所述用户属性值包括:游戏属性值;
排序获取单元,用于获取基于所述多个元素中用户标识的数量以及用户属性值,构建出的至少一个具有数量类型的排序队列,所述排序队列包括按照所述用户属性值的预设顺序排序的至少一个元素,且,所述排序队列的元素中用户标识的数量与所述排序队列的数量类型所设定的标识数量相同;
目标确定单元,用于从所述多个元素中,确定当前待处理的目标元素,并确定所述目标元素中用户标识的目标数量;
元素匹配单元,用于依据所述目标元素中的用户属性值,从标识数量与所述目标数量相加为设定数量的至少一个排序队列中,确定至少一个候选元素,所述设定数量为预先设定的队伍中包含的用户数量;
队伍构建单元,用于基于所述目标元素以及候选元素中的用户标识,匹配出包含所述设定数量个用户的队伍。
11.根据权利要求10所述的用户匹配装置,其特征在于,所述元素获取单元,包括:
元素获取子单元,用于获取待处理的至少一个具有数量类型的元素队列,所述元素队列中包括至少一个元素,且所述元素队列的元素中记录的用户标识的数量与所述元素队列的数量类型所设定的标识数量相同;
所述目标确定单元,包括:
第一确定子单元,用于从至少一个所述元素队列中,确定出当前未被处理且所述标识数量最大的目标元素队列;
元素确定子单元,用于从所述目标元素队列中,确定当前待处理的目标元素,并确定所述目标元素中用户标识的目标数量。
12.根据权利要求10或11所述的用户匹配装置,其特征在于,所述元素匹配单元,包括:
队列组合子单元,用于基于所述至少一个具有数量类型的排序队列,确定出至少一个排序队列组,所述排序队列组由至少一个排序队列构成,且所述至少一个排序队列的标识数量与所述目标数量相加为设定数量;
队列匹配子单元,用于从未被处理的排序队列组中,选取出排序队列的个数最少的目标排序队列组;
元素匹配子单元,用于依据所述目标元素中的用户属性值,从所述目标排序队列组的至少一个目标排序队列中,匹配出至少一个候选元素。
13.根据权利要求10所述的用户匹配装置,其特征在于,还包括:
队属性确定单元,用于基于匹配出的队伍中所述设定数量个用户的属性特征,确定出所述队伍的队伍属性值;
数据项构建单元,用于创建记录有所述队伍的标识以及所述队伍的队伍属性值的数据项;
数据项存储单元,用于将所述数据项加入到队伍队列中,并根据所述队伍的队伍属性值,将所述数据项插入到队伍排序队列中,其中,所述队伍排序队列中包括按照队伍的队伍属性值的预设顺序排序的至少一个队伍;
目标队确定单元,用于当满足队伍匹配触发条件时,从所述队伍队列中确定当前待匹配的目标队伍;
候选队匹配单元,用于根据所述目标队伍的目标队伍属性值,从所述队伍排序队列中匹配出队伍属性值与所述目标队伍属性值之间满足预设队伍匹配条件的至少一个候选队伍;
队伍组合单元,用于将所述目标队伍与所述至少一个候选队伍匹配为一组队伍组合。
14.一种服务器,其特征在于,包括:
处理器和存储器;
其中,所述处理器用于执行所述存储器中存储的程序;
所述存储器用于存储程序,所述程序至少用于:
获取待处理的多个元素,所述元素中记录有一次组队请求对应的至少一个用户的用户标识以及反映所述至少一个用户的属性特征的用户属性值;所述用户属性值包括:游戏属性值;
获取基于所述多个元素中用户标识的数量以及用户属性值,构建出的至少一个具有数量类型的排序队列,所述排序队列包括按照所述用户属性值的预设顺序排序的至少一个元素,且,所述排序队列的元素中用户标识的数量与所述排序队列的数量类型所设定的标识数量相同;
从所述多个元素中,确定当前待处理的目标元素,并确定所述目标元素中用户标识的目标数量;
依据所述目标元素中的用户属性值,从标识数量与所述目标数量相加为设定数量的至少一个排序队列中,确定至少一个候选元素,所述设定数量为预先设定的队伍中包含的用户数量;
基于所述目标元素以及候选元素中的用户标识,匹配出包含所述设定数量个用户的队伍。
15.一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,用于执行权利要求1至9任一项所述的用户匹配方法。
CN201711139143.0A 2017-11-16 2017-11-16 用户匹配方法、装置、服务器以及存储介质 Active CN107837532B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711139143.0A CN107837532B (zh) 2017-11-16 2017-11-16 用户匹配方法、装置、服务器以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711139143.0A CN107837532B (zh) 2017-11-16 2017-11-16 用户匹配方法、装置、服务器以及存储介质

Publications (2)

Publication Number Publication Date
CN107837532A CN107837532A (zh) 2018-03-27
CN107837532B true CN107837532B (zh) 2020-11-24

Family

ID=61679657

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711139143.0A Active CN107837532B (zh) 2017-11-16 2017-11-16 用户匹配方法、装置、服务器以及存储介质

Country Status (1)

Country Link
CN (1) CN107837532B (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108786116B (zh) * 2018-04-24 2022-04-29 网易(杭州)网络有限公司 对战游戏中的队伍匹配方法、电子设备及存储介质
CN108786117A (zh) * 2018-06-12 2018-11-13 北京智明星通科技股份有限公司 一种手机游戏玩家分组方法、装置和服务器
CN108846438B (zh) * 2018-06-15 2022-05-24 电子科技大学 一种基于现实地理位置的组队匹配方法
CN110681159A (zh) * 2018-07-06 2020-01-14 在线途游(北京)科技有限公司 一种组队方法、装置及设备
CN110694278A (zh) * 2018-07-10 2020-01-17 在线途游(北京)科技有限公司 一种游戏组桌方法、游戏积分计算方法、装置及智能设备
CN110772796B (zh) * 2018-07-30 2023-05-05 阿里巴巴(中国)有限公司 组队方法、装置及电子设备
CN111091253A (zh) * 2018-10-23 2020-05-01 北京嘀嘀无限科技发展有限公司 网约车组队方法、装置、设备及存储介质
CN109603159A (zh) * 2018-12-18 2019-04-12 网易(杭州)网络有限公司 匹配游戏玩家的方法、装置及系统
CN110336681A (zh) * 2019-06-20 2019-10-15 北京字节跳动网络技术有限公司 一种匹配方法、装置、电子设备及存储介质
CN110354504B (zh) * 2019-08-15 2023-10-13 广州方硅信息技术有限公司 获取匹配组的方法、装置、服务器和存储介质
CN110795632B (zh) * 2019-10-30 2022-10-04 北京达佳互联信息技术有限公司 一种状态查询方法、装置及电子设备
CN111185014B (zh) * 2019-11-07 2021-02-12 腾讯科技(深圳)有限公司 对象匹配方法、装置和计算机可读存储介质
CN111111216B (zh) * 2019-12-24 2024-02-02 北京奇艺世纪科技有限公司 一种匹配方法、装置、服务器及存储介质
CN111111215B (zh) * 2019-12-24 2023-06-27 北京像素软件科技股份有限公司 游戏匹配方法、装置、服务器及可读存储介质
CN111589161B (zh) * 2020-05-12 2023-07-25 上海商汤临港智能科技有限公司 一种竞技任务匹配方法、装置、设备及计算机存储介质
CN111957052A (zh) * 2020-08-07 2020-11-20 完美世界(北京)软件科技发展有限公司 任务组队方法、装置、电子设备及存储介质
CN112426724B (zh) * 2020-11-30 2023-07-25 北京达佳互联信息技术有限公司 游戏用户的匹配方法、装置、电子设备及存储介质
CN112675548B (zh) * 2021-01-05 2022-11-04 腾讯科技(深圳)有限公司 对局匹配方法、装置、设备及可读存储介质
CN114130035A (zh) * 2021-10-27 2022-03-04 百果园技术(新加坡)有限公司 一种用户匹配方法、装置、设备及存储介质
CN114307168B (zh) * 2021-12-30 2024-05-28 北京字跳网络技术有限公司 组队匹配方法、装置、系统、设备及介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090103076A (ko) * 2008-03-27 2009-10-01 (주)에프투 시스템 룰렛게임 장치 및 방법
CN103294809B (zh) * 2013-06-03 2016-09-14 腾讯科技(深圳)有限公司 一种用户组匹配方法及装置
CN104133825B (zh) * 2013-09-10 2016-05-18 腾讯科技(深圳)有限公司 一种匹配客户端用户的方法及装置
CN104606892B (zh) * 2015-03-02 2017-07-07 郑州三生石科技有限公司 一种多人视频在线游戏筛选玩家的方法
CN105582673B (zh) * 2015-11-09 2018-11-13 广州多益网络股份有限公司 对象匹配的方法及系统
CN106924968A (zh) * 2015-12-31 2017-07-07 网易(杭州)网络有限公司 虚拟角色组队控制方法及装置
CN106980688A (zh) * 2017-03-31 2017-07-25 上海掌门科技有限公司 一种用于提供交友对象的方法、设备及系统
CN107247786A (zh) * 2017-06-15 2017-10-13 北京小度信息科技有限公司 用于确定相似用户的方法、装置和服务器

Also Published As

Publication number Publication date
CN107837532A (zh) 2018-03-27

Similar Documents

Publication Publication Date Title
CN107837532B (zh) 用户匹配方法、装置、服务器以及存储介质
JP7086351B2 (ja) ユーザマッチングを実施するための方法および関連するデバイス
CN110738479B (zh) 基于多人点单的订单管理方法及系统
JP5550720B2 (ja) マルチユーザコンピュータシミュレーションにおいてユーザをマッチングさせる方法と装置
US20070111797A1 (en) Network game system and network game program
WO2014194642A1 (en) Systems and methods for matching users
CN106878415B (zh) 数据消费的负载均衡方法及装置
CN108196885B (zh) 对象组的确定方法和装置、存储介质、电子装置
CN111930434B (zh) 一种云应用的启动方法、装置、可读存储介质及设备
CN109246190B (zh) 网络寻址方法、数据编辑方法、装置及存储介质
CN110728505A (zh) 基于多人点单的支付方法、服务器、客户端及系统
BR112014020823B1 (pt) Método, servidor e meio legível para alocar recursos de jogo
CN103299295A (zh) 对等网络中的搜索
CN111135586A (zh) 游戏匹配方法、游戏匹配装置、存储介质与电子设备
CN111111216B (zh) 一种匹配方法、装置、服务器及存储介质
CN110225102A (zh) 推送信息的方法、设备及系统
CN113014422A (zh) 一种内容分发网络带宽调度的方法、装置及设备
CN111957052A (zh) 任务组队方法、装置、电子设备及存储介质
KR100683238B1 (ko) 온라인 게임 제공 방법 및 그 시스템
CN109491982B (zh) 移动互联网的移动终端内创建虚拟存储单元的方法及系统
CN114307168B (zh) 组队匹配方法、装置、系统、设备及介质
CN117409218A (zh) 对象匹配方法、装置、设备及存储介质
JP2017111703A (ja) 認証手段選択装置、認証手段選択方法、およびプログラム
CN115412737B (zh) 直播回源中继节点确定方法及装置
CN111695044A (zh) 用户排名的数据处理方法、装置及电子设备

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
GR01 Patent grant
GR01 Patent grant