CN112704882B - 基于模型的棋牌游戏策略更新的方法、系统、介质及装置 - Google Patents
基于模型的棋牌游戏策略更新的方法、系统、介质及装置 Download PDFInfo
- Publication number
- CN112704882B CN112704882B CN202110046490.9A CN202110046490A CN112704882B CN 112704882 B CN112704882 B CN 112704882B CN 202110046490 A CN202110046490 A CN 202110046490A CN 112704882 B CN112704882 B CN 112704882B
- Authority
- CN
- China
- Prior art keywords
- chess
- card
- model
- playing
- trained
- 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/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
- A63F13/69—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor by enabling or updating specific game elements, e.g. unlocking hidden features, items, levels or versions
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Electrically Operated Instructional Devices (AREA)
Abstract
本发明属于人工智能领域,具体提供一种基于模型的棋牌游戏策略更新的方法、系统、介质及装置。本发明旨在解决现有的官方推荐棋牌组合以及使用方案设定困难、强度不可控、浪费人力资源的问题。为此目的,本发明通过棋牌组合的对弈图像训练集对初始棋牌组合模型进行训练,得到已训练的棋牌组合模型,通过棋牌在棋盘上的使用方案的对弈图像训练集对初始棋牌使用模型进行训练,得到已训练的棋牌使用模型;将待更新的对弈策略输入到已训练的棋牌组合模型和已训练的棋牌使用模型;通过已训练的棋牌组合模型和已训练的棋牌使用模型与其它对弈选手对战;统计待更新的对弈策略的胜率;根据评估结果更新游戏的对弈策略,最终完成棋牌游戏策略的更新。
Description
技术领域
本发明属于人工智能领域,具体提供一种基于模型的棋牌游戏策略更新的方法、系统、介质及装置。
背景技术
随着互联网的日益普及,游戏的市场也越来越大,相应地游戏公司研发出了许许多多的游戏供大众娱乐。其中的一大类游戏类型便是棋牌策略类游戏,这类游戏有着明显的特性,在一个总的许许多多的棋牌池里面,挑选自己的棋牌组合,然后根据各种不同的组合以及各种不同的策略与人对弈,从而实现一个开放式的场景使用户娱乐。
但是,对于刚开始接触的用户而言,由于不熟悉组合的规律方式,往往胜率将会非常差,而为了使初学者快速熟悉游戏,会有专门的研发人员设置一套或几套强度合理的适于新手的方案,这种方案要求胜率不能太低,以确保新手能够体会到游戏的乐趣,但也要求其胜率不能过高,以保证其它老玩家的可玩性,这对于研发人员是较为困难的,通常情况下,只能通过游戏经验进行总结,并且研发人员要自己进行许多次的线上对战,从而对棋牌组合以及使用方案进行调整,以最终获得一套合适的棋牌组合。但是,由于棋牌池也是不断扩充的,将会有许多的新的棋牌进入棋牌池,相应地原有的供新人的棋牌组合也要相应地变化,这就又需要研发人员进行重新验证,费时费力,延缓了研发周期,使企业的整体收益降低。
相应的,本领域需要一种新的基于模型的棋牌游戏策略更新的方法、系统及装置来解决现有的官方推荐棋牌组合以及使用方案均需要人工验证,没有基于自学习的智能模型验证,导致最终的游戏策略更新设定困难、强度不可控、浪费人力资源的问题。
发明内容
为了解决现有技术中的上述问题,即为了解决现有的官方推荐棋牌组合以及使用方案设定困难、强度不可控、浪费人力资源的问题,本发明提供了一种基于模型的棋牌游戏策略更新的方法,其特征在于,包括:
获取棋牌对弈选手的棋牌组合的对弈图像训练集,以及棋牌在棋盘上的使用方案的对弈图像训练集;
通过所述棋牌组合的对弈图像训练集对初始棋牌组合模型进行训练,得到已训练的棋牌组合模型;
通过所述棋牌在棋盘上的使用方案的对弈图像训练集对初始棋牌使用模型进行训练,得到已训练的棋牌使用模型;
将待更新的棋牌组合以及待更新的棋牌策略输入到已训练的棋牌组合模型和已训练的棋牌使用模型;
通过已训练的棋牌组合模型和已训练的棋牌使用模型与其它对弈选手对战;
根据对战结果统计待更新的棋牌组合以及待更新的棋牌策略的胜率,以完成对棋牌游戏策略的评估;
根据评估结果更新所述游戏的对弈策略;
其中,所述初始棋牌组合模型和所述初始棋牌使用模型为图片识别模型,所述对弈策略为所述棋牌组合和棋牌使用的统称。
在上述方法的优选技术方案中,所述对弈选手的棋牌组合的对弈图像训练集,以及所述棋牌在棋盘上的使用方案的对弈图像训练集的获得方法具体包括:
获取游戏视频图像;
将所述游戏视频图像中棋牌组合部分的视频流以设定帧率截取多张图片作为对弈选手的棋牌组合的对弈图像训练集,将所述游戏视频图像中棋牌使用部分的视频流以设定帧率截取多张图片作为对弈选手的棋牌在棋盘上的使用方案的对弈图像训练集。
在上述方法的优选技术方案中,“获取游戏视频图像”的具体方案为:
登陆直播平台并维持会话请求;
向直播平台的服务器发送面向用户的对外房间ID号,获得包含响应状态码和响应体的返回信息,然后将返回信息转化为json的中间文本信息;
对中间文本信息进行搜索,获得带有room的真实房间ID号的字符串;
将真实房间ID号、请求图像质量代码、请求平台类型代码、请求参数类型代码整体再次发送向直播平台的服务器,获得json格式的最终文本信息;其中,请求质量代码为自行设置的参数,480P、720P或1080P,请求平台类型代码和请求参数类型代码在平台上均可查询;
将json格式的最终文本信息进行解读,获得真实直播源地址,然后对真实直播源地址进行解协议、解封装和视频解码,最终获得游戏视频图像。
在上述方法的优选技术方案中,所述已训练的棋牌使用模型具体包括:棋牌在棋盘上的位置识别模型、棋牌的血量识别模型和使用棋牌的总金币识别模型;
所述棋牌在棋盘上的位置识别模型用于识别棋牌的具体位置;
所述棋牌的血量识别模型用于识别棋牌的具体剩余血量;
单局对战中,每个棋牌的使用将消耗金币进行购买,所述使用棋牌的总金币识别模型用于识别目前剩余的金币总数;
并且/或者,
“将待更新的棋牌组合以及待更新的棋牌策略输入到已训练的棋牌组合模型和已训练的棋牌使用模型”的步骤具体包括:
将待更新的棋牌组合以及待更新的棋牌策略输入到决策模型,所述决策模型再将两者分别对应输入到已训练的棋牌组合模型和已训练的棋牌使用模型;
其中,所述决策模型为强化学习模型。
在上述方法的优选技术方案中,“通过已训练的棋牌组合模型和已训练的棋牌使用模型与其它对弈选手对战”的方案具体包括:
在Linux系统下模拟手机系统运行环境,并运行棋牌游戏;
通过已训练的棋牌组合模型和已训练的棋牌使用模型当中输入的待更新的棋牌策略,获得待更新的棋牌策略当中需要利用模拟光标代替手势触摸执行最终的动作;
根据最终的动作,控制每次模拟光标点击动作的维持时间、点击释放间隔时间以不同的数值随机改变,并使拖动轨迹沿非线性的平滑随机移动,完成棋子的操控,实现与其它对弈选手对战。
本发明还提供了一种棋牌游戏策略更新的系统,其特征在于,包括:
棋牌样式及棋盘获取模块:获取棋牌的所有类型以及棋盘的排布;
对弈图像训练集获取模块:获取棋牌对弈选手的棋牌组合的对弈图像训练集,以及棋牌在棋盘上的使用方案的对弈图像训练集;
棋牌组合模型训练模块:通过所述棋牌组合的对弈图像训练集对初始棋牌组合模型进行训练,得到已训练的棋牌组合模型;
棋盘使用模型训练模块:通过所述棋牌在棋盘上的使用方案的对弈图像训练集对初始棋牌使用模型进行训练,得到已训练的棋牌使用模型;
对弈策略输入模块:将待更新的棋牌组合以及待更新的棋牌策略输入到已训练的棋牌组合模型和已训练的棋牌使用模型;
对弈策略执行模块:通过已训练的棋牌组合模型和已训练的棋牌使用模型与其它对弈选手对战;
胜利统计评估模块:统计待更新的棋牌组合以及待更新的棋牌策略的胜率,以完成对棋牌游戏策略的评估;
对弈策略更新模块:根据评估结果更新所述游戏的对弈策略;
其中,所述初始棋牌组合模型和所述初始棋牌使用模型为图片识别模型,所述对弈策略为所述棋牌组合和棋牌使用的统称。
在上述系统的优选技术方案中,所述对弈选手的棋牌组合的对弈图像训练集,以及所述棋牌在棋盘上的使用方案的对弈图像训练集的获得方法所涉及的系统具体包括:
视频获取模块:获取游戏视频图像;
截图模块:将所述游戏视频图像中棋牌组合部分的视频流以设定帧率截取多张图片作为对弈选手的棋牌组合的对弈图像训练集,将所述游戏视频图像中棋牌使用部分的视频流以设定帧率截取多张图片作为对弈选手的棋牌在棋盘上的使用方案的对弈图像训练集。
在上述系统的优选技术方案中,视频获取模块具体包括:
维持会话模块:登陆直播平台并维持会话请求;
中间文本获取模块:向直播平台的服务器发送面向用户的对外房间ID号,获得包含响应状态码和响应体的返回信息,然后将返回信息转化为json的中间文本信息;
真实房间ID获取模块:对中间文本信息进行搜索,获得带有room的真实房间ID号的字符串;
最终文本获取模块:将真实房间ID号、请求图像质量代码、请求平台类型代码、请求参数类型代码整体再次发送向直播平台的服务器,获得json格式的最终文本信息;其中,请求质量代码为自行设置的参数,480P、720P或1080P,请求平台类型代码和请求参数类型代码在平台上均可查询;
视频解码模块:将json格式的最终文本信息进行解读,获得真实直播源地址,然后对真实直播源地址进行解协议、解封装和视频解码,最终获得游戏视频图像。
在上述系统的优选技术方案中,所述对弈策略执行模块具体包括:
游戏启动模块:在Linux系统下模拟手机系统运行环境,并运行棋牌游戏;
光标动作确认模块:通过已训练的棋牌组合模型和已训练的棋牌使用模型当中输入的待更新的棋牌策略,获得待更新的棋牌策略当中需要利用模拟光标代替手势触摸执行最终的动作;
光标动作拟人模块:根据最终的动作,控制每次模拟光标点击动作的维持时间、点击释放间隔时间以不同的数值随机改变,并使拖动轨迹沿非线性的平滑随机移动,完成棋子的操控,实现与其它对弈选手对战。
本发明还提供了一种计算机可读存储介质,所述存储介质中存储有多条程序代码,所述程序代码适用于由处理器加载并运行以执行上述任一项的基于模型的棋牌游戏策略更新的方法。
本发明还提供了一种终端装置,该控制装置包括处理器和存储器,所述存储器适用于存储多条程序代码,所述程序代码适于由所述处理器加载并运行以执行上述任一项的基于模型的棋牌游戏策略更新的方法。
本领域人员能够理解的是,在本发明的技术方案中,基于模型的棋牌游戏策略更新的方法具体包括:获取棋牌对弈选手的棋牌组合的对弈图像训练集,以及棋牌在棋盘上的使用方案的对弈图像训练集;通过棋牌组合的对弈图像训练集对初始棋牌组合模型进行训练,得到已训练的棋牌组合模型;通过棋牌在棋盘上的使用方案的对弈图像训练集对初始棋牌使用模型进行训练,得到已训练的棋牌使用模型;将待更新的棋牌组合以及待更新的棋牌策略输入到已训练的棋牌组合模型和已训练的棋牌使用模型;通过已训练的棋牌组合模型和已训练的棋牌使用模型与其它对弈选手对战;统计待更新的棋牌组合以及待更新的棋牌策略的胜率,以完成对棋牌游戏策略的评估;根据评估结果更新游戏的对弈策略;其中,已训练的棋牌组合模型和已训练的棋牌使用模型为图片识别模型,对弈策略为棋牌组合和棋牌使用的统称。
通过上述设置方式,本发明能够获得一个能够辅助研发人员的模型,研发人员再将其自己的棋牌组合以及棋牌使用方案预先输入到模型当中,模型即可自动完成与其它选手完成对战,最终获得棋牌策略的胜率,当胜率过高或过第时再调整策略和棋牌组合,以使最终更新的棋牌策略达到一个合理的强度。通过上述方案,研发人员无需再人工试验多次,降低了其劳动强度,缩短了工作时间,除此之外,研发人员人工试验还经常会出现跳出原有设计的思路的情况,依据不同情况不自觉地改变了策略,这也将使得最终的对弈策略的胜率真实性不够可靠,本发明通过模型来替代研发人员的实验工作,还提升了对弈策略评估的真实性。
附图说明
下面参照附图来描述本发明的基于模型的棋牌游戏策略更新的方法、系统、介质及装置。附图中:
图1为本发明的基于模型的棋牌游戏策略更新的方法的整体流程图;
图2为图1中步骤S02当中的对弈图像训练集的一种获得方案的流程图;
图3为图1中步骤S06的一种具体实施方式的流程图;
图4为本发明的系统的模块组合图;
图5为图4中的对弈图像训练集获取模块的进一步展开图;
图6为本发明的基于模型的棋牌游戏策略更新的方法的实际使用效果图。
具体实施方式
下面参照附图来描述本发明的优选实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非旨在限制本发明的保护范围。本领域技术人员可以根据需要对其作出调整,以便适应具体的应用场合。
在本发明的描述中,“模块”、“处理器”可以包括硬件、软件或者两者的组合。一个模块可以包括硬件电路,各种合适的感应器,通信端口,存储器,也可以包括软件部分,比如程序代码,也可以是软件和硬件的组合。处理器可以是中央处理器、微处理器、图像处理器、数字信号处理器或者其他任何合适的处理器。处理器具有数据和/或信号处理功能。处理器可以以软件方式实现、硬件方式实现或者二者结合方式实现。非暂时性的计算机可读存储介质包括任何合适的可存储程序代码的介质,比如磁碟、硬盘、光碟、闪存、只读存储器、随机存取存储器等等。术语“A和/或B”表示所有可能的A与B的组合,比如只是A、只是B或者A和B。术语“至少一个A或B”或者“A和B中的至少一个”含义与“A和/或B”类似,可以包括只是A、只是B或者A和B。单数形式的术语“一个”、“这个”也可以包含复数形式。
参照图1至图6,对本发明基于模型的棋牌游戏策略更新的方法和系统进行详细展开。
如图1所示,为了解决现有的官方推荐棋牌组合以及使用方案设定困难、强度不可控、浪费人力资源的问题,本发明提供了一种棋牌有洗策略更新的方法,具体包括:
S01、获取棋牌的所有类型以及棋盘的排布。
依据不同棋牌类的游戏,获取所需设定游戏的棋牌的所有类型以及棋盘的分布,下面以腾讯旗下的手游王者荣耀的自走棋玩法为例进行说明,当然还可以是其它类型的游戏,例如暴雪公司旗下的炉石传说、或者常规的象棋等,还可以是三国杀的卡牌类等,只要能适用于本发明的方法的棋牌类游戏均可,针对不同棋牌类的游戏,相应地进行适应性的调整即可。
王者荣耀的自走棋当中设置有许多的棋子,每个棋子都有自己独立的人物模型以及名称,在游戏起始阶段需要选取一定数量的棋子,相应地为了识别准确,首先需要获取所有的棋子的类型以及棋盘的排布,为后续棋牌组合的识别以及使用奠定基础。当然,获取棋牌的所有类型是为了使后续的识别更加准确,不设置此步骤也是可以实现的。
S02、获取棋牌对弈选手的棋牌组合的对弈图像训练集,以及棋牌在棋盘上的使用方案的对弈图像训练集。
在王者荣耀自走棋当中,首先要从棋牌池内选取棋牌的组合,然后根据棋牌的组合设定合适的策略进行游戏对战,基于此玩法,先获取棋牌组合的训练集,然后在获取使用方案的训练集。
其中,训练集的获取方式多样,可以是人工摄录某些对局内进行棋牌组合以及棋牌在棋盘上的使用方案,然后进行图像截取,也可以是通过获取直播信息,然后从直播信息中实施截取图像等等,只要能获得对弈图像训练集即可。由于直播信息是最贴近实际时间的,并且也是最贴近用户日常使用的策略方案,为了确保对弈策略的更新及时,直播信息是更佳的选择,在本申请的后续部分会对其中一种直播信息的获取方案的详细步骤进行展开。
S03、通过棋牌组合的对弈图像训练集对初始棋牌组合模型进行训练,得到已训练的棋牌组合模型。
S04、通过棋牌在棋盘上的使用方案的对弈图像训练集对初始棋牌使用模型进行训练,得到已训练的棋牌使用模型。
初始棋牌组合模型与初始棋牌使用模型为图片识别模型,可以选用现有的图片识别模型,例如YOLO模型、SSD模型、RCNN,Fast-RCNN,Faster-RCNN,Mask-RCNN等等,本领域技术人员可以根据实际需要灵活选择。通过步骤S02获得的两个对弈图像训练集分别对初始棋牌组合模型与初始棋牌使用模型进行训练,得到已训练的棋牌组合模型和已训练的棋牌使用模型。
S05、将待更新的棋牌组合以及待更新的棋牌使用方案输入到已训练的棋牌组合模型和已训练的棋牌使用模型。
S06、通过已训练的棋牌组合模型和已训练的棋牌使用模型与其它对弈选手对战。
S07、统计待更新的棋牌组合以及待更新的棋牌使用方案的胜率,以完成对棋牌游戏策略的评估。
S08、根据评估结果更新游戏的对弈策略,其中,对弈策略为棋牌组合和棋牌使用的统称。
模型训练完毕之后,当随着游戏更新,需要更新针对新手的推荐游戏策略时,研发人员可以不再继续将游戏更新后的棋牌组合以及棋牌使用方案进行大量人工测试了,而是将待更新的棋牌组合以及棋牌使用方案分别直接分别输入到已训练的棋牌组合模型和已训练的棋牌使用模型即可,这些模型将严格执行研发人员的棋牌组合和棋牌使用方案与真人展开对弈,从而完成对棋牌策略的胜率的评估,然后根据胜率再对棋牌组合或棋牌使用方案进行优化,最终得到一个合理的对弈策略,然后更新并发布即可。其运行的实际状况如图6所示。
其中,步骤S05还可以进一步包括:将待更新的棋牌组合以及待更新的棋牌策略输入到决策模型,所策模型再将两者分别对应输入到已训练的棋牌组合模型和已训练的棋牌使用模型,其中,决策模型为强化学习模型。
增加决策模型,能够进一步减少研发人员输入以及编辑组合方案和使用方案的困难,并且决策模型可以根据使用的时长,同步学习更多的游戏玩法的基本规则,避免出现较多的游戏规则错误而导致程序无法运行,进一步节省了研发人员的时间。决策模型可以是DEEP-Q-NETWORK,或者是Q learning等常用的强化学习模型。
针对王者荣耀的自走棋这类的单个棋牌具有多个参数的方案,在一种可能地具体实施方式中,已训练的棋牌使用模型具体包括:棋牌在棋盘上的位置识别模型、棋牌的血量识别模型和使用棋牌的总金币识别模型;其中,棋牌在棋盘上的位置识别模型用于识别棋牌的具体位置;棋牌的血量识别模型用于识别棋牌的具体剩余血量;单局对战中,每个棋牌的使用将消耗金币进行购买,使用棋牌的总金币识别模型用于识别目前剩余的金币总数,通过上述三个模型来实现棋牌的使用过程。当然,随着游戏的不同,棋牌使用模型的组成也不尽相同,例如象棋便并没有血量与金币的概念,又例如炉石传说具有血量的概念,不具有金币的概念,但是其还具有一个能量条的概念,针对不同的游戏,设置不同的模型即可。
与现有技术相比,本发明的创造性还在于,现有技术当中多是对人工智能对弈进行的展开,然而,设置一个人工智能机器人所需要的人力与精力太过庞大,其目的是为了实现机器人与真人的对弈,而并非仅仅是为了设置几套推荐方案,人工智能机器人所需要投入的金钱和精力非常高,实际应用当中显然不可能为了几个简单的推荐方案而独立研发一套系统,因此才催生出了现有的推荐方案通常是人工完成的情况,而人工最大的问题就在于设计完棋牌组合以及使用方案后还需要多次的实战才能辨识这个推荐卡组的情况,如果胜率不如意再重新调整又要耗费极长的时间。而通过本发明的方案,模型设计简单可靠,无需大量的精力投入,即可实现模型的搭建,当需要对推荐方案进行更新时,直接将研发人员的对弈策略输入到模型当中,模型通过该对弈策略即可完成与真人的线上对战,并且并不会随着对手的不同而改变策略刻意提高胜率,因为这个模型搭建的目的并不是为了尽可能提高胜率,而是为了验证某一套方案的胜率,这样的发明构思也与现有技术产生了明显的不同。
经过上面的描述,已经对本发明的整体方案进行了完整阐述,下面结合图2,对其中提及的步骤S02当中的如何获取对弈图像训练集的一种具体实施方式进行详细展开。
如图2所示,获取对弈图像训练集的具体方案包括:
S021、获取游戏视频图像;
S022、将游戏视频图像中棋牌组合部分的视频流以设定帧率截取多张图片作为对弈选手的棋牌组合的对弈图像训练集,将游戏视频图像中棋牌使用部分的视频流以设定帧率截取多张图片作为对弈选手的棋牌在棋盘上的使用方案的对弈图像训练集。
首先获取到游戏视频,然后对游戏视频进行图像截取,优选地,实际使用当中,选择以1帧每秒的速度按jpg格式进行截图,然后写入本地磁盘,这些图像当中再进行挑选以及数据标注,最终得到许多场游戏的不同棋牌组合方案和棋牌使用方案的对弈图像训练集。
其中,步骤S201的获取游戏视频的方案还可以具体包括:
S0211、登陆直播平台并维持会话请求。
通过账号等方式正常登录直播平台,以确保直播平台的远程服务器和我们的所有请求行为都统一在一个对话环境下。
S0212、向直播平台的服务器发送面向用户的对外房间ID号,获得包含响应状态码和响应体的返回信息,然后将返回信息转化为json的中间文本信息。
以指定的目标房间代码,也即对外房间ID号为请求参数,结合直播平台公布的房间查询服务器网络地址构造统一资源定位符,然后向远程服务器发送请求并得到包含响应状态码和响应头、响应体的返回信息,然后将返回信息转化为json格式的中间文本信息以进行后续解析。
S0213、对中间文本信息进行搜索,获得带有room的真实房间ID号的字符串。
对返回信息的数据字段利用正则匹配规则,字符串room必须至少出现一次,下划线可以不出现或出现一次,搜索到目标关键字段真实房间ID号。
S0214、将真实房间ID号、请求图像质量代码、请求平台类型代码、请求参数类型代码整体再次发送向直播平台的服务器,获得json格式的最终文本信息;其中,请求质量代码为自行设置的参数,480P、720P或1080P,请求平台类型代码和请求参数类型代码在平台上均可查询。
先后组合真实房间ID号、请求图像质量代码、请求平台类型代码、请求参数类型代码等参数信息,向直播平台的播放服务器请求页面内容并获得json格式的最终文本信息。
S0215、将json格式的最终文本信息进行解读,获得真实直播源地址,然后对真实直播源地址进行解协议、解封装和视频解码,最终获得游戏视频图像。
解析成功返回的json最终文本信息中的,通过正则匹配表达式搜索到的地址信息即为最终的真实直播源地址,然后利用图像流媒体技术对直播平台的直播源先后进行解协议、解封装、视频解码的步骤,最终获取游戏视频图像的原始数据。
上面已经对视频图像的获取的具体实施方式进行了表达,下面针对图1当中的步骤S06“通过已训练的棋牌组合模型和已训练的棋牌使用模型与其它对弈选手对战”的具体实施方式,结合图3进行详细展开。
如图6所示,王者荣耀的自走棋属于手机游戏,但是对弈策略的运行通常是在电脑端进行的,并且,由于王者荣耀本身是带有反作弊行为的,即使是研发人员也没有办法完全避开,一旦触发反作弊系统,反而会对研发过程造成阻碍,为了避免这种情况的发生,本发明设计了一种具体的实施方式,如图3所示:
S061、在Linux系统下模拟手机系统运行环境,并运行棋牌游戏。
电脑端本身属于windows系统,无法直接运行手机游戏,为了实现电脑端的控制,通常设置一个模拟器,例如安卓模拟器来实现,安卓本身也属于Linux系统中的一种,当然,这里还可以是其它Linux系统,例如Ubuntu系统、readhat系统、centos系统、Fedora系统等等。通过一个模拟器来使电脑端控制游戏运行。
S062、通过已训练的棋牌组合模型和已训练的棋牌使用模型当中输入的待更新的棋牌策略,获得待更新的棋牌策略当中需要利用模拟光标代替手势触摸执行最终的动作。
首先利用流媒体技术根据软件窗口获取当前游戏运行图像,然后利用已训练的棋牌组合模型和已训练的棋牌使用模型得到当前的局势信息,再利用输入到决策模型当中的对弈策略得到最佳动作,然后依据这个最佳动作获得待更新的棋牌策略当中需要利用模拟光标代替手势触摸执行最终的动作。
S063、根据最终的动作,控制每次模拟光标点击动作的维持时间、点击释放间隔时间以不同的数值随机改变,并使拖动轨迹沿非线性的平滑随机移动,完成棋子的操控,实现与其它对弈选手对战。
如果直接按照设定时间点击、释放,以及按照绝对的直线进行拖动,则很容易触发王者荣耀自带的反作弊系统,通过设置时间间隔的不同以及拖动轨迹的平滑随机,能够很好地避免这些情况的发生,实现与其它选手的正常对弈。
下面结合图4和图5,对本发明的棋牌游戏策略更新的系统进行描述,本发明的系统具体包括:
棋牌样式及棋盘获取模块:获取棋牌的所有类型以及棋盘的排布;
对弈图像训练集获取模块:获取棋牌对弈选手的棋牌组合的对弈图像训练集,以及棋牌在棋盘上的使用方案的对弈图像训练集;
棋牌组合模型训练模块:通过所述棋牌组合的对弈图像训练集对初始棋牌组合模型进行训练,得到已训练的棋牌组合模型;
棋盘使用模型训练模块:通过所述棋牌在棋盘上的使用方案的对弈图像训练集对初始棋牌使用模型进行训练,得到已训练的棋牌使用模型;
对弈策略输入模块:将待更新的棋牌组合以及待更新的棋牌策略输入到已训练的棋牌组合模型和已训练的棋牌使用模型;
对弈策略执行模块:通过已训练的棋牌组合模型和已训练的棋牌使用模型与其它对弈选手对战;
胜利统计评估模块:统计待更新的棋牌组合以及待更新的棋牌策略的胜率,以完成对棋牌游戏策略的评估;
对弈策略更新模块:根据评估结果更新所述游戏的对弈策略;
其中,所述初始棋牌组合模型和所述初始棋牌使用模型为图片识别模型,所述对弈策略为所述棋牌组合和棋牌使用的统称。
其中,对弈策略执行模块具体包括:
游戏启动模块:在Linux系统下模拟手机系统运行环境,并运行棋牌游戏;
光标动作确认模块:通过已训练的棋牌组合模型和已训练的棋牌使用模型当中输入的待更新的棋牌策略,获得待更新的棋牌策略当中需要利用模拟光标代替手势触摸执行最终的动作;
光标动作拟人模块:根据最终的动作,控制每次模拟光标点击动作的维持时间、点击释放间隔时间以不同的数值随机改变,并使拖动轨迹沿非线性的平滑随机移动,完成棋子的操控,实现与其它对弈选手对战。
对弈图像训练集获得方法所设计的系统具体包括:
视频获取模块:获取游戏视频图像;
截图模块:将所述游戏视频图像中棋牌组合部分的视频流以设定帧率截取多张图片作为对弈选手的棋牌组合的对弈图像训练集,将所述游戏视频图像中棋牌使用部分的视频流以设定帧率截取多张图片作为对弈选手的棋牌在棋盘上的使用方案的对弈图像训练集。
其中,视频获取模块进一步包括:
维持会话模块:登陆直播平台并维持会话请求;
中间文本获取模块:向直播平台的服务器发送面向用户的对外房间ID号,获得包含响应状态码和响应体的返回信息,然后将返回信息转化为json的中间文本信息;
真实房间ID获取模块:对中间文本信息进行搜索,获得带有room的真实房间ID号的字符串;
最终文本获取模块:将真实房间ID号、请求图像质量代码、请求平台类型代码、请求参数类型代码整体再次发送向直播平台的服务器,获得json格式的最终文本信息;其中,请求质量代码为自行设置的参数,480P、720P或1080P,请求平台类型代码和请求参数类型代码在平台上均可查询;
视频解码模块:将json格式的最终文本信息进行解读,获得真实直播源地址,然后对真实直播源地址进行解协议、解封装和视频解码,最终获得游戏视频图像。
本发明还提供了一种计算机可读存储介质,存储介质中存储有多条程序代码,程序代码适用于由处理器加载并运行以执行上述技术方案中任一项的基于模型的棋牌游戏策略更新的方法。
本发明还提供了一种终端装置,该控制装置包括处理器和存储器,存储器适用于存储多条程序代码,程序代码适于由处理器加载并运行以执行上述技术方案中任一项的基于模型的棋牌游戏策略更新的方法。
需要说明的是,上述实施方式仅仅用来阐述本发明的原理,并非旨在与限制本发明的保护范围,在不偏离本发明原理的条件下,本领域技术人员能够对上述结构进行调整,以便本发明能够应用于更加具体的应用场景。
进一步,在本发明的一种计算机存储装置的一个实施例中,该计算机存储装置存储多条程序代码,所述程序代码适用于由处理器加载并运行以执行前述的方法。所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器、随机存取存储器、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
进一步,应该理解的是,由于各个模块的设定仅仅是为了说明本发明的系统的功能单元,这些模块对应的物理器件可以是处理器本身,或者处理器中软件的一部分,硬件的一部分,或者软件和硬件结合的一部分。因此,图中的各个模块的数量仅仅是示意性的。
本领域技术人员能够理解的是,可以对系统中的各个模块进行适应性地拆分或合并。对具体模块的这种拆分或合并并不会导致技术方案偏离本发明的原理,因此,拆分或合并之后的技术方案都将落入本发明的保护范围内。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
Claims (7)
1.一种基于模型的棋牌游戏策略更新的方法,其特征在于,包括:
获取棋牌对弈选手的棋牌组合的对弈图像训练集,以及棋牌在棋盘上的使用方案的对弈图像训练集;
通过所述棋牌组合的对弈图像训练集对初始棋牌组合模型进行训练,得到已训练的棋牌组合模型;
通过所述棋牌在棋盘上的使用方案的对弈图像训练集对初始棋牌使用模型进行训练,得到已训练的棋牌使用模型;
将待更新的棋牌组合以及待更新的棋牌策略输入到已训练的棋牌组合模型和已训练的棋牌使用模型;
通过已训练的棋牌组合模型和已训练的棋牌使用模型与其它对弈选手对战;
根据对战结果统计待更新的棋牌组合以及待更新的棋牌策略的胜率,以完成对棋牌游戏策略的评估;
根据评估结果更新所述游戏的对弈策略;
其中,所述初始棋牌组合模型和所述初始棋牌使用模型为图片识别模型,所述对弈策略为所述棋牌组合和棋牌使用的统称;
其中,所述对弈选手的棋牌组合的对弈图像训练集,以及所述棋牌在棋盘上的使用方案的对弈图像训练集的获得方法具体包括:
获取游戏视频图像;
将所述游戏视频图像中棋牌组合部分的视频流以设定帧率截取多张图片作为对弈选手的棋牌组合的对弈图像训练集,将所述游戏视频图像中棋牌使用部分的视频流以设定帧率截取多张图片作为对弈选手的棋牌在棋盘上的使用方案的对弈图像训练集;
其中,“获取游戏视频图像”的具体方案为:
登陆直播平台并维持会话请求;
向直播平台的服务器发送面向用户的对外房间ID号,获得包含响应状态码和响应体的返回信息,然后将返回信息转化为json的中间文本信息;
对中间文本信息进行搜索,获得带有room的真实房间ID号的字符串;
将真实房间ID号、请求图像质量代码、请求平台类型代码、请求参数类型代码整体再次发送向直播平台的服务器,获得json格式的最终文本信息;其中,请求质量代码为自行设置的参数,480P、720P或1080P,请求平台类型代码和请求参数类型代码在平台上均可查询;
将json格式的最终文本信息进行解读,获得真实直播源地址,然后对真实直播源地址进行解协议、解封装和视频解码,最终获得游戏视频图像。
2.根据权利要求1所述的方法,其特征在于,所述已训练的棋牌使用模型具体包括:棋牌在棋盘上的位置识别模型、棋牌的血量识别模型和使用棋牌的总金币识别模型;
所述棋牌在棋盘上的位置识别模型用于识别棋牌的具体位置;
所述棋牌的血量识别模型用于识别棋牌的具体剩余血量;
单局对战中,每个棋牌的使用将消耗金币进行购买,所述使用棋牌的总金币识别模型用于识别目前剩余的金币总数;
并且/或者,
“将待更新的棋牌组合以及待更新的棋牌策略输入到已训练的棋牌组合模型和已训练的棋牌使用模型”的步骤具体包括:
将待更新的棋牌组合以及待更新的棋牌策略输入到决策模型,所述决策模型再将两者分别对应输入到已训练的棋牌组合模型和已训练的棋牌使用模型;
其中,所述决策模型为强化学习模型。
3.根据权利要求1所述的方法,其特征在于,“通过已训练的棋牌组合模型和已训练的棋牌使用模型与其它对弈选手对战”的方案具体包括:
在Linux系统下模拟手机系统运行环境,并运行棋牌游戏;
通过已训练的棋牌组合模型和已训练的棋牌使用模型当中输入的待更新的棋牌策略,获得待更新的棋牌策略当中需要利用模拟光标代替手势触摸执行最终的动作;
根据最终的动作,控制每次模拟光标点击动作的维持时间、点击释放间隔时间以不同的数值随机改变,并使拖动轨迹沿非线性的平滑随机移动,完成棋子的操控,实现与其它对弈选手对战。
4.一种棋牌游戏策略更新的系统,其特征在于,包括:
棋牌样式及棋盘获取模块:获取棋牌的所有类型以及棋盘的排布;
对弈图像训练集获取模块:获取棋牌对弈选手的棋牌组合的对弈图像训练集,以及棋牌在棋盘上的使用方案的对弈图像训练集;
棋牌组合模型训练模块:通过所述棋牌组合的对弈图像训练集对初始棋牌组合模型进行训练,得到已训练的棋牌组合模型;
棋盘使用模型训练模块:通过所述棋牌在棋盘上的使用方案的对弈图像训练集对初始棋牌使用模型进行训练,得到已训练的棋牌使用模型;
对弈策略输入模块:将待更新的棋牌组合以及待更新的棋牌策略输入到已训练的棋牌组合模型和已训练的棋牌使用模型;
对弈策略执行模块:通过已训练的棋牌组合模型和已训练的棋牌使用模型与其它对弈选手对战;
胜利统计评估模块:统计待更新的棋牌组合以及待更新的棋牌策略的胜率,以完成对棋牌游戏策略的评估;
对弈策略更新模块:根据评估结果更新所述游戏的对弈策略;
其中,所述初始棋牌组合模型和所述初始棋牌使用模型为图片识别模型,所述对弈策略为所述棋牌组合和棋牌使用的统称;
其中,所述对弈选手的棋牌组合的对弈图像训练集,以及所述棋牌在棋盘上的使用方案的对弈图像训练集的获得方法所涉及的系统具体包括:
视频获取模块:获取游戏视频图像;
截图模块:将所述游戏视频图像中棋牌组合部分的视频流以设定帧率截取多张图片作为对弈选手的棋牌组合的对弈图像训练集,将所述游戏视频图像中棋牌使用部分的视频流以设定帧率截取多张图片作为对弈选手的棋牌在棋盘上的使用方案的对弈图像训练集;
其中,视频获取模块具体包括:
维持会话模块:登陆直播平台并维持会话请求;
中间文本获取模块:向直播平台的服务器发送面向用户的对外房间ID号,获得包含响应状态码和响应体的返回信息,然后将返回信息转化为json的中间文本信息;
真实房间ID获取模块:对中间文本信息进行搜索,获得带有room的真实房间ID号的字符串;
最终文本获取模块:将真实房间ID号、请求图像质量代码、请求平台类型代码、请求参数类型代码整体再次发送向直播平台的服务器,获得json格式的最终文本信息;其中,请求质量代码为自行设置的参数,480P、720P或1080P,请求平台类型代码和请求参数类型代码在平台上均可查询;
视频解码模块:将json格式的最终文本信息进行解读,获得真实直播源地址,然后对真实直播源地址进行解协议、解封装和视频解码,最终获得游戏视频图像。
5.根据权利要求4所述的系统,其特征在于,所述对弈策略执行模块具体包括:
游戏启动模块:在Linux系统下模拟手机系统运行环境,并运行棋牌游戏;
光标动作确认模块:通过已训练的棋牌组合模型和已训练的棋牌使用模型当中输入的待更新的棋牌策略,获得待更新的棋牌策略当中需要利用模拟光标代替手势触摸执行最终的动作;
光标动作拟人模块:根据最终的动作,控制每次模拟光标点击动作的维持时间、点击释放间隔时间以不同的数值随机改变,并使拖动轨迹沿非线性的平滑随机移动,完成棋子的操控,实现与其它对弈选手对战。
6.一种计算机可读存储介质,所述存储介质中存储有多条程序代码,其特征在于,所述程序代码适用于由处理器加载并运行以执行权利要求1-3中任一项的基于模型的棋牌游戏策略更新的方法。
7.一种终端装置,该终端装置包括处理器和存储器,所述存储器适用于存储多条程序代码,其特征在于,所述程序代码适于由所述处理器加载并运行以执行权利要求1-3中任一项的基于模型的棋牌游戏策略更新的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110046490.9A CN112704882B (zh) | 2021-01-14 | 2021-01-14 | 基于模型的棋牌游戏策略更新的方法、系统、介质及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110046490.9A CN112704882B (zh) | 2021-01-14 | 2021-01-14 | 基于模型的棋牌游戏策略更新的方法、系统、介质及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112704882A CN112704882A (zh) | 2021-04-27 |
CN112704882B true CN112704882B (zh) | 2021-09-14 |
Family
ID=75549020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110046490.9A Active CN112704882B (zh) | 2021-01-14 | 2021-01-14 | 基于模型的棋牌游戏策略更新的方法、系统、介质及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112704882B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113468429B (zh) * | 2021-07-20 | 2023-10-03 | 网易(杭州)网络有限公司 | 牌组优化方法、装置、存储介质及计算机设备 |
CN113546398A (zh) * | 2021-07-30 | 2021-10-26 | 重庆五诶科技有限公司 | 基于人工智能算法的棋牌游戏方法及系统 |
CN113703747B (zh) * | 2021-08-25 | 2023-08-18 | 闲徕互娱(成都)网络科技有限公司 | 基于Unity棋牌游戏的可视化动态配置系统、配置方法、计算机可读介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106924961A (zh) * | 2017-04-01 | 2017-07-07 | 哈尔滨工业大学 | 一种智能象棋对弈控制方法及系统 |
CN108764447A (zh) * | 2018-05-16 | 2018-11-06 | 西安交通大学 | 一种群机器人麻将博弈智动化系统及麻将识别学习算法 |
CN109045676A (zh) * | 2018-07-23 | 2018-12-21 | 西安交通大学 | 一种象棋识别学习算法和基于该算法的机器人智动化系统与方法 |
CN109621422A (zh) * | 2018-11-26 | 2019-04-16 | 腾讯科技(深圳)有限公司 | 电子棋牌决策模型训练方法及装置、策略生成方法及装置 |
CN110368690A (zh) * | 2019-07-31 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 游戏决策模型训练方法、游戏策略生成方法及装置 |
KR102045567B1 (ko) * | 2017-02-24 | 2019-11-18 | 고려대학교 산학협력단 | 딥러닝에 기반한 컬링 경기 전략 추천 장치 및 그 방법 |
CN111111220A (zh) * | 2020-03-26 | 2020-05-08 | 腾讯科技(深圳)有限公司 | 多人对战游戏的自对弈模型训练方法、装置和计算机设备 |
CN111667043A (zh) * | 2020-05-20 | 2020-09-15 | 季华实验室 | 一种棋类游戏对弈方法、系统、终端以及存储介质 |
CN111841016A (zh) * | 2019-04-28 | 2020-10-30 | 北京达佳互联信息技术有限公司 | 游戏ai系统、游戏ai的信息处理方法、装置和存储介质 |
CN111882072A (zh) * | 2020-07-09 | 2020-11-03 | 北京华如科技股份有限公司 | 一种与规则对弈的智能模型自动化课程训练方法 |
CN112016704A (zh) * | 2020-10-30 | 2020-12-01 | 超参数科技(深圳)有限公司 | Ai模型训练方法、模型使用方法、计算机设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11065549B2 (en) * | 2019-03-15 | 2021-07-20 | Sony Interactive Entertainment Inc. | AI modeling for video game coaching and matchmaking |
CN111494959B (zh) * | 2020-04-22 | 2021-11-09 | 腾讯科技(深圳)有限公司 | 游戏操控方法、装置、电子设备及计算机可读存储介质 |
-
2021
- 2021-01-14 CN CN202110046490.9A patent/CN112704882B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102045567B1 (ko) * | 2017-02-24 | 2019-11-18 | 고려대학교 산학협력단 | 딥러닝에 기반한 컬링 경기 전략 추천 장치 및 그 방법 |
CN106924961A (zh) * | 2017-04-01 | 2017-07-07 | 哈尔滨工业大学 | 一种智能象棋对弈控制方法及系统 |
CN108764447A (zh) * | 2018-05-16 | 2018-11-06 | 西安交通大学 | 一种群机器人麻将博弈智动化系统及麻将识别学习算法 |
CN109045676A (zh) * | 2018-07-23 | 2018-12-21 | 西安交通大学 | 一种象棋识别学习算法和基于该算法的机器人智动化系统与方法 |
CN109621422A (zh) * | 2018-11-26 | 2019-04-16 | 腾讯科技(深圳)有限公司 | 电子棋牌决策模型训练方法及装置、策略生成方法及装置 |
CN111841016A (zh) * | 2019-04-28 | 2020-10-30 | 北京达佳互联信息技术有限公司 | 游戏ai系统、游戏ai的信息处理方法、装置和存储介质 |
CN110368690A (zh) * | 2019-07-31 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 游戏决策模型训练方法、游戏策略生成方法及装置 |
CN111111220A (zh) * | 2020-03-26 | 2020-05-08 | 腾讯科技(深圳)有限公司 | 多人对战游戏的自对弈模型训练方法、装置和计算机设备 |
CN111667043A (zh) * | 2020-05-20 | 2020-09-15 | 季华实验室 | 一种棋类游戏对弈方法、系统、终端以及存储介质 |
CN111882072A (zh) * | 2020-07-09 | 2020-11-03 | 北京华如科技股份有限公司 | 一种与规则对弈的智能模型自动化课程训练方法 |
CN112016704A (zh) * | 2020-10-30 | 2020-12-01 | 超参数科技(深圳)有限公司 | Ai模型训练方法、模型使用方法、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112704882A (zh) | 2021-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112704882B (zh) | 基于模型的棋牌游戏策略更新的方法、系统、介质及装置 | |
Lee et al. | Empirical evaluation of metadata for video games and interactive media | |
US10569163B2 (en) | Server and method for providing interaction in virtual reality multiplayer board game | |
CN110339569B (zh) | 控制游戏场景中虚拟角色的方法及装置 | |
CN103890815A (zh) | 用于主管可被远程自动创建、主管和终止的瞬变虚拟世界的方法和系统 | |
Bontchev | Serious games for and as cultural heritage | |
CN108579095B (zh) | 游戏中的社交关系推荐方法、装置和计算机可读存储介质 | |
CN111569429B (zh) | 模型训练方法、模型使用方法、计算机设备及存储介质 | |
CN109718558B (zh) | 游戏信息的确定方法和装置、存储介质、电子装置 | |
Bloom | Videogame Shakespeare: enskilling audiences through theater-making games | |
CN111437608A (zh) | 基于人工智能的游戏对局方法、装置、设备及存储介质 | |
CN112306321B (zh) | 一种信息展示方法、装置、设备及计算机可读存储介质 | |
CN114288639B (zh) | 画面显示方法、提供方法、装置、设备及存储介质 | |
CN113209640A (zh) | 解说的生成方法、装置、设备及计算机可读存储介质 | |
CN113289345A (zh) | 具有奖励的渐进式人类用户检测挑战 | |
KR102342778B1 (ko) | 사용자 별 개인화된 아바타를 제공하는 골프 시뮬레이션 장치 및 그 동작 방법 | |
Bylieva | A semiverse of games | |
KR102054261B1 (ko) | 인공지능의 데이터분류방법 체득용 보드게임 프로그램이 기록된 컴퓨터 판독이 가능한 기록매체 및 그 시스템과 이를 이용하는 보드게임방법 | |
Pendleton | Introducing the Game Design Matrix: A Step-by-Step Process for Creating Serious Games | |
CN207253722U (zh) | 一种基于cpu模块的电子象棋 | |
KR20210032838A (ko) | 감정을 이용한 게임 장치 및 방법 | |
CN113018853B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN115944921B (zh) | 游戏数据处理方法、装置、设备及介质 | |
Zuccon et al. | Using gamification for solving resource allocation and serving in employee attendance tracking system | |
Arnold et al. | Design principles for creating and maintaining immersive experiences in educational games |
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 |