CN105709417B - 桌球游戏中智能对战角色控制系统和方法 - Google Patents
桌球游戏中智能对战角色控制系统和方法 Download PDFInfo
- Publication number
- CN105709417B CN105709417B CN201410736263.9A CN201410736263A CN105709417B CN 105709417 B CN105709417 B CN 105709417B CN 201410736263 A CN201410736263 A CN 201410736263A CN 105709417 B CN105709417 B CN 105709417B
- Authority
- CN
- China
- Prior art keywords
- result
- run
- home
- ball
- aiming
- 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
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了桌球游戏中智能对战角色控制系统和方法,其系统包括:信息交互模块,用于接收向非用户控制角色发送的击球请求,其中各非用户控制角色分配有对应的等级标示,依据所述击球请求生成调用命令以获取瞄准结果,根据所述瞄准结果获得用以在显示界面上显示模拟对球和/或杆进行操作行为的响应动作数据,并输出;和逻辑运算模块,用于接收所述调用命令,调用与所述非用户控制角色的等级标示对应的、用于计算瞄准结果的瞄准运算单元,生成瞄准结果。其可以独立于客户端和服务器端设置或者优选嵌入服务器端设置的方式,便于根据运营及产品要求及时调节和配置AI数据。
Description
技术领域
本发明涉及桌球游戏中人工智能(AI,Artificial Intelligence)技术,特别是涉及一种桌球游戏中智能对战角色控制系统和方法。
背景技术
现在市面上大量的桌球类游戏,只有廖廖几款游戏配置有专门的AI模块,可供游戏玩家选择对战,而这些AI模块本身普遍是基于单纯单一的AI算法,在实现与用户对战时无法拟人化伪装成正常用户与玩家对战,其AI模块的输出结果单一,且正确进球率过低或智能程度较低,通常都是预先设定好的单一算法或者单一操作结果,无法根据实际场合对响应动作数据进行差别输出;而且,目前普遍的做法是将AI模块直接嵌入客户端,那么服务器管理员则无法在后期维护时对该AI模块进行随意的调整,因此有待进一步的提高桌球游戏中的AI技术。
发明内容
基于此,有必要针对现有技术中存在的问题,提供一种桌球游戏中智能对战角色控制系统和方法,其可以独立于客户端和服务器端设置或者优选嵌入服务器端设置的方式,便于根据运营及产品要求及时调节和配置AI数据,同时还可以根据实际场合对来自服务器端的请求进行有差别的响应动作数据输出,提升了桌球游戏中AI系统的智能程度和拟人化技术。
本发明提供的一种桌球游戏中智能对战角色控制系统,其包括:
信息交互模块,用于接收向非用户控制角色发送的击球请求,其中各非用户控制角色分别分配有对应的等级标示,依据所述击球请求生成调用命令以获取瞄准结果,根据所述瞄准结果获得用以在显示界面上显示模拟对球和/或杆进行操作行为的响应动作数据,并输出;和
逻辑运算模块,用于接收所述调用命令,根据所述非用户控制角色的等级标示,调用与该等级标示对应设置的用于计算瞄准结果的瞄准运算单元,生成瞄准结果;该逻辑运算模块包括至少一个与所述非用户控制角色的等级标示关联设置的瞄准运算单元。
在其中一个实施例中,所述其中一个或多个瞄准运算单元包括:
瞄准目标初选单元,用于基于台面上现存的球选择可作为瞄准目标的球,获得瞄准目标初选结果;和
筛选单元,用于对所述瞄准目标初选结果中的瞄准目标进行模拟碰撞,通过判断模拟碰撞的结果是否属于有效击球,对所述瞄准目标初选结果进行筛选,将模拟碰撞的结果为有效击球所对应的瞄准目标记入瞄准结果输出。
在其中一个实施例中,所述筛选单元包括:
判断单元,用于判断台面上可作为瞄准目标的球个数与设定值的大小,当所述球个数大于设定值时,则调用碰撞预测单元,当所述球个数小于等于设定值且不等于零时,则从台面上可作为瞄准目标的球中择一记入瞄准结果输出,当所述球个数等于零时,则按照预设规则选择瞄准目标记入瞄准结果输出;和
碰撞预测单元,用于当所述球个数大于设定值时,则选择一个初始瞄准目标开始依次进行模拟碰撞、直至模拟碰撞的结果属于有效击球,将该次有效击球对应的瞄准目标记入瞄准结果输出,或者选择一个初始瞄准目标开始依次对所有可作为瞄准目标的球进行模拟碰撞、统计所有模拟碰撞的结果属于有效击球的瞄准目标,从所述统计的所有瞄准目标中选择一瞄准目标记入瞄准结果输出。
基于上述系统,本发明提供了一种桌球游戏中智能对战角色控制方法,其包括:
接收向非用户控制角色发送的击球请求,其中各非用户控制角色分别分配有对应的等级标示,依据所述击球请求生成调用命令用以获取瞄准结果;
接收所述调用命令,调用与所述非用户控制角色的等级标示对应的、用于计算瞄准结果的瞄准运算步骤,生成瞄准结果,其中包括至少一个与所述非用户控制角色的等级标示关联设置的瞄准运算步骤;
根据所述瞄准结果获得用以在显示界面上显示模拟对球和/或杆进行操作行为的响应动作数据,并输出。
在其中一个实施例中,所述其中一个或多个瞄准运算步骤包括:
基于台面上现存的球选择可作为瞄准目标的球,获得瞄准目标初选结果;
对所述瞄准目标初选结果中的瞄准目标进行模拟碰撞,通过判断模拟碰撞的结果是否属于有效击球,对所述瞄准目标初选结果进行筛选,将模拟碰撞的结果为有效击球所对应的瞄准目标记入瞄准结果输出。
在其中一个实施例中,所述通过判断模拟碰撞的结果是否属于有效击球对所述瞄准目标初选结果进行筛选的过程包括:
判断所述瞄准目标初选结果中球的个数与设定值的大小;
当所述球个数大于设定值时,则选择一个初始瞄准目标开始依次进行模拟碰撞、直至模拟碰撞的结果属于有效击球,将该次有效击球对应的瞄准目标记入瞄准结果输出,或者选择一个初始瞄准目标开始依次对所有可作为瞄准目标的球进行模拟碰撞、统计所有模拟碰撞的结果属于有效击球的瞄准目标,从所述统计的所有瞄准目标中选择一瞄准目标记入瞄准结果输出;
当所述球个数小于等于设定值且不等于零时,则从台面上可作为瞄准目标的球中择一记入瞄准结果输出;
当所述球个数等于零时,则按照预设规则选择瞄准目标记入瞄准结果输出。
本发明提供的桌球游戏中智能对战角色控制系统和方法,涉及桌球类游戏用于陪玩家对战的AI系统的实现方案,其适用于所有的球类碰撞游戏,不限于客户端平台(PC或者移动平台均适用),不限于游戏模式或游戏规则(美式8球或者斯洛克均适用),其可以根据运营及产品要求及时调节和配置AI数据,相比传统AI模块,其提升了桌球游戏中AI系统的智能程度和拟人化技术,使得本发明的系统和方法的输出可针对来自服务器的动作请求给予不同的处理结果。
附图说明
图1为本发明的系统结构示意图;
图2为本发明的系统的一实施例结构示意图;
图3为本发明的瞄准运算单元的一实施例的结构示意图;
图4为本发明的瞄准运算逻辑示意图;
图5为本发明的瞄准运算单元的另一实施例的结构示意图;
图6为本发明的系统的另一实施例结构示意图;
图7至图9为本发明方法的各个实施例的流程示意图;
图10为本发明方法中用以计算瞄准目标的一个实施例流程示意图;
图11为本发明方法中清台开球的流程示意图;
图12为本发明方法中清台开球的一实施例流程示意图;
图13为本发明方法中有关设定值给定的一选实施例的流程示意图;
图14为本发明方法中有关设定值给定的另一选实施例的流程示意图。
具体实施方式
基于桌球游戏的AI技术,本发明提供了一种可以独立于客户端和服务器端设置或者优选嵌入服务器端设置的桌球游戏中智能对战角色控制系统和方法,以下将结合附图具体说明本发明的具体实现方式。
如图1所示,本实施例的一种桌球游戏中智能对战角色控制系统200(以下简称AI系统),其包括:
信息交互模块210,用于接收服务器端100或者游戏客户端向非用户控制角色发送的击球请求,其中各非用户控制角色分别分配有对应的等级标示,依据上述击球请求生成调用命令以获取瞄准结果,根据该瞄准结果获得用以在显示界面上显示模拟对球和/或杆进行操作行为的响应动作数据,并输出;和
逻辑运算模块220,用于接收上述调用命令,根据上述非用户控制角色的等级标示,调用与该等级标示对应的用于计算瞄准结果的瞄准运算单元221,生成瞄准结果;该逻辑运算模块220包括至少一个与非用户控制角色的等级标示关联设置的瞄准运算单元221。在本实施方式中,多个瞄准运算单元221分别与不同的非用户控制角色的等级标示关联设置,而可以在本发明的另一个实施例中,若只有一个瞄准运算单元221,则该逻辑运算模块220对应关联一个预先设定的非用户控制角色的等级标示,也就是说当前桌球游戏中智能对战角色控制系统默认只响应针对预先设定的AI等级作出反馈。
本实施例提供的AI系统主要由两个子系统组成,分别是作为AI用户系统的信息交互模块210和作为AI逻辑系统的逻辑运算模块220。AI用户系统用于产生AI用户(即上述所提到的非用户控制角色)加入到桌球游戏中,并模拟真实玩家的一系列游戏动作和社交行为,比如根据瞄准结果生成用以在显示界面上显示模拟对球和/或杆进行操作行为的响应动作数据。AI逻辑系统用于进行瞄准相关的逻辑运算。本实施例将逻辑运算与模拟真实玩家的相关运算分离,构建了一个完整的可独立于客户端和服务器端设置,并且优选嵌入服务器端设置也可以独立于原始服务器端的基础功能,对于AI逻辑系统本实施例提供了更多的逻辑运算选择,按照非用户控制角色的等级配备不同的算法逻辑。
基于上述实施例,为了更加方便的对预先存储的瞄准运算单元221进行调整,如图2所示,本实施例的系统中还增加以配置接口模块230,用于调整逻辑运算模块220中瞄准运算单元221的个数及其与非用户控制角色的等级标示的对应关系。上述非用户控制角色的等级标示可以包括:陪玩AI、中级AI、高级AI等等,通过此配置接口模块230可以配置多个瞄准运算单元221与不同的非用户控制角色的等级标示的对应关系,在一些情况下,还可以将逻辑运算模块220中仅有的一个瞄准运算单元221配置为与一预先设定的非用户控制角色的等级标示进行关联。
基于上述实施例,如图2所示,在本实施例中上述逻辑运算模块220还包括:用于计算碰撞结果的碰撞运算单元222;
当上述信息交互模块210获取上述瞄准结果时,生成用于调用上述碰撞运算单元222的命令;根据该命令调用上述碰撞运算单元222并按照上述瞄准结果模拟碰撞,生成碰撞结果,并将该碰撞结果输出至上述信息交互模块,用以提供给服务器进行校验和/判断。假设本实施例的系统独立于服务器和游戏客户端设置,则当在游戏过程中的信息交互主要包括以下几个过程:
首先,信息交互模块210收到游戏服务器100击球请求后,就开始请求逻辑运算模块220进行瞄准计算,逻辑运算模块220会根据当前AI用户等级调用与该AI用户等级对应的用于计算瞄准结果的瞄准运算单元221,然后计算出瞄准结果数据并将其返回给信息交互模块210。这里的瞄准结果至少包括瞄准目标、白球位置及白球击打力度和方向等数据。而在本发明中瞄准目标不限于只指所击打的球,还可以包括台面上任意击球点、或者表示无目标球或击球点等。
然后,信息交互模块210收到回复的瞄准结果数据后,生成摆放白球、移动球杆等真实玩家应该具备的交互行为数据(即上述响应动作数据)。然后将上述交互行为数据发送给游戏服务器端100。
其次,信息交互模块210收到回复的瞄准结果数据后,会同时再次将该数据发送逻辑运算模块220,请求碰撞计算,逻辑运算模块220调用物理碰撞算法,计算出结果,然后将碰撞计算结果返回给信息交互模块210。
最后,信息交互模块210收到碰撞结果,并将其发给游戏服务器100。本实施例的逻辑运算模块220分为碰撞逻辑和瞄准逻辑两大运算模块,碰撞逻辑算法与桌球客户端算法一致,以得到相同的碰撞结果提供给游戏服务器校验和判断,当然也不一定非要在本发明提供的AI系统中实现该碰撞算法,可以只在服务器中进行碰撞算法。
上述瞄准运算单元221(即包含上述瞄准逻辑)可以采用常规的方式来获取白球位置及其击打力度和方向,通过提供不同精确度的计算过程与不同的非用户控制角色的等级标示对应设置。如图3和图4所示,本实施例中瞄准运算单元221在获取白球位置及其击打力度和方向上优选采用基于数学几何向量的瞄准运算逻辑,具体可以包括以下几个部分:
第一位置提取单元301,用于获取进洞位置;
第二位置提取单元302,用于获取瞄准目标的位置;在其中一个实施例中获取的瞄准目标是从台面上现存的球中选择;
碰撞位置获取单元303,用于基于几何向量方法计算碰撞时白球应到达的位置;
第三位置提取单元304,用于获取白球的当前位置;
速度计算单元305,用于基于速度分解与合成方法计算白球所需要的速度向量;
力度计算单元306,用于根据计算出的上述速度向量及白球当前位置与应到达位置之间的距离,计算白球的击打力度和方向;及
输出单元307,用于将瞄准目标、白球的击打力度和方向和/或白球位置作为瞄准结果用以输出。
上述采用基于数学几何向量的瞄准运算逻辑的原理是,如图4所示,当白球沿着箭头的方向运动到达碰撞位置与目标球发生碰撞后,由于白球的旋转速度及两球间的摩擦力影响,目标球可能朝着图中虚线箭头的不确定方向运动,甚至进行曲线运动。但在桌球游戏中,忽略了两个球之间的摩擦力,所以白球的旋转速度不会影响目标球的运动轨迹,碰撞后,目标球一定会沿着碰撞瞬间两个球的球心所组成的直线方向上运动,即图中实线箭头方向。因此,当确定了目标球和洞口位置时,通过几何向量可以计算出碰撞时白球应该到达的位置,即图中的碰撞位置,然后根据当前白球的实际位置,通过速度的分解与合成算法可计算出白球所需要的速度,再根据距离估算出白球的力度。
上述第二位置提取单元302中,通过从台面上现存的球中选择可作为瞄准目标的球,上述台面上可作为瞄准目标的球包括:可直接击打进洞的球、可通过传递击打进洞的球、可通过反弹击打进洞的球、可通过碰撞击打的球和可通过反弹后碰撞击打的球中的一种或两种以上的组合;或者通过以下将会讲到的一种方法来获取更为精确的击球瞄准目标位置。通常任意一个瞄准运算单元221均至少要获得白球的位置及其击打力度和方向,而这过程均可参照上述有关基于数学几何向量的瞄准运算逻辑来构建上述各个功能单元来获得白球的位置及其击打力度和方向。
基于上述实施例,从台面上现存的球中选择可作为瞄准目标的球可以按照是否存在可直接击打进洞的球、是否存在可通过传递击打进洞的球、是否存在可通过反弹击打进洞的球、是否存在可通过碰撞击打的球和是否存在可通过反弹后碰撞击打的球中的一个判断或几个判断的组合来获取瞄准目标,而当任意一个判断结果只有一个可进球时,则将该球作为瞄准目标输出,否则进入下一个判断,或者直到所有判断的结果均为零个可进球,则随机选择击球目标作为瞄准目标。这一过程是基于有限次的递归运算,不会造成死循环,具体可参见下述相关方法的说明。
基于上述方法可以确定瞄准目标,但由于无法预测每个球体的运动轨迹,可能导致其它球与目标球或白球产生碰撞,从而影响目标球的运动轨迹,甚至导致白球掉袋,触发犯规,所以就需要适当的调整瞄准目标的选择方式来提高相应AI用户的技术水平,而本实施例在上述实施例的基础上通过增加碰撞预测的方式来实现,从而淘汰失败的瞄准目标计算结果,从而为如高级AI用户等级等特定用户提供更加精确的计算结果。
如图5所示,基于上述各个实施例,本实施例中针对其中的一个或多个瞄准运算单元221,其在获取瞄准目标上通过以下两个功能单元来实现,比如该瞄准运算单元221可以对应高级AI用户来设置。图5中的瞄准运算单元221包括:
瞄准目标初选单元308,用于从台面上现存的球中选择可作为瞄准目标的球,获得瞄准目标初选结果;关于该瞄准目标初选单元308中瞄准目标初选结果可以采用上述瞄准目标选择方式,从台面上现存的可直接击打进洞的球、可通过传递击打进洞的球、可通过反弹击打进洞的球、可通过碰撞击打的球和可通过反弹后碰撞击打的球中选择一种或两种以上的组合来确定瞄准目标初选结果。
筛选单元309,用于对上述瞄准目标初选结果中的瞄准目标进行模拟碰撞,通过判断模拟碰撞的结果是否属于有效击球,对上述瞄准目标初选结果进行筛选,将模拟碰撞的结果为有效击球所对应的瞄准目标记入瞄准结果输出。
本实施例中通过在有限次选择瞄准目标的基础上增加碰撞预测技术,来对瞄准目标初选结果进行筛选,选择可实现有效击球的瞄准目标输出,这里的有效击球指的是通过模拟碰撞计算可以进洞且无犯规的。这种方式可以有效提高AI进球计算的精确度,加大了意外进球的可能性。
通过判断模拟碰撞的结果是否属于有效击球,对上述瞄准目标初选结果进行筛选的具体原理可参见下述相关方法的说明,这里的筛选单元309可以通过在多个可进球的基础上,进行碰撞校验,如果碰撞结果表明是此次瞄准能够无犯规地打进自己的球,则表明此次瞄准计算时有效的,相反如果碰撞结果表明此次击球没能进球或者产生犯规,则说明此次瞄准无效,则需要重新计算瞄准目标,从而为高级AI找到最佳的击球目标。具体的上述筛选单元309可以包括:
判断单元,用于判断台面上可作为瞄准目标的球个数与设定值的大小,当上述球个数大于设定值时,则调用碰撞预测单元,当上述球个数小于等于设定值且不等于零时,则从台面上可作为瞄准目标的球中择一记入瞄准结果输出(若正好只有一个球可以作为瞄准目标,即可将其记入瞄准结果,否则可以随机选择),当上述球个数等于零时,则按照预设规则选择瞄准目标记入瞄准结果输出,这里的预设规则包括至少一种击球方式,所述击球方式包括随机选择任意一个台面上的球、放弃击球、或者选择台面上任意一点实施击球等等;和
碰撞预测单元,用于当上述球个数大于设定值时,则选择一个初始瞄准目标开始依次进行模拟碰撞、直至模拟碰撞的结果属于有效击球,将该次有效击球对应的瞄准目标记入瞄准结果输出,或者选择一个初始瞄准目标开始依次对所有可作为瞄准目标的球进行模拟碰撞、统计所有模拟碰撞的结果属于有效击球的瞄准目标,从上述统计的所有瞄准目标中选择一瞄准目标记入瞄准结果输出。这里的设定值为1或大于1的任意自然数,优选等于1。
基于上述各个实施例,为了增加桌球游戏的趣味性使非用户控制角色能够模拟人为社交活动,及提升AI系统的真实模拟效果,如图6所示,在本实施例的系统的中增加以下功能/模块。
在上述信息交互模块210中增加第一行为模拟单元211,其用于根据上述瞄准结果,生成用以在显示界面上显示在任意一位置改变球杆角度直至到上述瞄准结果对应位置过程的显示数据并输出。本实施例的AI系统在逻辑运算模块220计算出最终球杆的力度和方向后,把相关数值传递给信息交互模块210,信息交互模块210使用定时器和随机算法,不断在一个方向上随机且从快到慢的改变球杆角度,从而在视觉表现出球杆的移动到最后瞄准定位。为了增加AI移杆的真实性,移动过程中会像真实玩家一样,有可能突然放弃一个目标球,转而开始瞄准另一个目标球,或者球杆上下移动犹豫不决。定时器是用于计算在一个位置上球杆的停留时间,而随机算法用于选择在一个方向上的球杆指向位置,但最终都将确定到瞄准结果所对应的位置。
在上述信息交互模块210中增加第二行为模拟单元212,其用于根据上述瞄准结果获取白球位置,通过贝塞尔曲线和当前阻挡球位置确定出白球的移动轨迹,依据上述移动轨迹生成用以在显示界面上显示白球摆放过程的显示数据并输出。该单元用于实现AI的摆球行为,当对方白球掉袋犯规后,本实施例的AI系统获得自由球,默认情况下,白球从袋中拿出放在桌面的原始点上。白球在原始点上可能没有可进球。这个时候就需要移动白球,以找到最佳击球点。本实施例的AI系统通过向量算法随机找到一个白球的放置位置,然后通过贝塞尔曲线和当前阻挡球位置,确定出白球的移动轨迹,从而让AI具备真实玩家的移动白球行为。
在上述信息交互模块210中增加表情符号查询单元213,其用于根据用户控制角色的等级、非用户控制角色的等级和/或击球结果查询相应的响应表情符号和/或响应音频或视频信息并输出。这里需要预先根据用户控制角色的等级和用户控制角色的击球结果对应设置一些响应表情符号和/或响应音频或视频信息,比如胜利标志、输球沮丧的表情(类似QQ表情符号),或者输球的哭声、笑声视频或音频信息,或者还可以是狂笑或蔑视的表情符号或音频、视频信息。本发明的AI系统会根据当前球局变化而适当发出一些表情。比如如果一个低等级玩家打出了较高连杆数后,会发出一个鼓励或赞扬的表情,对方打黑8球时,发出一个伤心或哭泣或诅咒的表情。本实施例的AI系统打出高连杆时会发出一个得意或狂笑或蔑视的表情。这些适宜游戏情景的表情大大增加了游戏的乐趣性,也能激起玩家更高的战斗欲望。
在上述信息交互模块210中增加第三行为模拟单元,用于根据上述瞄准结果,生成用以在显示界面上显示拉杆和/或推杆行为的显示数据并输出。例如,当AI开球时,为了让桌面所有球被撞击得更分散一些,除了让AI系统使用最大击球力度外,还会加上推杆行为,使用推杆后,白球在撞击目标球后白球继续前行,撞击更多的球,从而分散桌面球,为后面击球减少阻挡球,增加赢球机率。
又如,当球洞、目标球和白球在一条直线上时,并且目标球离洞口很近的情况下,使用普通击球,由于惯性白球会继续前进,从而可能导致白球掉袋犯规。在这种情况下,AI会采用拉杆打法,让白球碰撞目标球后,产生回滚或停止在碰撞位置,从而可避免白球继续前行掉进袋中导致犯规。
上述各个功能单元可以自由组合以使本发明提供的AI系统实现不同的附加功能,从而形成新的实施例。以上各个实施例在具体说明中仅只针对相应功能单元的实现方式进行了阐述,然后在逻辑不相矛盾的情况下,上述各个实施例是可以相互组合的而形成新的技术方案的,而该新的技术方案依然在本具体实施方式的公开范围内。
基于上述系统本发明还提供了一种桌球游戏中智能对战角色控制方法,如图7所示,其方法包括:
步骤401,接收向非用户控制角色发送的击球请求,其中各非用户控制角色分别分配有对应的等级标示;
步骤402,依据上述击球请求生成调用命令用以获取瞄准结果;
步骤403,接收上述调用命令,调用与上述非用户控制角色的等级标示对应的、用于计算瞄准结果的瞄准运算步骤,生成瞄准结果,其中包括至少一个与非用户控制角色的等级标示关联设置的瞄准运算步骤;当瞄准运算步骤有多个时,则多个瞄准运算步骤分别与不同的非用户控制角色的等级标示关联设置,当只有一个瞄准运算步骤时,则将该瞄准运算步骤对应关联一个预先设定的非用户控制角色的等级标示,也就是说当前桌球游戏中智能对战角色控制方法默认只响应针对预先设定的AI等级作出反馈。
步骤404,根据上述瞄准结果获得用以在显示界面上显示模拟对球和/或杆进行操作行为的响应动作数据,并输出。
基于上述方法,如图8所示,本实施例还包括用于计算碰撞结果的碰撞运算步骤413;
当获取上述瞄准结果时,生成用于调用上述碰撞运算步骤的命令,根据该命令调用上述碰撞运算步骤按照上述瞄准结果模拟碰撞,生成碰撞结果,并将该碰撞结果输出,用以提供给服务器进行校验和/判断。
基于上述方法,上述瞄准运算步骤主要分为瞄准目标的计算过程和基于瞄准目标的白球位置及击球力度和方向的计算过程。下面先针对附图逐一说明一下这两个过程的具体实现方法。
如图9所示,为了提高AI系统针对瞄准目标的计算精确度,上述一个或多个瞄准运算步骤均可以包括以下两个步骤:
首先,从台面上现存的球中选择可作为瞄准目标的球,获得瞄准目标初选结果;上述台面上可作为瞄准目标的球包括:可直接击打进洞的球、可通过传递击打进洞的球、可通过反弹击打进洞的球、可通过碰撞击打的球和可通过反弹后碰撞击打的球中的一种或两种以上的组合。
然后,对上述瞄准目标初选结果中的瞄准目标进行模拟碰撞,通过判断模拟碰撞的结果是否属于有效击球,对上述瞄准目标初选结果进行筛选,将模拟碰撞的结果为有效击球所对应的瞄准目标记入瞄准结果输出。这里的有效击球是指针对瞄准目标进行模拟碰撞可以进球且无犯规,比如击球之后白球不进洞。
上述第一个步骤中,在选择可作为瞄准目标的球时,可以按照是否存在可直接击打进洞的球、是否存在可通过传递击打进洞的球、是否存在可通过反弹击打进洞的球、是否存在可通过碰撞击打的球和是否存在可通过反弹后碰撞击打的球中的一个判断或几个判断的组合来获取瞄准目标,具体可参见下述关于图9的详细说明。
上述第二步骤中,通过判断模拟碰撞的结果是否属于有效击球对上述瞄准目标初选结果进行筛选的过程优选采用以下方式实现:
判断上述瞄准目标初选结果中球的个数与一的大小;
当上述球个数大于一时,则选择一个初始瞄准目标开始依次进行模拟碰撞、直至模拟碰撞的结果属于有效击球,将该次有效击球对应的瞄准目标记入瞄准结果输出,或者选择一个初始瞄准目标开始依次对所有可作为瞄准目标的球进行模拟碰撞、统计所有模拟碰撞的结果属于有效击球的瞄准目标,从上述统计的所有瞄准目标中选择一瞄准目标记入瞄准结果输出;
当上述球个数等于一时,则将台面上可作为瞄准目标的球记入瞄准结果输出;
当上述球个数等于零时,则按照预设规则选择台面上可击打的球记入瞄准结果输出,这里的预设规则可以是随机选择任意一个台面上的球,或者放弃击球,或者选择台面上任意一点实施击球。
当然在通过判断模拟碰撞的结果是否属于有效击球对上述瞄准目标初选结果进行筛选的过程也可以不限于只与一进行比较,还可以设置其他的进行模拟碰撞的加入方式,比如为了提高运算精度或降低运算负荷,以及增加相应级别非用户控制角色在台面上球多时候的进球几率,而降低球少时候的进球几率,则可以考虑采用以下方式,用一个改变的值来代替上述“一”,具体如下所示来实现通过判断模拟碰撞的结果是否属于有效击球对上述瞄准目标初选结果进行筛选的过程,如图9所示;
执行步骤901,判断上述瞄准目标初选结果中球的个数与设定值的大小;此设定值可以为1或大于1的任意自然数;
执行步骤904,当上述球个数大于设定值时,则选择一个初始瞄准目标开始依次进行模拟碰撞、直至模拟碰撞的结果属于有效击球,将该次有效击球对应的瞄准目标记入瞄准结果输出,或者选择一个初始瞄准目标开始依次对所有可作为瞄准目标的球进行模拟碰撞、统计所有模拟碰撞的结果属于有效击球的瞄准目标,从上述统计的所有瞄准目标中选择一瞄准目标记入瞄准结果输出;
执行步骤903,当上述球个数小于等于设定值且不等于零时,则从台面上可作为瞄准目标的球中择一记入瞄准结果输出;
执行步骤902,当上述球个数等于零时,则按照预设规则选择瞄准目标记入瞄准结果输出,这里的预设规则包括至少一种击球方式,所述击球方式包括随机选择任意一个台面上的球、放弃击球、或者选择台面上任意一点实施击球等等。采用这一方法后,则在可进球数比较多的时候,AI系统的精确度会提供更加精确的瞄准目标计算结果,而在桌面可进球数较少时,则相应的降低了瞄准目标计算精确度,可以是本发明的AI系统更加拟人化,更加能够模拟人为的实战情况。同时通过调整上述设定值的大小,可以使得上述“通过判断模拟碰撞的结果是否属于有效击球对上述瞄准目标初选结果进行筛选的过程”形成不同的计算精度,以匹配不同级别的非用户控制角色的需要,即将上述多个瞄准运算单元221配备不同设定值对应的筛选单元309。
以下将基于设定值为1的情况详细说明本发明有关瞄准目标如何计算的一最优实施例,如图10所示。
开始计算瞄准目标;
步骤501,判断是否存在可直接击打进洞的球;若球数大于1,则执行步骤507至509;若球数等于1,则将台面上可作为瞄准目标的球记入瞄准结果输出;若球数等于零,则执行下一步骤502;
步骤502,判断是否存在可通过传递击打进洞的球;若球数大于1,则执行步骤507至509;若球数等于1,则将台面上可作为瞄准目标的球记入瞄准结果输出;若球数等于零,则执行下一步骤503;
步骤503,判断是否存在可通过反弹击打进洞的球;若球数大于1,则执行步骤507至509;若球数等于1,则将台面上可作为瞄准目标的球记入瞄准结果输出;若球数等于零,则执行下一步骤504;
步骤504,判断是否存在可通过碰撞击打的球;若球数大于1,则执行步骤507至509;若球数等于1,则将台面上可作为瞄准目标的球记入瞄准结果输出;若球数等于零,则执行下一步骤505;
步骤505,判断是否存在可通过反弹后碰撞击打的球;若球数大于1,则执行步骤507至509;若球数等于1,则将台面上可作为瞄准目标的球记入瞄准结果输出;若球数等于零,则执行下一步骤506;
步骤506,随机选择击球目标作为瞄准目标,例如随机选择任意一个台面上的球、或选择台面上任意一点实施击球;
步骤507,基于其中一个可作为瞄准目标的球进行模拟碰撞运算,获得碰撞结果;
步骤508,判断碰撞结果是否是有效击球,若是则执行步骤509,反之返回开始步骤选择另一个可作为瞄准目标的球进行模拟碰撞运算;
步骤509,将模拟碰撞的结果为有效击球所对应的瞄准目标记入瞄准结果输出,比如这里有两种方案,其一是只要计算到一次有效击球的碰撞结果,即可将该次结果对应的瞄准目标输出;其二,计算所有可作为瞄准目标的球对应的碰撞结果,将碰撞结果为有效击球的部分汇总,从其中任意选择一个瞄准目标作为输出结果。
上述步骤501至505之间不限制先后顺序,且可以按照图9所示的基本逻辑任意选择其中一个步骤或几个步骤的组合,而上述步骤501至505中的一个步骤或几个步骤的组合主要是基于有限递归校验方法获得瞄准目标初选结果,而上述步骤507至509的过程在于基于碰撞运算提供提前预测技术,从瞄准目标初选结果筛选出更容易获得有效击球的瞄准目标,从而提高本发明AI系统的运算精度。
上述关于瞄准目标的计算可以只配备给高级AI用户,也可以根据设定的不同设定值分别配备给不同级别的AI用户,这里的AI用户是指非用户控制角色。基于此技术思想,本发明在上述桌球游戏中智能对战角色控制方法的一实施例中,通过将多个瞄准运算步骤通过上述设定值与非用户控制角色的等级标示关联设置的方式,来实现根据不同的设定值为不同级别的AI用户配置上述图9中所示的不同计算精度的瞄准运算步骤。而根据设定值的关联方式可以至少存在以下两种方式,比如,上述步骤403中,依据接收的调用命令根据非用户控制角色的等级标示调用对应设置的用于计算瞄准结果的瞄准运算步骤生成瞄准结果的过程包括如图13所示的以下步骤。
步骤423,接收到上述调用命令;
步骤433,当接收到上述调用命令时,查看上述非用户控制角色的等级标示;
步骤443,根据上述非用户控制角色的等级标示获得关联设置的上述设定值;
步骤453,按照上述设定值,调用相应的上述图9所示的瞄准运算步骤,生成瞄准结果。
基于图13所示的实施例,可以将上述步骤443中依据非用户控制角色的等级标示查到特定值变更为一个数值范围,则相应的步骤403中,依据接收的调用命令根据非用户控制角色的等级标示调用对应设置的用于计算瞄准结果的瞄准运算步骤生成瞄准结果的过程包括以下步骤:
当接收到上述调用命令时,查看上述非用户控制角色的等级标示;
根据上述非用户控制角色的等级标示获得关联设置的预设值范围;
从上述预设值范围中随机或者顺序选择一个离散的自然数,赋值给上述设定值;
按照上述设定值,调用相应的上述图9所示的瞄准运算步骤,生成瞄准结果。
结合图14详细说明,在图10所示的扫描运算步骤中应用上述图13所示方法步骤的一个最优实施例,则相关步骤变更为以下执行内容。
在执行完图13所示的步骤401和步骤402之后,继续执行以下步骤:
步骤423,接收到上述调用命令;
步骤433,当接收到上述调用命令时,查看上述非用户控制角色的等级标示;
步骤443,根据上述非用户控制角色的等级标示获得关联设置的上述设定值;
然后开始执行以下计算瞄准目标的步骤:
步骤501,判断是否存在可直接击打进洞的球;若球数大于上述设定值,则执行步骤507至509;若球数小于等于上述设定值,则从台面上可作为瞄准目标的球中择一记入瞄准结果输出;若球数等于零,则执行下一步骤502;
步骤502,判断是否存在可通过传递击打进洞的球;若球数大于上述设定值,则执行步骤507至509;若球数小于等于上述设定值,则从台面上可作为瞄准目标的球中择一记入瞄准结果输出;若球数等于零,则执行下一步骤503;
步骤503,判断是否存在可通过反弹击打进洞的球;若球数大于上述设定值,则执行步骤507至509;若球数小于等于上述设定值,则从台面上可作为瞄准目标的球中择一记入瞄准结果输出;若球数等于零,则执行下一步骤504;
步骤504,判断是否存在可通过碰撞击打的球;若球数大于上述设定值,则执行步骤507至509;若球数小于等于上述设定值,则从台面上可作为瞄准目标的球中择一记入瞄准结果输出;若球数等于零,则执行下一步骤505;
步骤505,判断是否存在可通过反弹后碰撞击打的球;若球数大于上述设定值,则执行步骤507至509;若球数小于等于上述设定值,则从台面上可作为瞄准目标的球中择一记入瞄准结果输出;若球数等于零,则执行下一步骤506;
步骤506,随机选择击球目标作为瞄准目标,例如随机选择任意一个台面上的球、或选择台面上任意一点实施击球;
步骤507,基于其中一个可作为瞄准目标的球进行模拟碰撞运算,获得碰撞结果;
步骤508,判断碰撞结果是否是有效击球,若是则执行步骤509,反之返回开始步骤选择另一个可作为瞄准目标的球进行模拟碰撞运算;
步骤509,将模拟碰撞的结果为有效击球所对应的瞄准目标记入瞄准结果输出,比如这里有两种方案,其一是只要计算到一次有效击球的碰撞结果,即可将该次结果对应的瞄准目标输出;其二,计算所有可作为瞄准目标的球对应的碰撞结果,将碰撞结果为有效击球的部分汇总,从其中任意选择一个瞄准目标作为输出结果。
上述步骤501至505之间不限制先后顺序,且可以按照图14所示的基本逻辑任意选择其中一个步骤或几个步骤的组合,而上述步骤501至505中的一个步骤或几个步骤的组合主要是基于有限递归校验方法获得瞄准目标初选结果,而上述步骤507至509的过程在于基于碰撞运算提供提前预测技术,从瞄准目标初选结果筛选出更容易获得有效击球的瞄准目标,并通过步骤443获得不同的设定值来匹配不同等级的AI用户。
基于上述在步骤403中增加的步骤,对应可在上述各个桌球游戏中智能对战角色控制系统的实施例中增加第一瞄准结果生成单元,用于当接收到所述调用命令时,查看所述非用户控制角色的等级标示,根据所述非用户控制角色的等级标示获得关联设置的所述设定值,按照所述设定值,调用相应的所述瞄准运算单元,生成瞄准结果。或者增加第二瞄准结果生成单元,用于当接收到所述调用命令时,查看所述非用户控制角色的等级标示,根据所述非用户控制角色的等级标示获得关联设置的预设值范围,从所述预设值范围中随机或者顺序选择一个离散的自然数赋值给所述设定值,按照所述设定值,调用相应的所述瞄准运算单元,生成瞄准结果。
基于上述方法,在上述瞄准运算步骤中用于计算白球位置及其击打力度和方向的过程,其具体如下所示。
获取进洞位置;
获取瞄准目标的位置;
基于几何向量方法计算碰撞时白球应到达的位置;
获取白球的当前位置;
基于速度分解与合成方法计算白球所需要的速度向量;
根据计算出的上述速度向量及白球当前位置与应到达位置之间的距离,计算白球的击打力度和方向;
将瞄准目标、白球的击打力度和方向和/或白球位置作为瞄准结果用以输出。
本实施例的方法可以用于任意一个瞄准运算步骤中,在通过上述方法或者传统方法获得瞄准目标后用以计算白球位置及其击打力度和方向。
基于上述方法,本实施例的方法还可以包括以下步骤:根据上述瞄准结果,生成用以在显示界面上显示在任意一位置改变球杆角度直至到上述瞄准结果对应位置过程的显示数据、并输出。而这一过程主要基于定时器和随机算法,定时器是用于计算在一个位置上球杆的停留时间,而随机算法用于选则在一处方向上的球杆指向位置,但最终都将确定到瞄准结果所对应的位置,用以模拟非用户控制角色移动球杆实施定位的行为。
基于上述方法,本实施例的方法还可以包括以下步骤:根据上述瞄准结果获取白球位置,通过贝塞尔曲线和当前阻挡球位置确定出白球的移动轨迹,依据上述移动轨迹生成用以在显示界面上显示白球摆放过程的显示数据、并输出。用以模拟非用户控制角色实施摆球的行为。
基于上述方法,本实施例的方法还可以包括以下步骤:根据用户控制角色的等级、非用户控制角色的等级和/或击球结果查询相应的响应表情符号和/或响应音频或视频信息并输出。
基于上述方法,本实施例的方法还可以包括以下步骤:根据上述瞄准结果,生成用以在显示界面上显示拉杆和/或推杆行为的显示数据并输出。
基于上述方法,本发明还提供了一配置接口,用于调整逻辑运算模块220的个数及其与非用户控制角色的等级标示的关系,或者还可以通过该配置接口调整上述“判断上述瞄准目标初选结果中球的个数与设定值的大小”步骤中的设定值大小,以匹配不同级别的非用户控制角色。
基于上述方法,在本发明的一个实施例中,还在上述方法中增加了一种更加智能且提高游戏AI系统模拟效果的智能开球的生成方法,如图11所示,该桌球游戏中智能开球的生成方法包括:
步骤601,判断上述接收到的击球请求是否代表了本局游戏的第一次击球,若是,则所述击球请求为向非用户控制角色发送的开球请求,依据该所述击球请求,查看非用户控制角色的等级标示,然后执行步骤603;若否,则被认为是非开球请求,然后执行上述步骤401至404。
步骤603,当非用户控制角色的等级标示满足清台开球的等级时,则选择预先存储的清台文件,
步骤604,读取该清台文件中记录的击球数据包并输出,其中上述清台文件来自记录的用户控制角色在游戏过程中产生开球清台情况时的击球数据包。
如果在智能AI系统本身已经设定好了相应的级别标示,则可以直接根据其是否属于清台AI来选择是否执行步骤603,比如如图11中,在上述方法中增加:
步骤602,判断非用户控制角色的等级标示是否满足清台开球的等级,若是,则执行步骤603,否则执行步骤605按照常规方式开球,首先计算瞄准数据,这里的有关瞄准数据的计算过程可以参见前文所述的桌球游戏中智能对战角色控制系统和方法的相关内容。上述清台文件采用数据库的方式保存。上述击球数据包包括击球顺序、每次击球的力度和方向、每次击球时白球的位置等等。
基于上述方法,本发明的一个实施例中,上述清台文件的产生过程包括:
缓存每一个用户控制角色在本局游戏过程中的击球数据包;
判断该用户控制角色在本局游戏过程结束时的结果是否为开球清台,若是,则将缓存的击球数据包写入文件保存,形成一清台文件;若否,则清空缓存的该用户控制角色对应的击球数据包。
在本发明的一个实施例中,上述选择预先存储的清台文件的过程可以采用顺序选择或随机选择清台文件的方式。或者在上述清台文件中还记录有:完成清台开球所花费的时间(以下称“完成时间”)。那么在上述步骤603中可以依据上述清台开球的完成时间设定的选择规则来选择上述清台文件。比如,这里的选择规则包括以下几种的任意一种:
按照上述完成时间将上述清台文件排序后顺序选择,其中,上述顺序选择的含义是指:当前次读取清台文件时选择第一个,第二次出现需要读取清台文件时,则读取第二个,顺次,直到读取完所有清台文件或者当前类别的所有清台文件后,则从第一个开始读取,而所有的清台文件均按照实际清台开球的完成时间排序;
按照上述完成时间将上述清台文件分类,根据对战方用户控制角色的等级在与之对应的分类中顺序选择上述清台文件,其中,上述顺序选择的含义同前段所述;
按照上述完成时间将上述清台文件分类,根据对战方用户控制角色的等级在相应分类中随机选择上述清台文件;
按照上述完成时间将上述清台文件分类,根据对战方用户控制角色的等级在相应分类中选择最短的完成时间对应的清台文件;
按照上述完成时间将上述清台文件分类,根据对战方用户控制角色的等级在相应分类中选择最长的完成时间对应的清台文件。
基于上述方法,当选择预先存储的清台文件后,将该清台文件赋予是否已选用的标示,用以在下一次选择预先存储的清台文件时,根据该标示确定该清台文件是否已经被选用过而决定是否排除该清台文件。
基于上述方法,在本发明的一个实施例中,如图12所示,上述方法中在选择预先存储的清台文件时,还包括:判断上述清台文件是否具有上述标示的步骤,若上述清台文件具有上述标示,则放弃选择该清台文件;若否则读取该清台文件中记录的击球数据包并输出。
基于上述方法,在本发明的一个实施例中,上述方法还包括,在清台开球结束之后,随机输出响应表情符号和/或响应音频或视频信息。比如胜利表情符号,胜利宣言的语音或视频信息。
基于上述新增加的智能开球的生成方法中的相应步骤,还在可以在上述球游戏中智能对战角色控制系统200中添加相应的功能单元,以下各个功能模块的具体实现方式可参见上述智能开球的生成方法。例如,在本发明的一个实施例中,在上述桌球游戏中智能对战角色控制系统增加以下模块:
开球请求接收模块,用于判断上述击球请求是否代表了本局游戏的第一次击球,若是,则依据该击球请求,查看非用户控制角色的等级标示;和
清台数据输出模块,用于依据开球请求,当非用户控制角色的等级标示满足清台开球的等级时,则选择预先存储的清台文件,读取该清台文件中记录的击球数据包并输出,其中清台文件来自记录的用户控制角色在游戏过程中产生开球清台情况时的击球数据包。
在本发明的一个实施例中,上述清台数据输出模块可以包括:
缓存单元,用于缓存每一个用户控制角色在本局游戏过程中的击球数据包;及
记录单元,用于判断该用户控制角色在本局游戏过程结束时的结果是否为开球清台,若是,则将缓存的击球数据包写入文件保存,形成一清台文件;若否,则清空缓存的该用户控制角色对应的击球数据包。
在本发明的一个实施例中,上述清台文件中还记录有:完成清台开球所花费的时间(以下称“完成时间”),选择预先存储的清台文件的过程采用依据上述完成时间设定的选择规则来选择清台文件。
基于上述实施例,本实施例中上述清台数据输出模块中还包括:
标记单元,用于当选择预先存储的清台文件后,将该清台文件赋予是否已选用的标示,用以在下一次选择预先存储的清台文件时,根据该标示确定该清台文件是否已经被选用过而决定是否排除该清台文件。
基于上述实施例,本实施例中上述清台数据输出模块中还包括:
排除单元,用于在选择预先存储的清台文件时,判断上述清台文件是否具有上述标示,若上述清台文件具有上述标示,则放弃选择该清台文件;若是则将该清台文件纳入选择范围;和
筛选单元,用于在当非用户控制角色的等级标示满足清台开球的等级时,从上述选择范围中选择预先存储的清台文件,读取该清台文件中记录的击球数据包并输出。
基于上述实施例,本实施例中上述信息交互模块还包括:
社交单元,用于在清台开球结束之后,随机输出响应表情符号和/或响应音频或视频信息。
上述方法中的相关解释可以参见上述系统中的相关说明,其中有关模拟碰撞或碰撞运算的方式可以参见现有技术的相关技术,模拟碰撞或碰撞运算即根据瞄准目标及其白球击打力度和方向确定击打结果的过程。上述方法中的执行均基于一最优的实施例,但是本发明并不对其相应步骤的顺序进行限制,其可以以其他的顺序执行,比如图10中501到505的步骤可以随意调整或删减。而且,图7至图12中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。以上各个实施例在具体说明中仅只针对相应步骤的实现方式进行了阐述,然后在逻辑不相矛盾的情况下,上述各个实施例是可以相互组合的而形成新的技术方案的,而该新的技术方案依然在本具体实施方式的公开范围内。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个非易失性计算机可读存储载体(如ROM、磁碟、光盘、还可以是服务器云存储空间)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的系统结构和方法。
综上所述,本发明提供的智能AI系统通过向量几何运算和有限递归思想,为游戏AI提供了更加精确的瞄准数据的计算。本发明的系统和方法可以独立于服务器和游戏客户端来设置,基于向量几何运算对刚体碰撞运动轨迹判断,利用有限递归和提前预测算法验证当前算法结果的有效性,提供更加精确的瞄准目标计算结果,基于当前对战情况判断游戏景并适当生成适宜表情,利用随机算法和定时器,实现逼真的游戏动作实现。以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (18)
1.一种桌球游戏中智能对战角色控制系统,其特征在于,所述系统包括:
信息交互模块,用于接收向非用户控制角色发送的击球请求,其中各非用户控制角色分别分配有对应的等级标示,依据所述击球请求生成调用命令以获取瞄准结果,根据所述瞄准结果获得用以在显示界面上显示模拟对球和/或杆进行操作行为的响应动作数据,并输出;和
逻辑运算模块,用于接收所述调用命令,根据非用户控制角色的等级标示,调用与该等级标示对应的用于计算瞄准结果的瞄准运算单元,生成瞄准结果;该逻辑运算模块包括至少一个与所述非用户控制角色的等级标示关联设置的瞄准运算单元。
2.根据权利要求1所述的桌球游戏中智能对战角色控制系统,其特征在于,所述其中一个或多个瞄准运算单元包括:
瞄准目标初选单元,用于基于台面上现存的球选择可作为瞄准目标的球,获得瞄准目标初选结果;和
筛选单元,用于对所述瞄准目标初选结果中的瞄准目标进行模拟碰撞,通过判断模拟碰撞的结果是否属于有效击球,对所述瞄准目标初选结果进行筛选,将模拟碰撞的结果为有效击球所对应的瞄准目标记入瞄准结果输出。
3.根据权利要求2所述的桌球游戏中智能对战角色控制系统,其特征在于,所述筛选单元包括:
判断单元,用于判断台面上可作为瞄准目标的球个数与设定值的大小,当所述球个数大于设定值时,则调用碰撞预测单元,当所述球个数小于等于设定值且不等于零时,则从台面上可作为瞄准目标的球中择一记入瞄准结果输出,当所述球个数等于零时,则按照预设规则选择瞄准目标记入瞄准结果输出;和
碰撞预测单元,用于当所述球个数大于设定值时,则选择一个初始瞄准目标开始依次进行模拟碰撞、直至模拟碰撞的结果属于有效击球,将该次有效击球对应的瞄准目标记入瞄准结果输出,或者选择一个初始瞄准目标开始依次对所有可作为瞄准目标的球进行模拟碰撞、统计所有模拟碰撞的结果属于有效击球的瞄准目标,从所述统计的所有瞄准目标中选择一瞄准目标记入瞄准结果输出。
4.根据权利要求1或2所述的桌球游戏中智能对战角色控制系统,其特征在于,所述任意一个瞄准运算单元包括:
第一位置提取单元,用于获取进洞位置;
第二位置提取单元,用于获取瞄准目标的位置;
碰撞位置获取单元,用于基于几何向量方法计算碰撞时白球应到达的位置;
第三位置提取单元,用于获取白球的当前位置;
速度计算单元,用于基于速度分解与合成方法计算白球所需要的速度向量;
力度计算单元,用于根据计算出的所述速度向量及白球当前位置与应到达位置之间的距离,计算白球的击打力度和方向;及
输出单元,用于将瞄准目标、白球的击打力度和方向和/或白球位置作为瞄准结果用以输出。
5.根据权利要求1所述的桌球游戏中智能对战角色控制系统,其特征在于,所述系统还包括:
开球请求接收模块,用于判断所述击球请求是否代表了本局游戏的第一次击球,若是,则依据该所述击球请求,查看非用户控制角色的等级标示;和
清台数据输出模块,用于当非用户控制角色的等级标示满足清台开球的等级时,则选择预先存储的清台文件,读取该清台文件中记录的击球数据包并输出,其中所述清台文件来自记录的用户控制角色在游戏过程中产生开球清台情况时的击球数据包。
6.根据权利要求5所述的桌球游戏中智能对战角色控制系统,其特征在于,所述清台数据输出模块包括:
缓存单元,用于缓存每一个用户控制角色在本局游戏过程中的击球数据包;及
记录单元,用于判断该用户控制角色在本局游戏过程结束时的结果是否是开球清台,若是,则将缓存的击球数据包写入文件保存,形成一清台文件;若否,则清空缓存的该用户控制角色对应的击球数据包。
7.根据权利要求3所述的桌球游戏中智能对战角色控制系统,其特征在于,所述逻辑运算模块还包括:
第一瞄准结果生成单元,用于当接收到所述调用命令时,查看所述非用户控制角色的等级标示,根据所述非用户控制角色的等级标示获得关联设置的所述设定值,按照所述设定值,调用相应的所述瞄准运算单元,生成瞄准结果。
8.根据权利要求3所述的桌球游戏中智能对战角色控制系统,其特征在于,所述逻辑运算模块还包括:
第二瞄准结果生成单元,用于当接收到所述调用命令时,查看所述非用户控制角色的等级标示,根据所述非用户控制角色的等级标示获得关联设置的预设值范围,从所述预设值范围中随机或者顺序选择一个离散的自然数赋值给所述设定值,按照所述设定值,调用相应的所述瞄准运算单元,生成瞄准结果。
9.一种桌球游戏中智能对战角色控制方法,其方法包括:
接收向非用户控制角色发送的击球请求,其中各非用户控制角色分别分配有对应的等级标示,依据所述击球请求生成调用命令;
接收所述调用命令,调用与所述非用户控制角色的等级标示对应的用于计算瞄准结果的瞄准运算步骤,生成瞄准结果,其中包括至少一个与所述非用户控制角色的等级标示关联设置的瞄准运算步骤;
根据所述瞄准结果获得用以在显示界面上显示模拟对球和/或杆进行操作行为的响应动作数据,并输出。
10.根据权利要求9所述的桌球游戏中智能对战角色控制方法,其特征在于,所述其中一个或多个瞄准运算步骤包括:
基于台面上现存的球选择可作为瞄准目标的球,获得瞄准目标初选结果;
对所述瞄准目标初选结果中的瞄准目标进行模拟碰撞,通过判断模拟碰撞的结果是否属于有效击球,对所述瞄准目标初选结果进行筛选,将模拟碰撞的结果为有效击球所对应的瞄准目标记入瞄准结果输出。
11.根据权利要求10所述的桌球游戏中智能对战角色控制方法,其特征在于,所述通过判断模拟碰撞的结果是否属于有效击球对所述瞄准目标初选结果进行筛选的过程包括:
判断所述瞄准目标初选结果中球的个数与设定值的大小;
当所述球个数大于设定值时,则选择一个初始瞄准目标开始依次进行模拟碰撞、直至模拟碰撞的结果属于有效击球,将该次有效击球对应的瞄准目标记入瞄准结果输出,或者选择一个初始瞄准目标开始依次对所有可作为瞄准目标的球进行模拟碰撞、统计所有模拟碰撞的结果属于有效击球的瞄准目标,从所述统计的所有瞄准目标中选择一瞄准目标记入瞄准结果输出;
当所述球个数小于等于设定值且不等于零时,则从台面上可作为瞄准目标的球中择一记入瞄准结果输出;
当所述球个数等于零时,则按照预设规则选择瞄准目标记入瞄准结果输出。
12.根据权利要求9所述的桌球游戏中智能对战角色控制方法,其特征在于,所述任意一个瞄准运算步骤包括:
获取进洞位置;
获取瞄准目标的位置;
基于几何向量方法计算碰撞时白球应到达的位置;
获取白球的当前位置;
基于速度分解与合成方法计算白球所需要的速度向量;
根据计算出的所述速度向量及白球当前位置与应到达位置之间的距离,计算白球的击打力度和方向;
将瞄准目标、白球的击打力度和方向和/或白球位置作为瞄准结果用以输出。
13.根据权利要求9所述的桌球游戏中智能对战角色控制方法,其特征在于,所述方法还包括:
根据所述瞄准结果,生成用以在显示界面上显示在任意一位置改变球杆角度直至到所述瞄准结果对应位置过程的显示数据、并输出。
14.根据权利要求9所述的桌球游戏中智能对战角色控制方法,其特征在于,所述方法还包括:
判断所述击球请求是否代表了本局游戏的第一次击球,若是,则依据该所述击球请求,查看非用户控制角色的等级标示;
当非用户控制角色的等级标示满足清台开球的等级时,则选择预先存储的清台文件,读取该清台文件中记录的击球数据包并输出,其中所述清台文件来自记录的用户控制角色在游戏过程中产生开球清台情况时的击球数据包。
15.根据权利要求14所述的桌球游戏中智能开球的生成方法,其特征在于,所述方法中所述清台文件的产生过程包括:
缓存每一个用户控制角色在本局游戏过程中的击球数据包;
判断该用户控制角色在本局游戏过程结束时的结果是否是开球清台,若是,则将缓存的击球数据包写入文件保存,形成一清台文件;若否,则清空缓存的该用户控制角色对应的击球数据包。
16.根据权利要求11所述的桌球游戏中智能对战角色控制方法,其特征在于,所述多个瞄准运算步骤通过所述设定值与所述非用户控制角色的等级标示关联设置。
17.根据权利要求16所述的桌球游戏中智能对战角色控制方法,其特征在于,所述接收所述调用命令、根据所述非用户控制角色的等级标示调用对应设置的用于计算瞄准结果的瞄准运算步骤生成瞄准结果的过程包括:
当接收到所述调用命令时,查看所述非用户控制角色的等级标示;
根据所述非用户控制角色的等级标示获得关联设置的所述设定值;
按照所述设定值,调用相应的所述瞄准运算步骤,生成瞄准结果。
18.根据权利要求16所述的桌球游戏中智能对战角色控制方法,其特征在于,所述接收所述调用命令、根据所述非用户控制角色的等级标示调用对应设置的用于计算瞄准结果的瞄准运算步骤生成瞄准结果的过程包括:
当接收到所述调用命令时,查看所述非用户控制角色的等级标示;
根据所述非用户控制角色的等级标示获得关联设置的预设值范围;
从所述预设值范围中随机或者顺序选择一个离散的自然数,赋值给所述设定值;
按照所述设定值,调用相应的所述瞄准运算步骤,生成瞄准结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410736263.9A CN105709417B (zh) | 2014-12-05 | 2014-12-05 | 桌球游戏中智能对战角色控制系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410736263.9A CN105709417B (zh) | 2014-12-05 | 2014-12-05 | 桌球游戏中智能对战角色控制系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105709417A CN105709417A (zh) | 2016-06-29 |
CN105709417B true CN105709417B (zh) | 2019-03-01 |
Family
ID=56144144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410736263.9A Active CN105709417B (zh) | 2014-12-05 | 2014-12-05 | 桌球游戏中智能对战角色控制系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105709417B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113256462A (zh) * | 2021-05-20 | 2021-08-13 | 蓝海领航电子竞技(山东)有限公司 | 基于云计算的电竞教育平台 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110433494A (zh) * | 2018-05-02 | 2019-11-12 | 鈊象电子股份有限公司 | 落点预测方法、落点预测系统及游戏决策方法 |
CN111111170A (zh) * | 2019-12-23 | 2020-05-08 | 黎明职业大学 | 一种人工智能判定实现系统及方法 |
CN111450533B (zh) * | 2020-03-31 | 2022-06-24 | 腾讯科技(深圳)有限公司 | 虚拟场景中的虚拟对象控制方法、装置、终端及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101274141A (zh) * | 2007-03-30 | 2008-10-01 | 上海市闵行第二中学 | 一种桌球机器人 |
US8075415B2 (en) * | 2007-10-26 | 2011-12-13 | OB Cues, Inc. | Cue stick and cue stick handle with rigid inner core and method of making the same |
CN102553222A (zh) * | 2012-01-13 | 2012-07-11 | 南京大学 | 一种支持对战模式的脑功能反馈训练方法与系统 |
CN103736270A (zh) * | 2013-12-21 | 2014-04-23 | 柳州职业技术学院 | 基于plc的台球训练辅助系统及其应用方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110210511A1 (en) * | 2010-03-01 | 2011-09-01 | Gary Gugliotti | Board game with dropped weighted game pieces |
-
2014
- 2014-12-05 CN CN201410736263.9A patent/CN105709417B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101274141A (zh) * | 2007-03-30 | 2008-10-01 | 上海市闵行第二中学 | 一种桌球机器人 |
US8075415B2 (en) * | 2007-10-26 | 2011-12-13 | OB Cues, Inc. | Cue stick and cue stick handle with rigid inner core and method of making the same |
CN102553222A (zh) * | 2012-01-13 | 2012-07-11 | 南京大学 | 一种支持对战模式的脑功能反馈训练方法与系统 |
CN103736270A (zh) * | 2013-12-21 | 2014-04-23 | 柳州职业技术学院 | 基于plc的台球训练辅助系统及其应用方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113256462A (zh) * | 2021-05-20 | 2021-08-13 | 蓝海领航电子竞技(山东)有限公司 | 基于云计算的电竞教育平台 |
CN113256462B (zh) * | 2021-05-20 | 2022-03-18 | 蓝海领航电子竞技(山东)有限公司 | 基于云计算的电竞教育系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105709417A (zh) | 2016-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107613310B (zh) | 一种直播方法、装置及电子设备 | |
CN105709417B (zh) | 桌球游戏中智能对战角色控制系统和方法 | |
US9242177B2 (en) | Simulated sports events utilizing authentic event information | |
CN101466444A (zh) | 自动改动虚拟装备模型 | |
CN108579085A (zh) | 障碍物碰撞的处理方法和装置、存储介质及电子装置 | |
CN1291755A (zh) | 比赛方法及装置,记录媒体 | |
JP6286410B2 (ja) | ゲーム方法およびゲームシステム | |
CN109045688B (zh) | 游戏交互方法、装置、电子设备及存储介质 | |
KR102573182B1 (ko) | 단말 장치, 가상 스포츠 장치, 가상 스포츠 시스템 및 가상 스포츠 시스템의 동작방법 | |
CN116234613A (zh) | 交互式篮球系统 | |
US8465353B2 (en) | Game device, control method for game device, and information storage medium | |
Savery et al. | The effects of consistency maintenance methods on player experience and performance in networked games | |
CN113544697A (zh) | 用数据和身体姿态分析运动表现以对表现进行个性化预测 | |
TWI723801B (zh) | 遊戲裝置、遊戲系統、記錄媒體、及控制方法 | |
KR20120054070A (ko) | 사이버-물리 게임 | |
CN108066991A (zh) | 使用投球模式玩屏幕棒球的方法 | |
KR101293710B1 (ko) | 사용자의 순위를 결정하는 가상 골프 시뮬레이션 방법 및 시스템 | |
Primo et al. | Analysis of challenge request success according to contextual variables in elite badminton | |
CN110478891B (zh) | 一种动作序列识别方法及动作捕捉数据处理系统 | |
JP6029615B2 (ja) | ゲーム方法およびゲームシステム | |
JP4084948B2 (ja) | パチンコゲーム配信システム、管理サーバ及び仮想パチンコ端末 | |
TW201735973A (zh) | 與球場實況互動之應用系統 | |
CN111862345A (zh) | 信息处理方法及装置、电子设备和计算机可读存储介质 | |
KR102025394B1 (ko) | 사용자 제스쳐에 따라 가상의 선수 능력치 및 작전 수행 성공율을 변경시키는 스크린 야구 시뮬레이션 방법 | |
JP5869619B2 (ja) | ゲーム方法およびゲームシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |