一种网络博弈游戏的实现方法及系统的制作方法

文档序号:6597540阅读:214来源:国知局
专利名称:一种网络博弈游戏的实现方法及系统的制作方法
技术领域
本发明涉及网络技术领域,尤其涉及一种网络博弈游戏的实现方法及系统。
背景技术
当今社会中,计算机技术应用的范围越来越广,而人工智能是计算机应用的未来 发展方向。人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、 思考、规划等)的学科,主要包括计算机实现智能的原理、制造类似于人脑智能的计算机, 使计算机能实现更高层次的应用。人工智能目前在计算机领域内,得到了愈加广泛的重视, 并在机器人,经济政治决策,控制系统,仿真系统中得到应用。另外,博弈也是人工智能的其 中一种应用,用户可以通过人工智能的仿真系统进行博弈游戏。现有技术中,机器人世界杯足球锦标赛(Robot World Cup, RoboCup)以多 用户系统(Multi-Agent System, MAS)和分布式人工智能(DistributedArtificial Intelligence, DAI)主要研究背景,主要目的就是通过提供一个标准的易于评价的比赛平 台,促进DAI与MAS的研究与发展。Robocup 3D仿真平台是机器人足球比赛仿真组比赛的一 个平台,它给用户程序提供控制球员活动的接口,用户可以自主写程序控制各自球员的活 动进行仿真的足球比赛,通过仿真游戏的比赛实现用户间的智能算法的比赛的一个平台。但是,Robocup 3D仿真平台有很多缺点,首先该平台采用的是客户端/服务器端 (Client/Server, C/S)架构,这从根本上体现了 C/S架构与浏览器端/服务器端(Browser/ Server, B/S)架构相比所存在的劣势。另外,该平台非常复杂,需要安装很多软件,必须运 行在Iinux环境,它是面向机器人领域的人士,要有比较高的编程水平,只适用于有针对性 的人员;另外,它不能运行在互联网平台上的,只能在单机上运行,且只是单机控制各自的 算法运行游戏,而且只支持足球比赛的仿真。

发明内容
本发明实施例所要解决的技术问题在于,提供一种网络博弈游戏的实现方法及系 统,可以通过用户的自定义的智能算法进行网络博弈游戏。为此,本发明实施例提供了一种网络博弈游戏的实现方法,所述方法包括前端控制器接收用户通过浏览器上传的、参与所述游戏的代码及用户控制指令, 并根据所述代码及用户控制指令获得控制参数,将所述控制参数发送给后台控制器,所述 代码是用户根据所述网络博弈游戏的游戏规则编写的;所述后台控制器根据所述控制参数调用相应用户的代码,生成动作信息,并将所 述动作信息发送给动作执行器;所述动作执行器根据所述动作信息执行动作并产生游戏的结果信息及新的环境 fn息ο相应地,本发明实施例还提供了一种网络博弈游戏的实现系统,所述系统包括后 台控制器、动作执行器、前端控制器;
所述前端控制器用于接收用户通过浏览器上传的、参与所述游戏的代码及用户控 制指令,并根据所述代码及用户控制指令获得控制参数,将所述控制参数发送给所述后台 控制器,所述代码是用户根据所述网络博弈游戏的游戏规则编写的;所述后台控制器用于根据所述控制参数调用相应用户的代码,生成动作信息,并 将所述动作信息发送给动作执行器;所述动作执行器用于根据所述动作信息执行动作并产生游戏的结果信息及新的 环境信息。在本发明实施例中,由于方法及系统采用B/S架构,可运行于互联网中,能够应用 于联网环境中;用户只需有浏览器就可以参与网络博弈游戏,懂博弈游戏规则、有编程基础 或学习能力强的用户均可参与;用户可以在线编写自己的算法跟其他人的算法进行网络博 弈游戏;可以推广人工智能的应用。


图1是本发明方法实施例中的网络博弈游戏的实现方法的具体流程示意图;图2是本发明的网络博弈游戏的实现系统的一个实施例的结构组成示意图;图3是本发明的网络博弈游戏的实现系统的另一实施例的结构组成示意图;图4是本发明的网络博弈游戏的实现系统的另一实施例的结构组成示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。本发明实施例的方法及系统应用于B/S网络架构中。可运行在互联网上,用户只 要有浏览器就可以参与本发明提供的博弈游戏;用户更广,懂博弈游戏规则、有编程基础或 学习能力强的用户都可以参与游戏;娱乐性高,用户可以在线编写自己的算法然后跟其他 人的算法进行博弈游戏,如下棋,通过游戏的结果决定各自算法的优弱。可以推广人工智能 的应用。 本发明实施例的网络博弈游戏的游戏规则是具体的游戏规则,如象棋的规则。为了实现通过用户的自定义的智能算法进行网络博弈游戏,本发明实施例提出了 一种网络博弈游戏的实现方法,如图1所示,该方法包括S101,前端控制器接收用户通过浏览器上传的、参与游戏的代码及用户控制指令, 并根据代码及用户控制指令获得控制参数,将控制参数发送给后台控制器,该代码是用户 根据网络博弈游戏的游戏规则编写的;S102,后台控制器根据控制参数调用相应用户的代码,生成动作信息,并将动作信 息发送给动作执行器;S103,动作执行器根据动作信息执行动作并产生游戏的结果信息及新的环境信 肩、ο具体实施中,首先用户选择一个博弈游戏,然后按照本系统规定的语法将自己的思维写成代码(算法),保存后服务器会将该代码进行编译,转化成服务器可以运行的脚本 语言如超级文本预处理语 目(Personal home pageHypertext Preprocessor,PHP),此后用 户则可以选择与其他人的算法进行游戏,用户可以通过自己的浏览器在线观看仿真游戏的 全过程。比如,用户必须按服务器规定的语法编写算法,例如服务器可以规定的简单语法 如下函数定义为“方法方法名(参数){},,格式数组定义为“数组()”等。用户就可以编写下面几行代码就可以参与游戏。如方法下棋(我方颜色,棋盘信息){如果(棋盘信息[1][2]=='空')位置=数组(‘排'=>1,‘列'=> 2);返回位置;}或者需要用户用服务器规定的脚本语言如php/python等语言编写算法。本方法实施例中,后台控制器、动作执行器置于服务器端,而前端控制器置于客户 端(浏览器)。本实施例提供一个在线的代码编辑器和编码语法(也可以直接用Php等语 言编写),用户的代码可以访问当前游戏周期的环境信息,如当前棋盘信息,然后用户根据 这些环境信息进行计算选择一个动作(服务器端的系统会提供动作列表);用户只要选择 一个动作代号(如踢球)和必要的参数(如踢球的力度),或者如象棋游戏,则只要求有动 作代号(下棋)、参数(下棋的位置)。当用户完成自己的算法时可以提交保存到服务器, 服务器会对用户的代码进行检查是否符合规范、是否存在恶意方法等,如果合法的话则会 将改代码编译成后台可以运行的脚本如php,编译成功之后用户就可以选择其他的算法进 行博弈游戏。上述游戏周期是指游戏拆分的最小时间单位,如下棋的游戏周期则是与当前 下棋动作与下一步棋的时间间隔。SlOl中,前端控制器是用来控制游戏开始、结束、角色间的执行顺序和比赛进度 等,前端控制器根据用户代码及用户控制指令标识获得控制参数,其中,用户控制指令可以 包括用户的鼠标点击事件,如开始按钮点击指令、暂停按钮点击指令、结束按钮点击指令 等。具体实施中,前端控制器可以用jaVaSCript(jS)编写,本实施例中下棋的控制逻辑的 程序代码如下function play(i,me)//下棋,i 游戏周期,me 当前下棋的角色{if (me == 1){he = 2 ;}else
}); 后台控制器在实施中可以是一个运行在web服务器的脚本程序,其代码如下
py. php//氺氺氺氺氺氺氺氺氺氺氺jsifj^ PM-^i氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺include_once(' user/' . $_P0ST[‘ ar_code‘ ].' . php' ); //根据前台 所传参数当前下棋方的算法名$_P0ST [ ‘ ar_code ‘],加载该算法所在的代码文件run($_P0ST[' play_id' ], $env, $qizi) ; //运行用户的算法,用户会将下棋 的位置放到$qizi中//氺氺氺氺氺氺氺氺氺氺氺end is^ifffl PM-^i氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺//setAct (array (‘ timeid' => $t, ‘ qizi' = > $qizi)) ;//收集和判断用户 所选位置的合法性fireActO ; //执行下棋动作S102具体包括后台控制器根据控制参数调用相应用户的代码,生成动作信息,并将动作信息发 送给动作收集器;动作收集器对动作信息进行过滤获得游戏周期内的唯一有效动作,并将 唯一有效动作发送给动作执行器。具体实施中,当后台控制器运行完用户的程序后会产生动作信息输出到动作收集 器。而动作执行器执行动作收集器里面的动作,并将动作执行后产生的新环境更新到环境 模拟器,同时将结果信息及新的环境信息传递给前端控制器。结果信息是指当前游戏进行 的结果信息,如系统错误、游戏是否结束、游戏结果等信息。环境信息是指游戏环境的模拟 信息,如代码化的棋盘信息哪个格子是否有棋子,是哪一方的棋子等信息。另外,本实施例中,浏览器还包括一个监视器,具体实施中,该监视器为一个网页, 将游戏过程以图表的方式实时地显示给用户,对游戏进行仿真,每个游戏周期监视器会刷 新一次。前端控制器根据接收到的环境信息更新监视器的页面。本方法可以还包括前端控制器根据结果信息判断网络博弈游戏是否结束,若是,则将胜负信息发送 给监视器;若否,则将控制参数发送给后台控制器以进入下一个游戏周期。前端控制器会将从动作执行器返回的环境信息更新监视器显示的内容的同时,会 根据返回的游戏结果信息进行判断网络博弈游戏是否结束,如果是游戏结束则将胜负信息 传给监视器,如果未结束则前端控制器将继续调用后台控制器,游戏进入新的下一个游戏 周期。本实施例中的环境模拟器和动作收集器可以使用高速缓冲存储(cache)技术,如 共享内存或分布式缓存。环境模拟器用于保存最新周期的游戏环境信息,比如下棋的话就 保存最新的棋盘信息,可以用一个矩阵来存储。该矩阵如下所示棋盘=[2,0,0,0,0,1,0,1,1,
0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,0,1,1,0,0,0,2,0,1,0,1,1,
0,0,0,0,0,1,0,1,1,0,0,2,0,0,1,0,1,1,0,0,0,0,0,1,0,1,1,0,2,0,0,0,1,0,1,1,0,0,0,0,0,1,0,1,1];0表示空,1表示红棋,2表示黑棋。动作收集器还用于过滤重复的动作,一个周期只能有一个有效动作,然后保存有 效的动作编号,供动作执行器获取。例如在足球博弈游戏中,用户在同一个周期里同时调用 了 ‘踢’和‘跑’两个动作,动作收集器就会忽略其中一个。比如可以采用随机的方式进行 选择。在本发明实施例中,由于方法及系统采用B/S架构,可运行于互联网中,能够应用 于联网环境中;用户只需有浏览器就可以参与网络博弈游戏,懂博弈游戏规则、有编程基础 或学习能力强的用户均可参与;用户可以在线编写自己的算法跟其他人的算法进行网络博 弈游戏;可以推广人工智能的应用。在本实施例中,由于是浏览器控制游戏进度,需要每个周期都跟服务器端进行交 互,可以实时显示游戏进行情况。另外,本发明还提供另一种网络博弈游戏的实现方法的实施例,该方法中前端控 制器、后台控制器、动作执行器的交互流程如前面方法实施例所述,但是本实施例中前端控 制器、后台控制器、动作执行器均置于服务器端,客户端(浏览器)只包括一个监视器,本实 施例中,由于前端控制器、后台控制器、动作执行器均置于服务器,且前端控制器与后台控 制器的功能可集成实现,只保留后台控制器一个物理模块,由服务器控制游戏的进行,并记 录游戏数据(如录像),直到游戏结束,服务器将游戏数据发送给客户端,用户可以通过客 户端的监视器查看游戏数据(如游戏录像)。本实施例中,由于是服务器后台控制游戏进行 的全过程,可以减少客户端与服务器端之间的交互,可以节省游戏时间。本发明实施例还提供一种网络博弈游戏的实现系统,如图2所示,该系统包括后 台控制器1、动作执行器2、前端控制器3 ;前端控制器3用于接收用户通过浏览器上传的、参与游戏的代码及用户控制指 令,并根据代码及用户控制指令获得控制参数,将控制参数发送给后台控制器1,该代码是 用户根据网络博弈游戏的游戏规则编写的;后台控制器1用于根据控制参数调用相应用户的代码,生成动作信息,并将动作 信息发送给动作执行器2 ;动作执行器2用于根据动作信息执行动作并产生游戏的结果信息及新的环境信 肩、ο下面结合图3对本发明的网络博弈游戏的实现系统进行详细说明。图3是本发明 的网络博弈游戏的实现系统的另一实施例的结构组成示意图,如图3所示,该系统包括页 面服务器和客户端(浏览器),系统的前端控制器3置于客户端,也就是位于浏览器,浏览器 还包括一个监视器,实际中,该监视器是一个网页,会将游戏过程以图表的方式实时地显示 给用户,每个游戏周期监视器都会刷新一次。前端控制器3是一个逻辑控制器,是用来控制游戏开始、结束、角色间的执行顺序和比赛进度等,前端控制器根据用户代码及用户控制指 令标识获得控制参数,其中,用户控制指令可以包括用户的鼠标点击事件,如开始按钮点击 指令、暂停按钮点击指令、结束按钮点击指令等。具体实施中,前端控制器可以用js编写。后台控制器1与动作执行器2均置于服务器端,服务器端提供一个在线的代码编 辑器和编码语法(也可以直接用php等语言编写),用户可以通过浏览器编写代码访问当前 游戏周期的环境信息,如当前棋盘信息,然后用户通过浏览器根据这些环境信息进行计算 选择一个动作(服务器端的系统会提供动作列表);用户只要在浏览器上选择一个动作代 号(如踢球)和必要的参数(如踢球的力度),或者如象棋游戏,则只要求有动作代号(下 棋)、参数(下棋的位置)。当用户完成自己的算法时可以通过浏览器提交保存到服务器, 服务器会对用户的代码进行检查是否符合规范、是否存在恶意方法等,如果合法的话则会 将改代码编译成后台可以运行的脚本如php,编译成功之后用户就可以选择其他的算法进 行博弈游戏。每个游戏周期前端控制器3都会用Ajax调用一次后台控制器1开始一个游 戏周期,并且会将一些控制参数发送给后台控制器1。后台控制器1根据前端控制器3发送 的控制参数决定装载哪个角色的程序。例如第一周期调用角色A的程序,第二周期则会调 用角色B的程序。后台控制器1是一个运行在服务器端的脚本程序,后台控制器1会根据控制参数 调用相应用户的代码,当根据用户编写的代码运行完程序后,生成动作信息,可将动作信息 直接发送给动作执行器2,由动作执行器2执行动作;或者本系统的服务器还可以包括一个 动作收集器4,后台控制器产生动作信息后会将动作信息发送给动作收集器4,动作收集器 4会对同一游戏周期内的动作进行过滤,只保留唯一一个有效动作,保存有效的动作编号, 供动作执行器2获取执行。当用户编写的代码同一个游戏周期内调用多个动作时,如足球 游戏中每个周期规定只能是“踢”或“跑”,用户在编写代码时在同一个周期内出现“踢”和 “跑”两个参数,则在动作收集器4中会将动作进行过滤,只保留一个有效动作。动作执行器2执行动作收集器4提供的动作后会产生结果信息及新的环境信息, 结果信息是指当前游戏进行的结果信息,如系统错误、游戏是否结束、游戏结果等信息。环 境信息是指游戏环境的模拟信息,如代码化的棋盘信息哪个格子是否有棋子,是哪一方的 棋子等信息。前端控制器3会将从动作执行器2返回的环境信息更新监视器显示的内容的 同时,会根据返回的游戏结果信息进行判断网络博弈游戏是否结束,如果是游戏结束则将 胜负信息传给监视器,如果未结束则前端控制器将继续调用后台控制器,游戏进入新的下 一个游戏周期。另外,动作执行器2还用于发送环境信息给环境模拟器5,由环境模拟器5 根据新的环境信息更新最新游戏周期的环境信息。本实施例中的环境模拟器和动作收集器可以使用cache技术,如共享内存或分布 式缓存。环境模拟器用于保存最新周期的游戏环境信息,比如下棋的话就保存最新的棋盘 信息,可以用一个矩阵来存储。在本发明实施例中,由于方法及系统采用B/S架构,可运行于互联网中,能够应用 于联网环境中;用户只需有浏览器就可以参与网络博弈游戏,懂博弈游戏规则、有编程基础 或学习能力强的用户均可参与;用户可以在线编写自己的算法跟其他人的算法进行网络博 弈游戏;可以推广人工智能的应用。在本实施例中,由于是浏览器控制游戏进度,需要每个周期都跟服务器端进行交
10互,可以实时显示游戏进行情况。本发明还提供了网络博弈游戏的另一种实施例,如图4所示,前端控制器(图中未 示出)、后台控制器1、动作执行器2均置于服务器端,客户端(浏览器)只包括一个监视器, 本实施例中,由于前端控制器、后台控制器1、动作执行器2均置于服务器,且前端控制器与 后台控制器2的功能可集成实现,只保留后台控制器2 —个物理模块,由服务器控制游戏的 进行,并记录游戏数据(如录像),直到游戏结束,服务器将游戏数据发送给客户端,用户可 以通过客户端的监视器查看游戏数据(如游戏录像)。另外,动作收集器4与环境模拟器 5的相关描述如上述,这里不再赘述。本实施例中,由于是服务器后台控制游戏进行的全过 程,可以减少客户端与服务器端之间的交互,可以节省游戏时间。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可 借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上 述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该 计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指 令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施 例或者实施例的某些部分所述的方法。以上所述的实施方式,并不构成对该技术方案保护范围的限定。任何在上述实施 方式的精神和原则之内所作的修改、等同替换和改进等,均应包含在该技术方案的保护范 围之内。
权利要求
1.一种网络博弈游戏的实现方法,其特征在于,所述方法包括前端控制器接收用户通过浏览器上传的、参与所述游戏的代码及用户控制指令,并根 据所述代码及用户控制指令获得控制参数,将所述控制参数发送给后台控制器,所述代码 是用户根据所述网络博弈游戏的游戏规则编写的;所述后台控制器根据所述控制参数调用相应用户的代码,生成动作信息,并将所述动 作信息发送给动作执行器;所述动作执行器根据所述动作信息执行动作并产生游戏的结果信息及新的环境信息。
2.如权利要求1所述的网络博弈游戏的实现方法,其特征在于,所述后台控制器根据 所述控制参数调用相应用户的代码,生成动作信息,并将所述动作信息发送给动作执行器 的步骤包括所述后台控制器根据所述控制参数调用相应用户的代码,生成动作信息,并将所述动 作信息发送给动作收集器;所述动作收集器对所述动作信息进行过滤获得游戏周期内的唯一有效动作,并将所述 唯一有效动作发送给所述动作执行器。
3.如权利要求1或2所述的网络博弈游戏的实现方法,其特征在于,在所述动作执行器 根据所述动作信息执行动作并产生游戏的结果信息及新的环境信息的步骤之后,还包括所述动作执行器发送所述结果信息及新的环境信息给所述前端控制器; 所述前端控制器根据所述新的环境信息更新所述监视器的页面。
4.如权利要求3所述的网络博弈游戏的实现方法,其特征在于,所述方法还包括 所述动作执行器发送所述新的环境信息给环境模拟器;所述环境模拟器根据所述新的环境信息更新最新游戏周期的环境信息。
5.如权利要求4所述的网络博弈游戏的实现方法,其特征在于,所述动作收集器、环境 模拟器采用高速缓冲存储技术。
6.如权利要求3所述的网络博弈游戏的实现方法,其特征在于,在所述动作执行器发 送所述结果信息及环境信息给所述前端控制器的步骤之后,还包括所述前端控制器根据所述结果信息判断所述网络博弈游戏是否结束,若是,则将胜负 信息发送给所述监视器;若否,则将所述控制参数发送给后台控制器以进入下一个游戏周 期。
7.如权利要求1所述的网络博弈游戏的实现方法,其特征在于,所述用户控制指令包括开始按钮点击指令、暂停按钮点击指令、结束按钮点击指令。
8.—种网络博弈游戏的实现系统,其特征在于,所述系统包括后台控制器、动作执行 器、前端控制器;所述前端控制器用于接收用户通过浏览器上传的、参与所述游戏的代码及用户控制指 令,并根据所述代码及用户控制指令获得控制参数,将所述控制参数发送给所述后台控制 器,所述代码是用户根据所述网络博弈游戏的游戏规则编写的;所述后台控制器用于根据所述控制参数调用相应用户的代码,生成动作信息,并将所 述动作信息发送给动作执行器;所述动作执行器用于根据所述动作信息执行动作并产生游戏的结果信息及新的环境fn息ο
9.如权利要求8所述的网络博弈游戏的实现系统,其特征在于,所述系统还包括动作 收集器;所述后控制器还用于根据所述控制参数调用相应用户的代码,生成动作信息,并将所 述动作信息发送给动作收集器;所述动作收集器还用于对所述动作信息进行过滤获得游戏周期内的唯一有效动作,并 将所述唯一有效动作发送给所述动作执行器。
10.如权利要求8或9所述的网络博弈游戏的实现系统,其特征在于,所述动作执行器 还用于发送所述结果信息及新的环境信息给所述前端控制器,并将所述新的环境信息发送 给环境模拟器;所述环境模拟器还用于根据所述新的环境信息更新最新游戏周期的环境信息;所述前端控制器还用于根据所述新的环境信息更新所述监视器的页面。
全文摘要
本发明实施例公开了一种网络博弈游戏的实现方法及系统,其中,该方法包括前端控制器接收用户通过浏览器上传的、参与游戏的代码及用户控制指令,并根据代码及用户控制指令获得控制参数,将控制参数发送给后台控制器,该代码是用户根据网络博弈游戏的游戏规则编写的;后台控制器根据控制参数调用相应用户的代码,生成动作信息,并将动作信息发送给动作执行器;动作执行器根据动作信息执行动作并产生游戏的结果信息及新的环境信息。在本发明实施例中,用户只需有浏览器可以参与网络博弈游戏,懂博弈游戏规则、有编程基础或学习能力强的用户均可参与;用户可以在线编写自己的算法跟其他人的算法进行网络博弈游戏;可以推广人工智能的应用。
文档编号G06F19/00GK102129504SQ20101004274
公开日2011年7月20日 申请日期2010年1月12日 优先权日2010年1月12日
发明者刘华忠 申请人:深圳市世纪凯旋科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1