CN109999497B - 虚拟对象的控制方法和装置、存储介质和电子装置 - Google Patents
虚拟对象的控制方法和装置、存储介质和电子装置 Download PDFInfo
- Publication number
- CN109999497B CN109999497B CN201910363789.XA CN201910363789A CN109999497B CN 109999497 B CN109999497 B CN 109999497B CN 201910363789 A CN201910363789 A CN 201910363789A CN 109999497 B CN109999497 B CN 109999497B
- Authority
- CN
- China
- Prior art keywords
- target
- virtual
- target object
- location
- positions
- 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
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/56—Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/64—Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开一种虚拟对象的控制方法和装置、存储介质和电子装置。其中,该方法包括:在客户端上运行一局对战游戏的过程中,获取所述一局对战游戏中目标对战方的多个虚拟对象中待操作的目标对象;获取所述目标对象对应的第一位置信息和第二位置信息;在为所述目标对象的所述当前位置预先获取到的多个目标位置集合中确定出与所述第二位置信息对应的第二位置集合;控制所述目标对象从所述当前位置移动到从所述第二位置集合中选取出的一个位置。本发明解决了相关技术中的对战游戏中由于每一步生成着法时,都需要遍历对战的虚拟场景中的所有虚拟对象,导致着法生成效率低下的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种虚拟对象的控制方法和装置、存储介质和电子装置。
背景技术
相关技术中,对于对战游戏(例如,象棋类游戏),在对战方中的至少一方为电脑的情况下,在运行每一步时,通过传统规则遍历所有虚拟对象(例如,棋子),生成合法着法。
由于每一步生成着法时,都需要遍历对战的虚拟场景中的所有虚拟对象,导致着法生成效率低下。
发明内容
本发明实施例提供了一种虚拟对象的控制方法和装置、存储介质和电子装置,以至少解决相关技术中的对战游戏中由于每一步生成着法时,都需要遍历对战的虚拟场景中的所有虚拟对象,导致着法生成效率低下的技术问题。
根据本发明实施例的一个方面,提供了一种虚拟对象的控制方法,包括:在客户端上运行一局对战游戏的过程中,获取所述一局对战游戏中目标对战方的多个虚拟对象中待操作的目标对象,其中,所述多个虚拟对象被设置为由所述目标对战方控制在所述一局对战游戏的虚拟场景中的多个位置之间移动;获取所述目标对象对应的第一位置信息和第二位置信息,其中,所述第一位置信息用于表示第一位置集合,所述第一位置集合包括所述虚拟场景中所述目标对象从当前位置允许被移动到的位置,所述第二位置信息用于表示所述第一位置集合上的当前虚拟对象组合,所述当前虚拟对象组合用于表示所述第一位置集合中的每个位置上当前是否存在所述一局对战游戏中的虚拟对象;在为所述目标对象的所述当前位置预先获取到的多个目标位置集合中确定出与所述第二位置信息对应的第二位置集合,其中,所述多个目标位置集合中的每个目标位置集合包括在所述第一位置集合上存在的一种虚拟对象组合的条件下,所述目标对象从所述当前位置允许被移动到的位置;控制所述目标对象从所述当前位置移动到从所述第二位置集合中选取出的一个位置。
根据本发明实施例的另一方面,还提供了一种虚拟对象的控制装置,包括:第一获取模块,用于在客户端上运行一局对战游戏的过程中,获取所述一局对战游戏中目标对战方的多个虚拟对象中待操作的目标对象,其中,所述多个虚拟对象被设置为由所述目标对战方控制在所述一局对战游戏的虚拟场景中的多个位置之间移动;第二获取模块,用于获取所述目标对象对应的第一位置信息和第二位置信息,其中,所述第一位置信息用于表示第一位置集合,所述第一位置集合包括所述虚拟场景中所述目标对象从当前位置允许被移动到的位置,所述第二位置信息用于表示所述第一位置集合上的当前虚拟对象组合,所述当前虚拟对象组合用于表示所述第一位置集合中的每个位置上当前是否存在所述一局对战游戏中的虚拟对象;确定模块,用于在为所述目标对象的所述当前位置预先获取到的多个目标位置集合中确定出与所述第二位置信息对应的第二位置集合,其中,所述多个目标位置集合中的每个目标位置集合包括在所述第一位置集合上存在的一种虚拟对象组合的条件下,所述目标对象从所述当前位置允许被移动到的位置;移动模块,用于控制所述目标对象从所述当前位置移动到从所述第二位置集合中选取出的一个位置上。
根据本发明实施例的又一方面,还提供了一种存储介质,上述存储介质存储有计算机程序,上述计算机程序被设置为运行时执行上述的方法。
根据本发明实施例的另一方面,还提供了一种电子装置,包括存储器、处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过所述计算机程序执行上述的方法。
在本发明实施例中,采用预先获取在不同的对局场景下对战游戏中的虚拟对象在合法位置上的合法着法的方式,通过在客户端上运行一局对战游戏的过程中,获取一局对战游戏中目标对战方的多个虚拟对象中待操作的目标对象,其中,多个虚拟对象被设置为由目标对战方控制在一局对战游戏的虚拟场景中的多个位置之间移动;获取目标对象对应的第一位置信息和第二位置信息,其中,第一位置信息用于表示第一位置集合,该第一位置集合包括虚拟场景中目标对象从当前位置允许被移动到的位置组成的第一位置集合,第二位置信息用于表示第一位置集合上的当前虚拟对象组合,当前虚拟对象组合用于表示第一位置集合中的每个位置上当前是否存在一局对战游戏中的虚拟对象;在为目标对象的当前位置预先获取到的多个目标位置集合中确定出与第二位置信息对应的第二位置集合,其中,多个目标位置集合中的每个目标位置集合包括在第一位置集合上存在的一种虚拟对象组合的条件下,目标对象从当前位置允许被移动到的位置;控制目标对象从当前位置移动到从第二位置集合中选取出的一个位置上,由于不需要根据传统规则遍历所有虚拟对象,达到了降低生成合法着法的计算复杂度的目的,从而实现了提高合法着法生成效率的技术效果,进而解决了相关技术中的对战游戏中由于每一步生成着法时,都需要遍历对战的虚拟场景中的所有虚拟对象,导致着法生成效率低下的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种虚拟对象的控制方法的应用环境的示意图;
图2是根据本发明实施例的一种可选的虚拟对象的控制方法的流程示意图;
图3是根据本发明实施例的一种可选的虚拟对象的控制方法的示意图;
图4是根据本发明实施例的另一种可选的虚拟对象的控制方法的示意图;
图5是根据本发明实施例的又一种可选的虚拟对象的控制方法的示意图;
图6是根据本发明实施例的又一种可选的虚拟对象的控制方法的示意图;
图7是根据本发明实施例的又一种可选的虚拟对象的控制方法的示意图;
图8是根据本发明实施例的又一种可选的虚拟对象的控制方法的示意图;
图9是根据本发明实施例的另一种可选的虚拟对象的控制方法的流程示意图;
图10是根据本发明实施例的又一种可选的虚拟对象的控制方法的流程示意图;
图11是根据本发明实施例的又一种可选的虚拟对象的控制方法的示意图;
图12是根据本发明实施例的一种可选的虚拟对象的控制装置的结构示意图;
图13是根据本发明实施例的一种可选的电子装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本发明实施例中,提供了一种上述虚拟对象的控制方法的实施例。作为一种可选的实施方式,该虚拟对象的控制方法可以但不限于应用于如图1所示的应用环境中。
如图1所示,终端102(客户端)通过网络104与服务器106相连。终端102上运行有对战游戏,用户可以通过操作终端102的方式参与对战游戏中,用户通过终端102操作的对战游戏的一个对战方,服务器106上通过运行特定的游戏***,该游戏***可以包含模拟玩家操作的电脑程序,作为该对战游戏的另一个对战方。对战游戏的虚拟场景中包含多个位置,对战双方可以操作各自的多个虚拟对象在上述多个位置之间移动。
在一局对战游戏的过程中,对战双方可以依次控制自己的一个虚拟对象按照该虚拟对象的移动规则从对战游戏的虚拟场景中的一个位置移动到另一个位置。
在一局对战游戏的过程中,服务器106在执行一次虚拟对象的移动过程中,可以执行以下步骤:
步骤S12,获取一局对战游戏中目标对战方(与服务器106对应的对战方)的多个虚拟对象中待操作的目标对象;
步骤S14,获取目标对象对应的第一位置信息和第二位置信息,其中,第一位置信息用于表示第一位置集合,该第一位置集合包括虚拟场景中目标对象从当前位置允许被移动到的位置组成的第一位置集合,第二位置信息用于表示第一位置集合上的当前虚拟对象组合,当前虚拟对象组合用于表示第一位置集合中的每个位置上当前是否存在一局对战游戏中的虚拟对象;
步骤S16,在为目标对象的当前位置预先获取到的多个目标位置集合中确定出与第二位置信息对应的第二位置集合,其中,多个目标位置集合中的每个目标位置集合包括在第一位置集合上存在的一种虚拟对象组合的条件下,目标对象从当前位置允许被移动到的位置;
步骤S18,控制目标对象从当前位置移动到从第二位置集合中选取出的一个位置上。
可选地,包含模拟玩家操作的电脑程序的游戏***还可以运行在终端102上,即,终端102上运行的对战游戏为单机游戏,对战游戏中包含模拟玩家操作的电脑程序。
可选地,对战游戏的对战双方可以均为服务器上或终端上运行的模拟玩家操作的电脑程序,从而便于对对战游戏的性能进行测试。
可选地,在本实施例中,上述终端可以包括但不限于以下至少之一:手机、平板电脑、笔记本电脑、台式PC机、及用于运行对战游戏的硬件设备。上述网络可以包括但不限于以下至少之一:有线网络和/或无线网络,上述有线网络可以包括但不限于以下至少之一:广域网、城域网、局域网。上述无线网络可以包括但不限于:蓝牙、WIFI及其他实现无线通信的网络,上述服务器可以包括但不限于:上述对战游戏的后台服务器,用于模拟对战游戏的对战方的服务器。上述只是一种示例,本实施例对此不做任何限定。
根据本发明实施例的一方面,提供了一种虚拟对象的控制方法,该虚拟对象的控制方法可以应用于如图1所示的终端102或服务器106中,如图2所示,该方法包括:
S202,在客户端上运行一局对战游戏的过程中,获取一局对战游戏中目标对战方的多个虚拟对象中待操作的目标对象,其中,多个虚拟对象被设置为由目标对战方控制在一局对战游戏的虚拟场景中的多个位置之间移动;
S204,获取目标对象对应的第一位置信息和第二位置信息,其中,第一位置信息用于表示第一位置集合,该第一位置集合虚拟场景中目标对象从当前位置允许被移动到的位置组成的第一位置集合,第二位置信息用于表示第一位置集合上的当前虚拟对象组合,当前虚拟对象组合用于表示第一位置集合中的每个位置上当前是否存在一局对战游戏中的虚拟对象;
S206,在为目标对象的当前位置预先获取到的多个目标位置集合中确定出与第二位置信息对应的第二位置集合,其中,多个目标位置集合中的每个目标位置集合包括在第一位置集合上存在的一种虚拟对象组合的条件下,目标对象从当前位置允许被移动到的位置;
S208,控制目标对象从当前位置移动到从第二位置集合中选取出的一个位置上。
可选地,在本实施例中,上述虚拟对象的控制方法可以但不限于:棋类游戏(如象棋,军旗,国际象棋等棋牌类)的AI(Artificial Intelligence,人工智能)***中,其中,AI是研究如何使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等),游戏AI就是一种模拟玩家操作的电脑程序;各类游戏中需要使用到类似深度搜索的场景中,其中,深度优先搜索即为沿着树的深度遍历树的节点位置,尽可能深的搜索树的分支。上述仅是一种示例,本实施例中对此不做任何限定。
例如,图3示出了象棋中与AI对局的场景,图3的左侧为象棋的对战界面,图3的右侧为棋盘中棋子的分布数据表示。
下面结合图2对本发明实施例中的虚拟对象的控制方法进行说明。
在步骤S202中,在客户端上运行一局对战游戏的过程中,获取一局对战游戏中目标对战方的多个虚拟对象中待操作的目标对象,其中,多个虚拟对象被设置为由目标对战方控制在一局对战游戏的虚拟场景中的多个位置之间移动。
该对战游戏的虚拟场景中包含多个位置,每个位置可以是特定点(例如,象棋),也可以是单元格。
例如,如图4所示,对战方的虚拟对象可以在如位置A所示的空间格之间移动,移动的方式可以包括但不限于以下至少之一:在直线方向上移动一定个数的单元格;在对角线方向上移动一定个数的单元格;先在直线方向上移动第一个数的单元格,再在对角线方向上移动第二个数的单元格。对战方的虚拟对象可以在如位置a所示的交点之间移动,移动的方式可以包括但不限于以下至少之一:在直线方向上移动一定个数的交点;在对角线方向上移动一定个数的交点;先在直线方向上移动第三个数的交点,再在对角线方向上移动第四个数的交点。
对战游戏可以包括至少两个对战方,每个对战方可以控制(例如,依次控制)该对战游戏的虚拟场景中的一个或多个虚拟对象在多个位置之间进行移动。不同类型的虚拟对象的移动规则可以不同,同一虚拟对象在不同的位置上、不同的对战局面(对战双方控制的虚拟对象在虚拟场景中的不同位置组合)下被允许移动到的位置也可以不同。
例如,如图5所示,对于象棋类对战游戏,可以包含多种虚拟对象,例如,“将(帅)”、“士(仕)”、“象(相)”、“马”、“车”、“炮”、“兵(卒)”。不同类型的虚拟对象被允许移动的方式不同,例如,“马”和“炮”被允许移动的方式不同。同一种虚拟对象在不同的位置上、不同的对战局面下被允许移动到的位置也可以不同。例如,“车”在位置A和位置B上被允许移动到的位置可以不同,在位置C上有“炮”和没有“炮”的对战局面下,位置A上的“车”被允许移动到的位置也可以不同。
每次虚拟对象的移动结果可以是:仅改变对战格局,改变对战格局的同时淘汰掉移动到位置或者相关位置上的其他对战方的虚拟对象,或者,改变对战格局的同时结束游戏(移动后的一个对战方满足胜利条件)。
在客户端上运行一局对战游戏的过程中,可以由对战方依次移动各自的一个虚拟对象在对战游戏的虚拟场景中的多个位置之间移动。在轮到目标对战方(例如,通过AI游戏***模拟的对战方)移动虚拟对象的情况下,获取一局对战游戏中目标对战方的多个虚拟对象中待操作的目标对象。
获取的方式可以是:首先确定出多个虚拟对象中允许移动的一个或多个允许移动虚拟对象;从一个或多个允许移动虚拟对象中选取出目标对象。选取的方式可以是随机选取,也可以是对每个允许移动虚拟对象进行评分,选取评分最高的允许移动虚拟对象作为目标对象。评分的方式可以是根据允许移动虚拟对象的种类、所在位置并结合当前对战局面对允许移动虚拟对象进行评分。上述仅为示例,本实施例对此不作具体限定。
步骤S204,获取目标对象对应的第一位置信息和第二位置信息,其中,第一位置信息用于表示第一位置集合,该第一位置集合包括虚拟场景中目标对象从当前位置允许被移动到的位置,第二位置信息用于表示第一位置集合上的当前虚拟对象组合,当前虚拟对象组合用于表示第一位置集合中的每个位置上当前是否存在一局对战游戏中的虚拟对象。
根据目标对象的移动规则,在虚拟场景中该目标对象从当前位置允许被移动到的位置是可以确定的。第一位置集合包括:在对战游戏的虚拟场景中目标对象从当前位置允许移动到的位置(即,第一类位置)。
例如,图6中的“车”允许被移动到的位置为:“车”所在位置所属的行和列组成的十字区域上的位置,图6中的“炮”允许被移动到的位置为:“炮”所在位置所属的行和列组成的十字区域上的位置。
目标对象从当前位置到允许被移动到的位置的移动路径上的位置可以包括第一类位置,也可能包括除第一类位置以外的其他位置(第二类位置)。因此,除了虚拟场景中目标对象从当前位置允许被移动到的位置以外,第一位置集合还可以包括:第二类位置,该第二类位置为目标对象从当前位置到每个第一类位置的移动路径上除了第一类位置以外的其他位置。第二类位置可以认为是影响目标对象是否能从当前位置移动到每个第一类位置的、除第一类位置以外的位置。
例如,如图7所示,目标对象为当前棋局中的“马”,方框所标识的位置为第一类位置,圆圈所标识的位置为第二类位置。
在第一位置集合的每个位置上,可能存在有虚拟对象,也可能没有虚拟对象。根据当前的对战局面,可以确定出第一位置集合中的每个位置上当前是否存在虚拟对象。当前虚拟对象组合可以用于表示第一位置集合中的每个位置上当前是否存在一局对战游戏中的虚拟对象。
在获取到目标对象之后,可以获取与目标对象对应的第一位置信息和第二位置信息,第一位置信息用于表示第一位置集合,第二位置信息用于表示第一位置集合上的当前虚拟对象组合。
在步骤S206中,在为目标对象的当前位置预先获取到的多个目标位置集合中确定出与第二位置信息对应的第二位置集合,其中,多个目标位置集合中的每个目标位置集合包括在第一位置集合上存在的一种虚拟对象组合的条件下,目标对象从当前位置允许被移动到的位置。
在获取到第二位置信息之后,可以为目标对象的当前位置预先获取到的多个目标位置集合中确定出与第二位置信息对应的第二位置集合。
多个目标位置集合中的每个目标位置集合可以包括:在第一位置集合上存在的一种虚拟对象组合的条件下,目标对象从当前位置允许被移动到的位置。
每个目标位置集合对应与第一位置集合上存在的一种虚拟对象组合,一个目标位置集合包括:在其对应的虚拟对象组合的条件下,目标对象从当前位置允许被移动到的位置。第一位置集合上存在的一种虚拟对象组合用于表示:第一位置集合中的每个位置上是否存在对战游戏中的虚拟对象的一种组合。
可选地,在本申请的一种可选实施例中,对于目标对象的当前位置,在获取一局对战游戏中目标对战方的多个虚拟对象中待操作的目标对象之前,可以为目标对象的当前位置预先获取到多个目标位置集合;并存储多个目标位置集合。
预先获取的方式可以是:由除客户端所在的终端以外的其他设备执行用于获取与目标对象的当前位置对应的多个目标位置集合的目标操作,得到与目标对象的当前位置对应的多个目标位置集合,也可以是由客户端所在的终端执行用于获取与目标对象的当前位置对应的多个目标位置集合的目标操作,得到与目标对象的当前位置对应的多个目标位置集合。
可选地,在本申请的一种可选实施例中,为目标对象的当前位置获取到多个目标位置集合包括:获取在第一位置集合上存在的每一种虚拟对象组合的条件下,目标对象从当前位置允许被移动到的位置,得到多个目标位置集合。
为了得到多个目标位置结合,可以通过枚举或者求解空间的方式获取多个目标位置集合:针对第一位置集合上存在的每一种虚拟对象组合,分别获取与该虚拟对象组合对应的目标位置集合。
可选地,在本申请的一种可选实施例中,获取在第一位置集合上存在的每一种虚拟对象组合的条件下,目标对象从当前位置允许被移动到的位置,得到多个目标位置集合包括:根据目标对象在对战游戏的虚拟场景中的移动方式,确定出在第一位置集合上存在的每一种虚拟对象组合的条件下,目标对象在当前位置上允许被移动到的位置,得到多个目标位置集合。
不同类型的虚拟对象的移动方式可能并不相同,因此,不同类型的目标对象,可以根据目标对象在对战游戏的虚拟场景中的移动方式,确定出在第一位置集合上存在的每一种虚拟对象组合的条件下,目标对象在当前位置上允许被移动到的位置。
同种类型的虚拟对象,其移动方式可以包括多种。目标对象在当前位置上允许被移动到的位置可以包括:根据目标对象在对战游戏的虚拟场景中的不同移动方式,确定出在第一位置集合上存在的每一种虚拟对象组合的条件下,目标对象在当前位置上允许被移动到的位置的合集。
为了降低计算的复杂度和较少对存储空间的占用,第一位置集合上存在的每一种虚拟对象组合可以不区分是本对战方的虚拟对象还是其他对战方的虚拟对象。在确定允许被移动到的位置时将所有的虚拟对象均作为其他对战方的虚拟对象进行处理。
例如,如图8所示,图8(a)中示出了“车”(已圈出)在当前位置的一个目标位置集合,图8(b)中示出了“炮”(已圈出)在当前位置的一个目标位置集合。由于“炮”的移动方式包括:平移和隔一个棋子攻击,因此,确定出的目标位置集合为多种移动方式确定出的允许被移动到的位置的合集。
需要说明的是,第一类位置集合可以包括虚拟场景中与目标对象从当前位置移动到允许被移动到的位置的相关位置,相关位置可以包括:目标对象从当前位置移动到允许被移动到的位置的移动路径上的所有位置。为了减少计算的复杂度,可以在第一类位置集合可以包括目标对象从当前位置移动到允许被移动到的位置的移动路径上的所有位置中去除特定位置后的剩余位置,在特定位置上是否有虚拟对象不会影响虚拟对象在移动路径上的行动。
可选地,在本申请的一种可选实施例中,在获取一局对战游戏中目标对战方的多个虚拟对象中待操作的目标对象之前,可以获取多个位置中目标对象被允许放置的第一放置位置集合,其中,第一放置位置集合包括当前位置;为第一放置位置集合中的每个第一放置位置分别获取到对应的多个第一移动位置集合,其中,多个第一移动位置集合中的每个第一移动位置集合包括在第三位置集合上存在的一种虚拟对象组合的条件下,目标对象从每个第一放置位置允许被移动到的位置,第三位置集合包括目标对象从每个第一放置位置允许被移动到的位置。
在对战游戏的虚拟场景中的多个位置中,目标对象的合法位置是可以预先确定的,上述合法位置可以有多个(上述合法位置包括目标对象的当前位置)。在运行一局对战游戏之前,除了预先获取与目标对象的当前位置对应的多个目标位置集合,还可以预先获取与目标对象的其他合法位置对应的多个位置集合(多个第一移动位置集合)。
根据对战游戏的游戏规则,目标对象在虚拟场景中的多个位置中被允许放置的位置是可以预先确定的。可以预先获取虚拟场景的多个位置中目标对象被允许放置的第一放置位置集合。
作为一种可选的实施方式,可以根据虚拟场景的多个位置信息和用于表示目标对象的移动方式的配置信息,确定出第一放置位置集合。
例如,使用虚拟场景的多个位置信息和用于表示目标对象的移动方式的配置信息模拟对战游戏的运行,将对战过程中目标对象被移动到的位置集合,作为第一放置位置集合。为保证第一放置位置集合确定的准确性,可以多次模拟对战游戏的运行,第一放置位置集合为多次运行得到的目标对象被移动到的位置集合的合集。
作为另一种可选的实施方式,可以从本地读取或者从其他设备接收用于标识第一放置位置集合的配置信息。上述配置信息可以由用户提前输入。
例如,对于象棋游戏,目标对象为“车”,可以从本地读取与“车”对应的配置信息,该配置信息由用户提前输入,表示与“车”对应的放置位置集合为包括:棋盘上的所有位置。
在获取到第一放置位置集合中的每个第一放置位置,可以依次获取与该第一放置位置对应的多个第一放置位置集合。第一放置位置的次序可以是:第一放置位置编号的次序,第一放置位置在棋盘上从上到下、从左到右的次序。上述仅为示例,本实施例中对此不作具体限定。
对于第一移动位置集合中的每个第一移动位置,获取与其对应的多个第一移动位置集合的方式与上述获取与当前位置对应的多个目标位置集合的方式是类似的。
多个第一移动位置集合中的每个第一移动位置集合对应于在目标对象放置在该第一放置位置上时第三位置集合上存在的一种虚拟对象组合,该第三位置集合包括目标对象从每个第一放置位置允许被移动到的位置。可以根据目标对象在对战游戏的虚拟场景中的移动方式,确定出在第三位置集合上存在的每一种虚拟对象组合的条件下,目标对象在该第一放置位置上允许被移动到的位置,得到多个第一移动位置集合。
在为每个第一放置分别获取到对应的多个第一移动位置集合之后,可以存储为第一放置位置集合中的每个第一放置位置分别获取到的对应的多个第一移动位置集合,存储的方式可以是:存储在本地、发送给其他设备进行存储。
可选地,在本申请的一种可选实施例中,对战游戏中虚拟对象的种类可以有一种,也可以有多种。在虚拟对象的种类为多种的情况下,可以为每一种虚拟对象分别获取对应的多个第二移动位置集合。
在为多种虚拟对象分别获取对应的第二移动位置集合时,可以确定出对战游戏中包含的虚拟对象种类。确定的方式可以是:对于所有的虚拟对象分别确定其种类,对确定的种类进行统计,确定出包含的虚拟对象的种类;也可以是:根据对战游戏的配置信息,确定出包含的虚拟对象种类。
在确定出包含的虚拟对象种类之后,可以分别按照为目标对象获取对应的多个第一移动位置集合的方式,为各个种类的目标对象获取对应的第二移动位置集合:对于多种虚拟对象中的每种虚拟对象分别获取在多个位置中每种虚拟对象被允许放置的第二放置位置集合;为每种虚拟对象的第二放置位置集合中的每个第二放置位置分别获取到对应的多个第二移动位置集合,其中,多个第二移动位置集合中的每个第二移动位置集合包括在第四位置集合上存在的一种虚拟对象组合的条件下,每种虚拟对象从每个第二放置位置允许被移动到的位置,第四位置集合包括每种虚拟对象从每个第二放置位置允许被移动到的位置。
获取第二放置位置集合的方式与获取第一放置位置集合的方式类似,获取多个第二移动位置集合的方式与获取多个第一移动位置集合的方式类似,在此不做赘述。
在获取到每种虚拟对象的第二放置位置集合中的每个第二放置位置分别获取到的对应的多个第二移动位置集合之后,可以将其进行存储。存储的方式可以是:存储在本地、发送给其他设备进行存储。不同种类的虚拟对象的第二移动位置集合可以存储在相同的设备中,也可以存储在不同的设备中。
可选地,为每种虚拟对象获取对应的着法数据(着法数据用于表示每种虚拟对象的第二放置位置集合中的每个第二放置位置分别对应的多个第二移动位置集合)的操作可以是由客户端所在的终端执行的,也可以是由服务器执行的。
作为一种可选的实施方式,在由客户端所在的终端执行的情况下,在获取到每种虚拟对象对应的着法数据之后,可以将获取到的着法数据保存在终端本地。
作为另一种可选的实施方式,在由服务器执行的情况下,在获取到每种虚拟对象对应的着法数据之后,可以将获取到的着法数据保存在服务器中,或者发送给客户端;也可以根据虚拟对象的不同,将不同种类的虚拟对象对应的着法数据发送给多个服务器,以减少服务器的存储压力,并提高虚拟对象的控制效率。
对于预先获取到的多个目标位置集合,可以通过执行匹配操作,确定出第二位置集合:使用第二位置信息与依次用于表示第一位置集合上存在的一种虚拟对象组合的虚拟对象组合信息进行匹配,从而确定出与匹配到的虚拟对象组合信息对应的目标位置集合(第二位置集合)。
确定第二位置集合的方式可以是由客户端所在的终端使用保存的多个目标位置集合进行确定;也可以是由客户端将第二位置信息发送给服务器,由服务器使用保存的多个目标位置集合进行确定,并将确定出的第二位置集合发送给客户端所在的终端;还可以由客户端将第二位置信息发送给控制服务器,由控制服务器根据目标对象的类型发送给对应的数据服务器,由该数据服务器使用保存的多个目标位置集合进行确定,并将确定出的第二位置集合经由控制服务器发送给客户端所在的终端。上述仅为示例,本实施例对此不作具体限定。
在步骤S208中,控制目标对象从当前位置移动到从第二位置集合中选取出的一个位置上。
在获取到第二位置集合之后,可以从第二位置中选取一个位置作为目标对象移动的目标移动位置,并控制目标对象由当前位置移动到目标移动位置。
可选地,控制目标对象从当前位置移动到从第二位置集合中选取出的一个位置上包括:在第二位置集合中删除掉多个虚拟对象所在的位置,得到第五位置集合;从第五位置集合选取出目标移动位置;控制目标对象由当前位置移动到目标移动位置。
在选取目标对象移动的目标移动位置时,第二位置集合中的位置上可能包含有本对战方的虚拟对象所在的位置。根据对战游戏的规则,这些位置是不允许目标对象移动到的位置。将这些位置从第二位置集合中删除掉,得到第五位置集合。
在得到第五位置集合之后,第五位置集合中可以包含一个或多个候选位置。在第五位置集合中包含一个候选位置的情况下,该候选位置即为目标移动位置,控制目标对象从当前位置移动到该候选位置上。在第五位置集合中包含多个候选位置的情况下,可以从多个候选位置中选取出一个位置作为目标移动位置,控制该目标对象从当前位置移动到选取出的目标移动位置上。
从多个候选位置中选取出一个目标移动位置的方式可以有多种,例如,可以通过随机选取的方式从多个候选位置随机选取出一个目标移动位置。又例如,还可以通过值函数对各候选位置进行评分(对目标对象移动至候选位置后的局面进行评分),从而选择最大分数的候选位置(目标对象的着法)作为目标移动位置。
在本实施例中,采用预先获取在不同的对局场景下对战游戏中的虚拟对象在合法位置上的合法着法的方式,通过在客户端上运行一局对战游戏的过程中,获取一局对战游戏中目标对战方的多个虚拟对象中待操作的目标对象,其中,多个虚拟对象被设置为由目标对战方控制在一局对战游戏的虚拟场景中的多个位置之间移动;获取目标对象对应的第一位置信息和第二位置信息,其中,第一位置信息用于表示第一位置集合,该第一位置集合包括虚拟场景中目标对象从当前位置允许被移动到的位置组成的第一位置集合,第二位置信息用于表示第一位置集合上的当前虚拟对象组合,当前虚拟对象组合用于表示第一位置集合中的每个位置上当前是否存在一局对战游戏中的虚拟对象;在为目标对象的当前位置预先获取到的多个目标位置集合中确定出与第二位置信息对应的第二位置集合,其中,多个目标位置集合中的每个目标位置集合包括在第一位置集合上存在的一种虚拟对象组合的条件下,目标对象从当前位置允许被移动到的位置;控制目标对象从当前位置移动到从第二位置集合中选取出的一个位置上,解决了相关技术中的对战游戏中由于每一步生成着法时,都需要遍历对战的虚拟场景中的所有虚拟对象,导致着法生成效率低下的技术问题,降低了生成合法着法的计算复杂度,提高了合法着法生成效率。
作为一种可选的技术方案,在获取一局对战游戏一局对战游戏中目标对战方的多个虚拟对象中待操作的目标对象之前,上述方法还包括:
S1,为目标对象的当前位置获取到多个目标位置集合;
S2,存储多个目标位置集合。
通过本发明实施例,通过为目标对象的当前位置获取多个目标位置集合并存储,方便了多个目标位置集合的使用,提高了第二位置集合的获取效率。
作为一种可选的技术方案,为目标对象的当前位置获取到多个目标位置集合包括:
S11,获取在第一位置集合上存在的每一种虚拟对象组合的条件下,目标对象从当前位置允许被移动到的位置,得到多个目标位置集合。
通过本发明实施例,通过求解每一种虚拟对象组合下的目标对象从当前位置允许被移动到的位置,可以提高了多个目标位置集合确定的准确性。
作为一种可选的技术方案,获取在第一位置集合上存在的每一种虚拟对象组合的条件下,目标对象从当前位置允许被移动到的位置,得到多个目标位置集合包括:
S111,根据目标对象在对战游戏的虚拟场景中的移动方式,确定出在第一位置集合上存在的每一种虚拟对象组合的条件下,目标对象在当前位置上允许被移动到的位置,得到多个目标位置集合。
通过本发明实施例,根据目标对象在对战游戏的虚拟场景中的移动方式得到多个目标位置集合,可以适用于不同移动方式的目标对象,提高了多个目标位置集合确定的灵活性和准确性。
作为一种可选的技术方案,在获取一局对战游戏中目标对战方的多个虚拟对象中待操作的目标对象之前,上述方法还包括:
S1,获取多个位置中目标对象被允许放置的第一放置位置集合,其中,第一放置位置集合包括当前位置;
S2,为第一放置位置集合中的每个第一放置位置分别获取到对应的多个第一移动位置集合,其中,多个第一移动位置集合中的每个第一移动位置集合包括在第三位置集合上存在的一种虚拟对象组合的条件下,目标对象从每个第一放置位置允许被移动到的位置,第三位置集合包括目标对象从每个第一放置位置允许被移动到的位置;
S3,存储为第一放置位置集合中的每个第一放置位置分别获取到的对应的多个第一移动位置集合。
通过本发明实施例,通过生成目标对象在虚拟对象的所有合法位置的合法着法,可以满足目标对象在所有合法位置的控制需求,提高目标对象的控制效率。
作为一种可选的技术方案,在获取一局对战游戏中目标对战方的多个虚拟对象中待操作的目标对象之前,上述方法还包括:
S1,为对战游戏的多种虚拟对象中的每种虚拟对象分别获取在多个位置中每种虚拟对象被允许放置的第二放置位置集合,其中,多种虚拟对象包括目标对象,目标对象对应的第二放置位置集合包括当前位置;
S2,为每种虚拟对象的第二放置位置集合中的每个第二放置位置分别获取到对应的多个第二移动位置集合,其中,多个第二移动位置集合中的每个第二移动位置集合包括在第四位置集合上存在的一种虚拟对象组合的条件下,每种虚拟对象从每个第二放置位置允许被移动到的位置,第四位置集合包括每种虚拟对象从每个第二放置位置允许被移动到的位置;
S3,存储为每种虚拟对象的第二放置位置集合中的每个第二放置位置分别获取到的对应的多个第二移动位置集合。
通过本发明实施例,通过预先获取所有类棋子的合法着法,可以提高对战游戏的执行效率。
作为一种可选的技术方案,控制目标对象从当前位置移动到从第二位置集合中选取出的一个位置上包括:
S1,在第二位置集合中删除掉多个虚拟对象所在的位置,得到第五位置集合;
S2,从第五位置集合选取出目标移动位置;
S3,控制目标对象由当前位置移动到目标移动位置。
通过本发明实施例,通过删除掉第二位置集合中的己方虚拟对象所在的位置,避免由于目标对象移动到己方虚拟对象所在的位置导致的对战游戏执行错误,提高目标对象控制的准确性。
下面结合具体示例对本申请实施例中的虚拟对象的控制方法进行说明。在本示例中,对战游戏为中国象棋,虚拟对象为棋盘上的棋子。对战双方用红方和蓝方表示,其中一方为电脑(由AI***控制对战)。该对战游戏可以通过运行AI***对所有棋子进行着法生成(利用象棋规则生成AI合法着法的过程),得到所有棋子的合法着法。
所有棋子的着法生成可以由服务器执行。在服务器启动象棋AI时,生成所有棋子的合法着法。可以将生成的所有棋子的合法着法作为客户端的配置信息保存在客户端中或者发送给客户端(可以适用于离线游戏);也可以将生成的所有棋子的合法着法保存到一个或多个服务器中(可以包括本服务器,也可以不包括本服务器),并根据客户端的请求进行着法匹配(对运行客户端的终端的软硬件条件要求小)。
所有棋子的着法生成可以由客户端所在的终端执行。在检测到客户端被打开时,触发启动象棋AI,生成所有棋子的合法着法,并将生成的所有棋子的合法着法保存在本地。
本示例中的虚拟对象的控制方法可以对着法生成进行算法优化,可以包括两个流程:着法生成、对战过程中的着法使用。分别对本示例中的虚拟对象的控制方法的两个流程进行说明。
如图9所示,着法生成的流程包括以下步骤:
步骤S902,遍历棋子种类。
不同对战方相对应的棋子虽然名称可能不同(例如,“将”和“帅”),但是实际上是同类棋子。在进行着法生成时,可以仅针对其中一个对战方使用的棋子进行着法生成。
通过遍历一个对战方的所有棋子(也可以遍历所有对战方的所有棋子),得到棋子的种类。
步骤S904,生成Mask。
首先可以处理所有棋子在棋盘上的合法位置。例如,车、马、炮是可以走到棋盘任意位置,而士、象、将、兵等只能走到部分位置,可以做特殊处理。
然后,对于不同类的棋子,分别生成各类棋子在所有合法位置上的Mask。Mask是一种BitBoard,而BitBoard利用90(10×9)个bit来对应中国象棋的每个位置,可以通过0和1来表示该位置的属性,例如,该位置是否有特定属性的棋子。而Mask是根据每个位置与行动棋子的行动是否相关生成,有关的位置被置为1,无关的位置被置为0。
例如,“车”的Mask,由于棋盘上所有位置都是“车”的合法位置,所有需要生成棋盘上90(10×9)个位置的Mask。根据车的行动规则,所以“车”行动有关的位置为“车”所在位置所属的行和列组成的十字,将这些位置对应的bit置1,其余位置对应的bit置0,生成“车”的Mask。如图6所示的“车”,“车”的Mask为第6行和第2列所有的位置被置1,其余位置被置0的“十字架”。这样,“车”的Mask是90个这种“十字架”,每个“十字架”是一个BitBoard。
例如,“马”的Mask,由于棋盘上所有位置都是“马”的合法位置,所有需要生成棋盘上90(10×9)个位置的Mask。根据马的行动规则,所以“马”行动有关的位置为“马”所在位置相邻的四个位置,将这些位置对应的bit置1,其余位置对应的bit置0,生成“马”的Mask。如图7所示的“马”,“马”的Mask为与“马”相邻的四个位置为1,其余位置为0的BitBoard。
步骤S906,根据棋子种类位置生成Key。
对应某类棋子的某个合法位置,与该类棋子的该合法位置对应的Mask中为1的位置上可能有两种情况(有子,无子),那么,就有2n种情况(n为该Mask中1的个数,每个Mask对应于2n个Key)。对于每一种情况,该Mask为1的位置上有子置为1,无子置为0,这样就生成一个BitBoard,作为Key。遍历该类棋子的所有情况,可以生成 个Key(m为该类棋子的合法位置的个数,ni为与第i个合法位置对应的Mask中1的个数)。
例如,当处理某个位置上的“车”时,行和列还空出了8+9个位置,每个位置有两种情况(有子,无子),也就是一共217(131072)种情况,与该位置对应的Mask的“十字架”上有子编码为1,无子编码为0,其他位置全部置0,这样就生成一个BitBoard,作为Key。遍历生成后“车”一共有90*131072个Key。
步骤S908,生成着法。
对于每个Key,根据该Key对应的棋子的走法,确定出与该Key对应的Mask的所有为1的位置上是否是合法位置,合法位置为1,非法位置为0,可以生成与该Key对应的走法BitBoard。
例如,对于“车”,共有90*131072个Key,每个Key根据车的规则生成走法BitBoard,十字架上合法位置为1,非法位置为0。图6所示的“车”的走法BitBoard如图8的(a)中所示,标点为走法BitBoard中为1的位置,其余为0的位置。
由于BitBoard没有敌我方信息(均按敌方棋子进行处理),所以生成的走法BitBoard中标1的位置上存在本方棋子的情况。这种情况可以在后续通过已方棋子位置进行排除。
在对战的过程中,可以轮到电脑方移动棋子时,电脑方可以先确定出待移动的棋子(目标对象),再由预生成着法中确定出待执行的着法。
如图10所示,对战过程中的着法使用流程可以包括以下步骤:
步骤S1002,生成Key。
通过Mask[Position]&(rBitBoard|bBitBoard)获得盘面棋子的着法Key,其中,Mask[Position]为该棋子在当前位置上的Mask,rBitBoard为红方棋子所在位置的BitBoard,bBitBoard为蓝方棋子所在位置的BitBoard。
例如,如图6所示的棋局,对于待移动的棋子为“车”的情况,使用该棋子在该位置的Mask与局面中所有棋子做与操作后,得到该位置的行动Key,如图11所示。
步骤S1004,获取预生成着法。
通过该Key可以获得第二步中提前生成的着法bitBoard。由于某个棋子在某个位置的Key和着法bitBoard是一一对应的关系,可以通过Key与预生成的着法bitBoard匹配,获取到与该Key对应的着法bitBoard。
对于生成的着法未保存在客户端所在的终端上的情况,获取预生成着法的方式可以是:由客户端将生成的Key发送给服务器,由服务器使用客户端生成的Key获取预生成着法,并将获取的预生成着法发送给客户端。
步骤S1006,排除己方位置。
可以执行着法bitBoard&(-selfBitBoard),其中selfBitBoard为己方棋子所在位置,也就是rBitBoard或bBitBoard。这就能排除己方棋子所在位置,剩下的为该棋子在该盘面下的合法走法。
例如,通过排除图8的(a)中标点的“兵”(与“车”为己方棋子,见图11),得到“车”的合法着法集合。
对于合法着法集合中的各合法着法,可以通过值函数对局面评分,从而选择最大分数的着法进行行动。
本示例中的通过搭建基于BitBoard的着法生成算法,在AI启动时生成所有棋子在合法位置的所有着法,并利用BitBoard来表示,生成所有棋子的Mask,在游戏中利用Mask得到行动棋子相关的位置,并生成BitBoard作为Key,利用该Key获得已经生成的合法着法,并在合法着法中排除己方棋子所在的位置,就是该棋子下一步的合法着法,相对于传统遍历生成算法,本示例中的算法执行效率明显提升。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
根据本发明实施例的又一方面,还提供了一种用于实施上述虚拟对象的控制方法的虚拟对象的控制装置。如图12所示,该装置包括:
(1)第一获取模块1202,用于在客户端上运行一局对战游戏的过程中,获取一局对战游戏中目标对战方的多个虚拟对象中待操作的目标对象,其中,多个虚拟对象被设置为由目标对战方控制在一局对战游戏的虚拟场景中的多个位置之间移动;
(2)第二获取模块1204,用于获取目标对象对应的第一位置信息和第二位置信息,其中,第一位置信息用于表示第一位置集合,第一位置集合虚拟场景中目标对象从当前位置允许被移动到的位置,第二位置信息用于表示第一位置集合上的当前虚拟对象组合,当前虚拟对象组合用于表示第一位置集合中的每个位置上当前是否存在一局对战游戏中的虚拟对象;
(3)确定模块1206,用于在为目标对象的当前位置预先获取到的多个目标位置集合中确定出与第二位置信息对应的第二位置集合,其中,多个目标位置集合中的每个目标位置集合包括在第一位置集合上存在的一种虚拟对象组合的条件下,目标对象从当前位置允许被移动到的位置;
(4)移动模块1208,用于控制目标对象从当前位置移动到从第二位置集合中选取出的一个位置上。
可选地,在本实施例中,上述虚拟对象的控制装置可以但不限于:棋类游戏(如象棋,军旗,国际象棋等棋牌类)的AI***中;各类游戏中需要使用到类似深度搜索的场景中。上述仅是一种示例,本实施例中对此不做任何限定。
可选地,在本实施例中,第一获取模块1202可以用于执行上述步骤S202,第二获取模块1204可以用于执行上述步骤S204,确定模块1206可以用于执行上述步骤S206,移动模块1208用于执行上述步骤S208。
在本实施例中,采用预先获取在不同的对局场景下对战游戏中的虚拟对象在合法位置上的合法着法的方式,通过在客户端上运行一局对战游戏的过程中,获取一局对战游戏中目标对战方的多个虚拟对象中待操作的目标对象,其中,多个虚拟对象被设置为由目标对战方控制在一局对战游戏的虚拟场景中的多个位置之间移动;获取目标对象对应的第一位置信息和第二位置信息,其中,第一位置信息用于表示第一位置集合,该第一位置集合包括虚拟场景中目标对象从当前位置允许被移动到的位置组成的第一位置集合,第二位置信息用于表示第一位置集合上的当前虚拟对象组合,当前虚拟对象组合用于表示第一位置集合中的每个位置上当前是否存在一局对战游戏中的虚拟对象;在为目标对象的当前位置预先获取到的多个目标位置集合中确定出与第二位置信息对应的第二位置集合,其中,多个目标位置集合中的每个目标位置集合包括在第一位置集合上存在的一种虚拟对象组合的条件下,目标对象从当前位置允许被移动到的位置;控制目标对象从当前位置移动到从第二位置集合中选取出的一个位置上,解决了相关技术中的对战游戏中由于每一步生成着法时,都需要遍历对战的虚拟场景中的所有虚拟对象,导致着法生成效率低下的技术问题,降低了生成合法着法的计算复杂度,提高了合法着法生成效率。
作为一种可选的技术方案,上述装置还包括:
(1)第三获取模块,用于在所述获取所述一局对战游戏一局对战游戏中所述目标对战方的所述多个虚拟对象中待操作的所述目标对象之前,为所述目标对象的所述当前位置获取到所述多个目标位置集合;
(2)第一存储模块,用于存储所述多个目标位置集合。
通过本发明实施例,通过为目标对象的当前位置获取多个目标位置集合并存储,方便了多个目标位置集合的使用,提高了第二位置集合的获取效率。
作为一种可选的技术方案,上第三获取模块还用于获取在第一位置集合上存在的每一种虚拟对象组合的条件下,目标对象从当前位置允许被移动到的位置,得到多个目标位置集合。
通过本发明实施例,通过求解每一种虚拟对象组合下的目标对象从当前位置允许被移动到的位置,可以提高了多个目标位置集合确定的准确性。
作为一种可选的技术方案,第三获取模块包括:
(1)确定单元,用于根据目标对象在对战游戏的虚拟场景中的移动方式,确定出在第一位置集合上存在的每一种虚拟对象组合的条件下,目标对象在当前位置上允许被移动到的位置,得到目标位置集合。
通过本发明实施例,根据目标对象在对战游戏的虚拟场景中的移动方式得到多个目标位置集合,可以适用于不同移动方式的目标对象,提高了多个目标位置集合确定的灵活性和准确性。
作为一种可选的技术方案,上述装置还包括:
(1)第四获取模块,用于在获取一局对战游戏中目标对战方的多个虚拟对象中待操作的目标对象之前,获取多个位置中目标对象被允许放置的第一放置位置集合,其中,第一放置位置集合包括当前位置;
(2)第五获取模块,用于为第一放置位置集合中的每个第一放置位置分别获取到对应的多个第一移动位置集合,其中,多个第一移动位置集合中的每个第一移动位置集合包括在第三位置集合上存在的一种虚拟对象组合的条件下,目标对象从每个第一放置位置允许被移动到的位置,第三位置集合包括目标对象从每个第一放置位置允许被移动到的位置;
(3)第二存储模块,用于存储为第一放置位置集合中的每个第一放置位置分别获取到的对应的多个第一移动位置集合。
通过本发明实施例,通过生成目标对象在虚拟对象的所有合法位置的合法着法,可以满足目标对象在所有合法位置的控制需求,提高目标对象的控制效率。
作为一种可选的技术方案,上述装置还包括:
(1)第六获取模块,用于在获取一局对战游戏中目标对战方的多个虚拟对象中待操作的目标对象之前,为对战游戏的多种虚拟对象中的每种虚拟对象分别获取在多个位置中每种虚拟对象被允许放置的第二放置位置集合,其中,多种虚拟对象包括目标对象,目标对象对应的第二放置位置集合包括当前位置;
(2)第七获取模块,用于为每种虚拟对象的第二放置位置集合中的每个第二放置位置分别获取到对应的多个第二移动位置集合,其中,多个第二移动位置集合中的每个第二移动位置集合包括在第四位置集合上存在的一种虚拟对象组合的条件下,每种虚拟对象从每个第二放置位置允许被移动到的位置,第四位置集合包括每种虚拟对象从每个第二放置位置允许被移动到的位置;
(3)第三存储模块,用于存储为每种虚拟对象的第二放置位置集合中的每个第二放置位置分别获取到的对应的多个第二移动位置集合。
通过本发明实施例,通过预先获取所有类棋子的合法着法,可以提高对战游戏的执行效率。
作为一种可选的技术方案,移动模块1208包括:
(1)删除单元,用于在第二位置集合中删除掉多个虚拟对象所在的位置,得到第五位置集合;
(2)选取单元,用于从第五位置集合选取出目标移动位置;
(3)移动单元,用于控制目标对象由当前位置移动到目标移动位置。
通过本发明实施例,通过删除掉第二位置集合中的己方虚拟对象所在的位置,避免由于目标对象移动到己方虚拟对象所在的位置导致的对战游戏执行错误,提高目标对象控制的准确性。
根据本发明实施例,还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以位于网络中的网络设备。上述网络设备可以是服务器或者终端。上述存储介质被设置为存储有用于执行上述虚拟对象的控制方法的程序代码。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,在客户端上运行一局对战游戏的过程中,获取一局对战游戏中目标对战方的多个虚拟对象中待操作的目标对象,其中,多个虚拟对象被设置为由目标对战方控制在一局对战游戏的虚拟场景中的多个位置之间移动;
S2,获取目标对象对应的第一位置信息和第二位置信息,其中,第一位置信息用于表示第一位置集合,第一位置集合包括虚拟场景中目标对象从当前位置允许被移动到的位置,第二位置信息用于表示第一位置集合上的当前虚拟对象组合,当前虚拟对象组合用于表示第一位置集合中的每个位置上当前是否存在一局对战游戏中的虚拟对象;
S3,在为目标对象的当前位置预先获取到的多个目标位置集合中确定出与第二位置信息对应的第二位置集合,其中,多个目标位置集合中的每个目标位置集合包括在第一位置集合上存在的一种虚拟对象组合的条件下,目标对象从当前位置允许被移动到的位置;
S4,控制目标对象从当前位置移动到从第二位置集合中选取出的一个位置上。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
根据本发明实施例,还提供了一种用于实施上述虚拟对象的控制方法的电子装置,可选地,在本实施例中,上述电子装置可以位于网络中的网络设备。如图13所示,该电子装置包括:一个或多个(图中仅示出一个)处理器1302、存储器1304、以及传输装置1306。该存储器中存储有计算机程序,该处理器被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,在客户端上运行一局对战游戏的过程中,获取一局对战游戏中目标对战方的多个虚拟对象中待操作的目标对象,其中,多个虚拟对象被设置为由目标对战方控制在一局对战游戏的虚拟场景中的多个位置之间移动;
S2,获取目标对象对应的第一位置信息和第二位置信息,其中,第一位置信息用于表示第一位置集合,第一位置集合包括虚拟场景中目标对象从当前位置允许被移动到的位置,第二位置信息用于表示第一位置集合上的当前虚拟对象组合,当前虚拟对象组合用于表示第一位置集合中的每个位置上当前是否存在一局对战游戏中的虚拟对象;
S3,在为目标对象的当前位置预先获取到的多个目标位置集合中确定出与第二位置信息对应的第二位置集合,其中,多个目标位置集合中的每个目标位置集合包括在第一位置集合上存在的一种虚拟对象组合的条件下,目标对象从当前位置允许被移动到的位置;
S4,控制目标对象从当前位置移动到从第二位置集合中选取出的一个位置上。
本领域普通技术人员可以理解,图13所示的结构仅为示意,电子装置也可以是服务器(如,云端服务器)、智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及MID(Mobile Internet Devices,移动互联网设备)、PAD等终端设备。图13其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图13中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图13所示不同的配置。
其中,存储器1304可用于存储软件程序以及模块,如本发明实施例中的虚拟对象的控制方法对应的程序指令/模块,处理器1302通过运行存储在存储器1304内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的虚拟对象的控制方法。存储器1304可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1304可进一步包括相对于处理器1302远程设置的存储器,这些远程存储器可以通过网络连接至处理器1302。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置1306用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1306包括一个NIC(NetworkInterface Controller,网络适配器),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1306为RF(Radio Frequency,射频)模块,其用于通过无线方式与互联网进行通讯。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (13)
1.一种虚拟对象的控制方法,其特征在于,包括:
在客户端上运行一局对战游戏的过程中,获取所述一局对战游戏中目标对战方的多个虚拟对象中待操作的目标对象,其中,所述多个虚拟对象被设置为由所述目标对战方控制在所述一局对战游戏的虚拟场景中的多个位置之间移动;
获取所述目标对象对应的第一位置集合和所述第一位置集合上的当前虚拟对象组合,其中,所述第一位置集合包括所述虚拟场景中位于当前位置上的所述目标对象允许被移动到的位置,所述当前虚拟对象组合用于表示在所述第一位置集合上当前存在的所述一局对战游戏中的虚拟对象;
在预先获取到的多个目标位置集合中确定出在所述第一位置集合上存在所述当前虚拟对象组合的情况下的第二位置集合,其中,所述多个目标位置集合包括:在所述目标对象位于所述当前位置、且在所述第一位置集合上存在的不同虚拟对象组合的情况下的目标位置集合,每个所述目标位置集合包括:在所述第一位置集合上存在的一种虚拟对象组合的条件下,位于所述当前位置上的所述目标对象允许被移动到的位置;
控制所述目标对象从所述当前位置移动到从所述第二位置集合中选取出的一个位置上;
其中,在获取所述一局对战游戏中所述目标对战方的所述多个虚拟对象中待操作的所述目标对象之前,所述方法还包括:
获取所述多个位置中所述目标对象被允许放置的第一放置位置集合,其中,所述第一放置位置集合包括所述当前位置;
在所述目标对象被放置在所述第一放置位置集合中的每个第一放置位置上的情况下,分别获取到对应的第一移动位置集合,共得到多个所述第一移动位置集合,其中,每个所述第一移动位置集合包括:在第三位置集合上存在一种虚拟对象组合的情况下,位于所述第一放置位置上的所述目标对象允许被移动到的位置,所述第三位置集合包括位于所述第一放置位置上的所述目标对象允许被移动到的位置;
存储在所述目标对象被放置在所述第一放置位置集合中的每个第一放置位置的情况下获取到的所述多个第一移动位置集合。
2.根据权利要求1所述的方法,其特征在于,在所述获取所述一局对战游戏一局对战游戏中所述目标对战方的所述多个虚拟对象中待操作的所述目标对象之前,所述方法还包括:
获取在所述目标对象位于所述当前位置时的所述多个目标位置集合;
存储所述多个目标位置集合。
3.根据权利要求2所述的方法,其特征在于,所述获取在所述目标对象位于所述当前位置时的所述多个目标位置集合,包括:
在所述第一位置集合上存在每一种虚拟对象组合的情况下,获取位于所述当前位置上的所述目标对象允许被移动到的位置,得到所述多个目标位置集合。
4.根据权利要求3所述的方法,其特征在于,在所述第一位置集合上存在每一种虚拟对象组合的情况下,获取位于所述当前位置上的所述目标对象允许被移动到的位置,得到所述多个目标位置集合,包括:
在所述第一位置集合上存在每一种虚拟对象组合的情况下,根据所述目标对象在所述对战游戏的虚拟场景中的移动方式,确定出位于所述当前位置上的所述目标对象允许被移动到的位置,得到所述多个目标位置集合。
5.根据权利要求1所述的方法,其特征在于,在获取所述一局对战游戏中所述目标对战方的所述多个虚拟对象中待操作的所述目标对象之前,所述方法还包括:
在所述多个位置中获取多种虚拟对象中的每种虚拟对象被允许放置的第二放置位置集合,共得到多个所述第二放置位置集合,其中,所述多种虚拟对象包括所述目标对象,所述目标对象对应的所述第二放置位置集合包括所述当前位置;
在所述每种虚拟对象被放置在对应的所述第二放置位置集合中的每个第二放置位置上的情况下,分别获取到对应的第二移动位置集合,共得到多个所述第二移动位置集合,其中,每个所述第二移动位置集合包括:在第四位置集合上存在一种虚拟对象组合的情况下,位于所述第二放置位置上的所述每种虚拟对象允许被移动到的位置,所述第四位置集合包括位于所述第二放置位置上的所述每种虚拟对象允许被移动到的位置;
存储在所述每种虚拟对象被放置在对应的所述第二放置位置集合中的每个第二放置位置上的情况下获取到的所述多个第二移动位置集合。
6.根据权利要求1至5中任一项所述的方法,其特征在于,控制所述目标对象从所述当前位置移动到从所述第二位置集合中选取出的一个位置上包括:
在所述第二位置集合中删除掉所述多个虚拟对象所在的位置,得到第五位置集合;
从所述第五位置集合选取出目标移动位置;
控制所述目标对象由所述当前位置移动到所述目标移动位置。
7.一种虚拟对象的控制装置,其特征在于,包括:
第一获取模块,用于在客户端上运行一局对战游戏的过程中,获取所述一局对战游戏中目标对战方的多个虚拟对象中待操作的目标对象,其中,所述多个虚拟对象被设置为由所述目标对战方控制在所述一局对战游戏的虚拟场景中的多个位置之间移动;
第二获取模块,用于获取所述目标对象对应的第一位置集合和所述第一位置集合上的当前虚拟对象组合,其中,所述第一位置集合包括所述虚拟场景中位于当前位置上的所述目标对象允许被移动到的位置,所述当前虚拟对象组合用于表示在所述第一位置集合上当前存在的所述一局对战游戏中的虚拟对象;
确定模块,用于在预先获取到的多个目标位置集合中确定出在所述第一位置集合上存在所述当前虚拟对象组合的情况下的第二位置集合,其中,所述多个目标位置集合包括:在所述目标对象位于所述当前位置、且在所述第一位置集合上存在的不同虚拟对象组合的情况下的目标位置集合,每个所述目标位置集合包括:在所述第一位置集合上存在的一种虚拟对象组合的条件下,位于所述当前位置上的所述目标对象允许被移动到的位置;
移动模块,用于控制所述目标对象从所述当前位置移动到从所述第二位置集合中选取出的一个位置上;
所述装置还包括:
第四获取模块,用于在获取所述一局对战游戏中所述目标对战方的所述多个虚拟对象中待操作的所述目标对象之前,获取所述多个位置中所述目标对象被允许放置的第一放置位置集合,其中,所述第一放置位置集合包括所述当前位置;
第五获取模块,用于在所述目标对象被放置在所述第一放置位置集合中的每个第一放置位置上的情况下,分别获取到对应的第一移动位置集合,共得到多个所述第一移动位置集合,其中,每个所述第一移动位置集合包括:在第三位置集合上存在一种虚拟对象组合的情况下,位于所述第一放置位置上的所述目标对象允许被移动到的位置,所述第三位置集合包括位于所述第一放置位置上的所述目标对象允许被移动到的位置;
第二存储模块,用于存储在所述目标对象被放置在所述第一放置位置集合中的每个第一放置位置的情况下获取到的所述多个第一移动位置集合。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第三获取模块,用于获取在所述目标对象位于所述当前位置时的所述多个目标位置集合;
第一存储模块,用于存储所述多个目标位置集合。
9.根据权利要求8所述的装置,其特征在于,所述第三获取模块包括:
确定单元,用于在所述第一位置集合上存在每一种虚拟对象组合的情况下,获取位于所述当前位置上的所述目标对象允许被移动到的位置,得到所述多个目标位置集合。
10.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第六获取模块,用于在获取所述一局对战游戏中所述目标对战方的所述多个虚拟对象中待操作的所述目标对象之前,在所述多个位置中获取多种虚拟对象中的每种虚拟对象被允许放置的第二放置位置集合,共得到多个所述第二放置位置集合,其中,所述多种虚拟对象包括所述目标对象,所述目标对象对应的所述第二放置位置集合包括所述当前位置;
第七获取模块,用于在所述每种虚拟对象被放置在对应的所述第二放置位置集合中的每个第二放置位置上的情况下,分别获取到对应的第二移动位置集合,共得到多个所述第二移动位置集合,其中,每个所述第二移动位置集合包括:在第四位置集合上存在一种虚拟对象组合的情况下,位于所述第二放置位置上的所述每种虚拟对象允许被移动到的位置,所述第四位置集合包括位于所述第二放置位置上的所述每种虚拟对象允许被移动到的位置;
第三存储模块,用于存储在所述每种虚拟对象被放置在对应的所述第二放置位置集合中的每个第二放置位置上的情况下获取到的所述多个第二移动位置集合。
11.根据权利要求7至10中任一项所述的装置,其特征在于,所述移动模块包括:
删除单元,用于在所述第二位置集合中删除掉所述多个虚拟对象所在的位置,得到第五位置集合;
选取单元,用于从所述第五位置集合选取出目标移动位置;
移动单元,用于控制所述目标对象由所述当前位置移动到所述目标移动位置。
12.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至7任一项中所述虚拟对象的控制方法。
13.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至7任一项中所述虚拟对象的控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910363789.XA CN109999497B (zh) | 2019-04-30 | 2019-04-30 | 虚拟对象的控制方法和装置、存储介质和电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910363789.XA CN109999497B (zh) | 2019-04-30 | 2019-04-30 | 虚拟对象的控制方法和装置、存储介质和电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109999497A CN109999497A (zh) | 2019-07-12 |
CN109999497B true CN109999497B (zh) | 2021-01-15 |
Family
ID=67175366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910363789.XA Active CN109999497B (zh) | 2019-04-30 | 2019-04-30 | 虚拟对象的控制方法和装置、存储介质和电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109999497B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110597389B (zh) * | 2019-09-12 | 2021-04-09 | 腾讯科技(深圳)有限公司 | 虚拟场景中的虚拟对象控制方法、计算机设备及存储介质 |
CN113559517B (zh) * | 2021-07-30 | 2023-07-14 | 腾讯科技(深圳)有限公司 | 非玩家虚拟角色的控制方法和装置、存储介质及电子设备 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170103617A1 (en) * | 2015-10-13 | 2017-04-13 | Eyal Navon | Method and System for Playing the Game of Chess |
JP6232533B1 (ja) * | 2017-05-08 | 2017-11-15 | 齊藤 康久 | コンピュータゲームプログラム |
US11369862B2 (en) * | 2017-07-18 | 2022-06-28 | ZmartFun Electronics, Inc. | Sensory chessboard and method for detecting positions of chess pieces on a chessboard and transmitting those positions to a computer or other electronic recording device |
CN107803018A (zh) * | 2017-10-20 | 2018-03-16 | 东华大学 | 基于中国象棋的机器博弈*** |
CN107930097A (zh) * | 2017-12-11 | 2018-04-20 | 大连高马艺术设计工程有限公司 | 一种自动提示规则的棋类桌游玩具*** |
CN108635853B (zh) * | 2018-03-23 | 2019-06-21 | 腾讯科技(深圳)有限公司 | 对象的控制方法和装置、存储介质、电子装置 |
CN108888947A (zh) * | 2018-05-25 | 2018-11-27 | 南京邮电大学 | 用于中国象棋对弈的解说*** |
CN109571490A (zh) * | 2018-11-09 | 2019-04-05 | 深圳蓝胖子机器人有限公司 | 一种下棋机器人***及其视觉识别控制方法 |
-
2019
- 2019-04-30 CN CN201910363789.XA patent/CN109999497B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109999497A (zh) | 2019-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107970608B (zh) | 关卡游戏的设置方法和装置、存储介质、电子装置 | |
Owen | Game theory | |
JP7456644B2 (ja) | マップ生成方法、装置、電子機器及びコンピュータ記憶媒体 | |
US20100289217A1 (en) | Apparatus and method for simultaneous turn-based play board game | |
CN109999497B (zh) | 虚拟对象的控制方法和装置、存储介质和电子装置 | |
Barriga et al. | Improving RTS game AI by supervised policy learning, tactical search, and deep reinforcement learning | |
CN111701246B (zh) | 一种游戏ai的决策配置方法和装置 | |
CN111701240B (zh) | 虚拟物品的提示方法、装置、存储介质和电子装置 | |
Zhang et al. | AlphaZero | |
CN110772794B (zh) | 智能游戏处理方法、装置、设备及存储介质 | |
Świechowski et al. | Combining utility ai and mcts towards creating intelligent agents in video games, with the use case of tactical troops: Anthracite shift | |
Oh et al. | Playing real-time strategy games by imitating human players’ micromanagement skills based on spatial analysis | |
CN111437605B (zh) | 确定虚拟对象行为及托管虚拟对象行为的方法 | |
Vieira et al. | Reinforcement learning in collectible card games: Preliminary results on legends of code and magic | |
CN115222304A (zh) | 兵棋博弈策略的生成方法、装置及存储介质 | |
Moriyama et al. | An intelligent fighting videogame opponent adapting to behavior patterns of the user | |
Nguyen et al. | Heuristic search exploiting non-additive and unit properties for RTS-game unit micromanagement | |
Zhe et al. | Using monte-carlo planning for micro-management in starcraft | |
CN110598182A (zh) | 一种信息预测的方法及相关设备 | |
Wender et al. | Combining case-based reasoning and reinforcement learning for tactical unit selection in real-time strategy game AI | |
WO2024060914A1 (zh) | 虚拟对象的生成方法、装置、设备、介质和程序产品 | |
Samsurim et al. | Prediction outcome for massive multiplayer online games using data mining | |
WO2012162375A2 (en) | Word flip game and app for smart phone and computer | |
Ferrari et al. | Towards playing Risk with a hybrid Monte Carlo based agent | |
KR102595656B1 (ko) | 딥러닝 기반의 장기 게임 서비스 방법 및 그 장치 |
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 |