(模式识别与智能系统专业论文)游戏机器人开发平台的设计与实现——编译及相关部分.pdf_第1页
(模式识别与智能系统专业论文)游戏机器人开发平台的设计与实现——编译及相关部分.pdf_第2页
(模式识别与智能系统专业论文)游戏机器人开发平台的设计与实现——编译及相关部分.pdf_第3页
(模式识别与智能系统专业论文)游戏机器人开发平台的设计与实现——编译及相关部分.pdf_第4页
(模式识别与智能系统专业论文)游戏机器人开发平台的设计与实现——编译及相关部分.pdf_第5页
已阅读5页,还剩63页未读 继续免费阅读

(模式识别与智能系统专业论文)游戏机器人开发平台的设计与实现——编译及相关部分.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中国科技大学硕士学位论文 摘要 本文主要介绍了游戏机器人开发平台的总体设计和其部分实现所谓游戏机 器人是指一种计算机程序,该程序可以直接与其所对应的游戏进行交互,代替玩 家来对游戏中所对应的实体进行交互 游戏机器人开发平台采用j a v a 语言作为开发平台本身的开发语言,使用了 e c l i p s e 基金会提供的开发框架和各种应用插件对游戏机器人开发平台进行设计 和开发 首先,本文介绍了本课题的背景奔国内外的研究现状通过对游戏机器人开 发平台的总体介绍,本文提出了游戏机器人开发平台的所应具有的功能部分,并 对各个功能部分进行了简单的介绍,提出了各个功能部分总体的设计思想和主要 的实现方式 接下来,针对用户的错误处理,本文提出了一种契约式语言,该语言可以为 本身不支持契约式设计的程序设计语言提供契约式设计方法的支持,对该程序设 计语言进行功能上的扩展并且,针对本游戏机器人开发平台的特点,我设计出 了相应的契约式语言的编译器,为用户的错误检测和修正提供支持在实际开发 平台的使用中,通过这种契约式语言的使用,可以使用户方便地对程序中的错误 进行检查和纠正,提高了用户的开发效率 最后,本文描述了针对扫雷游戏的游戏机器人的设计过程,详细地说明了针 对扫雷游戏的接口部分实现方式,并描述了用户的使用方式本文最后一幸进行 了总结,描述了本文中的一些创新之处和不足之处,并对以后的工作进行了展望 关键字:游戏机器人;契约式设计;编译器;逻辑错误;接口开发 中宙科技大学硕士学位论文 a b s t r a c t a b s t r a c t t h i sp a p e ri n t r o d u c e sap l a t f o r mf o rg a m er o b o td e v e l o p i n g , a n dd e s k st h ed e s i g n a n dp a r t i a li m p l e m e n t a t i o no ft h ep l a t f o r n xg a m er o b o ti sac o m p u t e rp r o g r a mw h i c h c a l ld i r e c t l yi n t e r a c t i v ew i t hag a m e ,a n dr e p l a c et h eg a m ep l a y e rt oc o n t r o lt h eg a m e t h eg a m er o b o td e v e l o p i n gp l a t f o r mi si m p l e m e n t e db yj a v a e c l i p s ei d ew h i c h p r o v i d e sl o t so fd e v e l o p i n gf r a m e w o r k sa n da p p l i c a t i o np l u g i n s ,i su s e dt oc r e a t et h e g a m er o b o tp l a t f o r m f i r s to fa l l ,t h i sp a p e rp m v i d e sa l ln e c e 鲻盯yf u n c t i o n a lp a r t sb ya n a l y z i n gt h e g a m er o b o td e v e l o p i n gp l a t f o r m f o re a c hp a r t , a r to v e r a l ld e s i g nc o n c e p t i o na n d m a i n a c h i e v e dw a yi sp r o v i d e d n e x t ,f o rt h ei i s e re r r o rh a n d l i n g ,t h i sp a p e rp r o p o s e sac o m p u t e rl a n g u a g eu s i n g d e s i g nb yc o n t r a c tm e t h o d t h el a n g a a g ec a np r o v i d ed e s i g nb yc o n t r a c tm e t h o d s u p p o r t t oa n o t h e rc o m p u t e rl a n g u a g ew h i c hd o e sn o ts u p p o r td e s i g nb yc o n t r a c t f o r o u rg a m er o b o td e v e l o p i n gp l a t f o r m ,id e v e l o pac o m p i l e rf o rt h es p e c i a ll a n g u a g e w i t ht h i sc o m p i l e r , u s e r s 戗 r o r sc a nb ee a s i l yf o u n da n df i x e d i na c t u a lu s eo ft h e p l a t f o r m , w i t ht h es p e c i a ll a n g u a g e ,t h ep l a t f o r mc a n f a c i l i t a t et h eu s e r s e r r o r c h e c k i n ga n dc o r r e c t i n g ,i m p r o v eu s e rd e v e l o p m e n te f f i c i e n c y , f i n a l l y , w i t ht h ei n t e r f a c ep a r td e v e l o p i n gf o rm i n e - s w e e p i n gg a m e ,t h i sp a p e r d e s c r i b e st h ei n t e r f a c ep a w si m p l e m e n t a t i o na n di l l u s t r a t e st h er e s u l to fu s e r s d e m o n s t r a t i o nf o rt h eg a m e i nt h el a s tc h a p t e r , t h ec o n c l u s i o nw i t ha d v a n t a g ea n d d i s a d v a n t a g ep o i n t so f t h eg a m er o b o tp l a t f o r ma n dt h ef u t u r ea r cp r e s e n t e d k e y w o r d s :g a m er o b o t , d e s i g nb yc o n t r a c t , c o m p i l e r , l o g i c a le r r o r , i n t e r f a c ed e v e l o p i n g 中目科技大学硕士学位论文 声明 声明 本人郑重声明:所呈交的学位论文,是举人在导师指导下,独立进行研究工 作所取得的成果除文中已经注明引用的内容外,本学位论文的研究成果不包舍 任何他人创作的,以公开发或者没有公开发表的作品的内容对本论文所涉及的 研究工作做出贡献的其他个人和集体,均已在史中以明确方式标明本学位论文 原创性声明的法律责任由本人承扫 学位论文作者签字;,乏天涛 日期:,匆z5 歹o 中国科技大学硕士学位论文 序 序 本课题的目的是为了改变目前由于沉迷玩游戏而影响学生学习和身心健康的状况。以期 开铹游戏薪时代。在可行缝研究及部分关键技术实验的基础上。设诗一个面向普通人群特剐 是青少年的可咀整合各类游戏的游戏机器人开发平台,为了使专业技术基础比较薄弱的广大 青少年也能够进行游戏机器入的开发,我们的开发平台提供图形化的编程模式,通过拖拽代 表功能模块的图形,对功能进行组合。并对其属性进行配置,就可以实现定制游戏机器人的 目的。 本开发平台的目的,就是利用青少年喜欢玩游戏的心理。引导他们对编程的兴趣,从小 培养他 f j 的动手缀程能力针对青少年特点,鲡好奇心强、探索未知锈域的兴趣浓厚、精力 旺盛活泼好强和模仿能力强等,我们在游戏机器入开发平台的设计上,突出游戏机器入设计 的新奇性、趣味性和竞争性,使这种游戏方式很容易就能够被广大的青少年接受,将从单一 的玩游戏转向编程能力和逻辑思维能力的训练,在不知不觉中接受编程思想的熏陶 为了突出开发平台的整体性能,决定由王文涛和周军共同完成第l 章和第2 章的撰写 第l 章主要介绍论文的选题及需求分析,其中第1 1 节和第1 2 节由王文涛执笔,第1 3 节 积第1 4 节盘周军执笔,薷2 章重在奔绍游戏机器人开发平台豹总体设计,其中第2 1 节和 第2 3 节由王文涛执笔,第2 ,2 节由王文涛和周军共同编写。然后由各人单独撰写自己论文 的第2 4 节,介绍各自承担的任务及论文其他部分的安摊 为了演示游戏的效果,两人又合作制作一个游戏机器人,并作为共同的第6 章介绍制作 方法及运行效果。其中周军执笔撰写第6 3 节,王文涛撰写其他节。 他们的工作取得了初步成绩,基本实现了预定目标但尚需要进一步完善。如果能普及 这种游戏方法。无疑将会产生缀好能社会效益 。反一 中国科技大学硬士学位论文第l 章绪论 第1 章绪论 本幸首先介绍了论文的选题背景、意叉以及国内外研究现状,然后着重余绍通常意叉下 游戏玩法和通过开发游戏机器人来玩游戏之间的区别,从而引出了种新的游戏方式最后, 详细说明了用户如何使用游戏机器人开发平台以图彩方式编写程序代码 1 1 课题背景 计算机游戏由于能给玩家带来强烈的沉浸感和成就感,而越来越受到公众的欢迎,随着 游戏玩家的增多。计算机游戏也成为娱乐业中的重要组成部分。但是,在这些游戏玩家中, 有相当一部分是处于成长阶段的青少年,他们缺乏足够的自制能力,面对越来越真实的计算 机游戏,他们身陷其中而不能自拔尤其在最近一段时间,网络游戏飞速发展,为玩家提供 了一个聊天交友甚至是物品交互的虚拟空问,更加剧了广大的青少年对其的痴迷程度。青少 年构成了计算机游戏玩家的主体,统计表明年龄低于2 2 岁的青少年占目前我国网络游戏用 户总数的4 9 9 8 w “随之而来是由于青少年过渡沉迷于游戏,而造成的各种各样的负面影 响,比如影响青少年的学业、因过长时间游戏而损害健康等从而导致有舆论甚至将计算机 游戏称为“电子海洛因”但是我们也应该看到,计算机游戏也并不是一无是处的,往往青 少年对计算机的接触,就是从玩计算机游戏开始的现在摆在广大的学者和教育家面前亟待 解决的问题是,如何找到这样的一个切入点,既能够尽可能扩大计算机游戏对青少年有益方 面的影响,又能削弱其负面的影响,并且随着计算机游戏影响的不断扩大,这个问题俨然已 经成为一个社会各界普遍关注的问题 现在有很多实体机器人对抗赛,比如中国机器人大赛,亚太大学生机器人大赛等专业机 器人比赛。如果将这些比赛中的环境变为软件的虚拟环境,而对抗双方的实体机器人变成软 件的虚拟机器人,就成为了机器人比赛的仿真版本仿真版本的优势在于其纯软件环境,投 入和维护成本低,并且完全不受实体机器人硬件、场地的限制。便于教学管理这样大大降 低了机器人比赛的准入门槛。 从计算机游戏本身来看,从其诞生之日起,它也不是一成不变的,在其不断的发展过程 中,逐渐演化出一种通过开发游戏机器人来玩游戏的新方式。这就类似于机器人比奏的仿真 版本,只不过这里的虚拟环境特定的成为了游戏环境,而虚拟机器人替代了游戏玩家来与游 戏进行交互因此玩家不再是通过鼠标和键盘来控制游戏中的某个角色。玩家需要做的是对 机器人的控制策略进行抽象。并将其编写为程序代码,也就是前面提到的游戏机器人( 虚拟 机器人) ,然后挂接到游戏中去,通过游戏机器人去控制游戏中角色的行为。在游戏的过程 中,玩家从单纯对游戏中角色的控制转换为对控制策略的思考和程序的编制上来,从而在玩 的过程中能够获得思维的锻炼和程序编写能力的提高 目前常见的虚拟机器人有网络游戏外挂、机器人比赛仿真版等,前者一般是由一些游戏 编程高手提供,让嗣游玩家可以在游戏世界中更轻松的升级和获得好装备等,这种游戏机器 人通第是以娱乐和盈利为目的的;后者则一般用于程序设计比赛,由大学生等具备一定专业 中国科技大学硕士学位论文第l 章绪论 素质的人员参与,以寓教于乐为目的,通过开发游戏机器人,获得思维和编程能力的提高 这里我们需要特别关注这种形式。将其引入到我们传统的教育模式中来,可以让广大的用户 尤其是青少年在非压迫的竞争中极大的提高自己的学习水平。用户通过编制游戏机器人( 虚 拟机器人) 来控制游戏中某个角色的行为,井将编制好的游戏机器人挂接到游戏引擎中和其 他用户编写的游戏机器人同台竞技在游戏机器人之阃的对抗和竞争的过程中感受到学习所 带来的快乐使用户在玩的过程中不断学习程序设计和游戏机器人策略算法等知识在这个 过程中,学习不再枯燥乏味,在学习的同时感到了快乐,在娱乐的同时不知不觉提高了专业 技术水平但是我们也需要意识到,进行哪怕是最简单的游戏机器人的开发都是存在一定的 门槛的,它需要用户理解最基本的计算机程序编制概念,掌握最基本的编程语言知识,同时 还需要对游戏引擎有足够的了解这样的门槛,几乎把游戏用户群的主体,广大的青少年挡 在了门外 本课题就是要设计一个面向普通人群特别是青少年的可以整合各类游戏的游戏机器入 开发平台,为了使专业技术基础比较薄弱的广大青少年也能够进行游戏机器人的开发,我们 的开发平台提供图形化的编程模式,便于玩家使用图形编程语言。通过拖放、排列、连接以 及编辑图形语句以及设置语句属性来描述计算任务,以图形编程方式来定制游戏机器入本 开发平台支持的游戏方式和传统游戏方式的比较如图1 1 所示推出该开发平台的目的,就 是利用青少年喜欢玩游戏的心理引导他们对编程的兴趣,从小培养他们的动手编程能力。 针对青少年特点。如好奇心强、探索未知领域的兴趣浓厚、精力旺盛活泼好强和模仿能力强 等,我们在游戏机器人开发平台的设计上,突出游戏机嚣人设计的新奇性、趣味性和竞争性, 使这种游戏方式很容易就能够被广大的青少年接受。将从单一的玩游戏转向编程能力和逻辑 思维能力的训练。在不知不觉中接受编程思想的熏陶,从而改变目前由于沉迷玩游戏而影响 学生学习和身心健康的状况,以期开创游戏新时代。此外,该平台可以通过更换不同的游戏 接口描述信息从而实现对多种游戏机器人开发的支持因此只要通过变换不同的游戏以及难 度,我们就可以将其推广到各种年龄层次的用户群。 交互 编译生成 交互 玩家c 爿开发平台h 游戏机器人i ;刊游戏i l - - - j l ,- - _ j - ,jl - j 留l ,l 传统游戏交互方式和游戏机器人的交互方式 1 2 国内外研究现状 目前,比较著名的游戏机器人赛事有机器人世界杯r o b o c u p 皿! 。国内外对游戏机器人研 究主要集中在游戏机器人引擎的开发上,比较热门的游戏机器人引擎有i b ma l p h a w o r k s 的 2 中国科技大学硕士学位论文第1 章绪论 r o b o c o d e i j l ( 现已经成为开源项目) 。c o d e r u l c r n i 和c o d e r a l l y 研项目。以及一些开源的游戏 机器人引擎,如f 掷( r o b o t a u t or a c i l i g s i m u l a t o r ) 项目等等。这些项目提供了多种多样 的游戏机器人引擎,但是很少有提供方便、快捷的游戏机器人开发平台韵,即使提供了开发 工具,其开发工具也是基于文本编辑器的,仅提供了功能非常有限的辅助工具,同时这些项 目仅仅支持某一特定类型的游戏机器人的开发,无法实现对多种游戏机器人开发的支持。这 对我们的目标群体一青少年是远远不够的 1 3 几种游戏方式的比较 随着计算机游戏日臻成熟,其游戏方式也在不断发展。依据游戏平台和游戏玩家的对弈 方式。本文将游戏方式分为常规游戏方式和高级游戏方式两类。本文依托的游戏机人开发平 台项目对商级游戏方式做出重要改进,这里也将详细说明。 1 3 1 各种游戏方式的介绍 目前,主要的游戏方式有如下几种 1 常规游戏方式 常规游戏方式以玩家直接参加游戏对弈为主要特证,常见的电脑游戏有:电子游戏机、 电脑单机版游戏和网络游戏在这种游戏方式下,游戏通过画面、音效或其它方式输出当前 蝣戏的状态信息,玩家依据接受的状态信息形成下一步控制决策,然后通过操控键盘、鼠标 或操纵杆来执行控制决策。同游戏本身或者其它游戏玩家展开对抗。游戏玩家必须时刻观察 游戏局势,迅速做出应对决策,灵巧地操控键盘等工具,才能在游戏对弈中获胜 2 高级游戏方式 高级游戏方式以玩家通过编程来参加游戏对奔为主要特征,通常以游戏机器人竞技仿真 的形式出现。在这种游戏方式下,游戏玩家在游戏平台上使用j a v a 或其它某种编程语言创 建智能化的仿真游戏机器入。并把游戏机器入置于虚拟赛场上同其它机器人展开对抗。游戏 过程中,游戏玩家不再使用键盘、鼠标和操纵杆来控制机器人,而是完全依靠预先设计编写 的程序来自动指挥和控制机器人。游戏玩家必须编制一个高效的机器人控制程序才能在游戏 对弈中来取胜。 3 新的游戏方式 新的游戏方式是本论文所依托项目对高级游戏方式做出重要改进后的产物。在这种游戏 方式下游戏玩家同样需要在游戒平台上编写机器人控制程序,控制程序自动指挥游戏机器 人在虚拟赛场同游戏引擎或其它虚拟机器人对弈区别在于:上述高级游戏方式一般只允许 玩家采用文本编程方式编制机器人控制程序:丽在本项目游戏平台下,玩家采用平台专用的 可视化程序设计工具以图形方式编写游戏机器人控制程序,从而大大降低玩家编程的难度, 3 中国科技大学硕士学位论文 第l 章绪论 适合于对程序设计尚未入门的青少年。 1 3 2 各种游戏方式的共同点 各种游戏方式的共同点主要体现在游戏操作目的上在游戏中,无论是通过开发游戏机 器人玩游戏还是直接玩游戏,都是根据游戏过程中的信息形成决策,进一步去控制游戏向有 利于自己的方向的发展,从而获得更高的积分或者更多的升级 1 3 3 各种游戏方式的不同点 这些游戏方式不同点主要体现在如下的几个方面 1 游戏的操作过程 在传统的游戏方式中。玩家玩游戏的过程是如下的子过程的迭代:玩家从游戏画面和游 戏音效中获得游戏所处的状态,根据这些信息形成游戏控制决策,并通过鼠标或键盘,对游 戏进行直接的操作而在采用游戏机器人的游戏方式中,玩家玩游戏的过程是一个子过程的 迭代,即玩家对游戏控制策略进行抽象或者完善,并将其编写为程序代码,即游戏机器人, 接下来玩家将游戏机器人挂接到游戏当中去,看其运行方式是否实现了当初的设计目标,同 时形成对控制策略的改善方案。这其中,新的瓣戏方式采用图形化的编辑方式并提供了对图 形化方式的编译支持。 2 玩家与游戏的交互方式 在传统的游戏方式中。玩家与游戏的交互是直接的,玩家通过画面和音效接受游戏的输 出,而游戏通过鼠标和键盘接受玩家的控制。而在使用游戏机器人的游戏方式中,玩家与游 戏的交互是间接的,当玩家将自己的控制策略编写成机器人,并载入到游戏中后,与游戏的 交互就完全由游戏机器人来实现,玩家不能够再对游戏的发展进行任何的控制,他所能做的 是通过观察机器人的运行情况。形成对控制策略的改善方案。这其中,新的游戏方式中用户 不需要完全实现一个游戏机器人,而只要实现其中的控制策略 3 玩家的思维方式 在传统的游戏方式中,玩家的控制策略是可以随意,随时变化的,当游戏中有突发事件 发生时,游戏者可以任意调整控制策略来对其进行处理而在使用游戏机器人的玩法中,在 玩家对机器入代码进行重新修改前,控制策略是不会发生变化的。这样就要求玩家在进行控 制策略设计的时候要考虑周全,尽可能多的考虑到对游戏中突发事件的处理,使控制策略更 加的健壮 4 编程方式 在传统的游戏方式中不需要编程方式的,用户直接进行游戏操作。在高级的方式中,用 4 中国科技大学碗士学位论文第1 章绪论 户需要对程序设计非常的熟悉,能够设计出功能完备的游戏机器人在新的游戏方式中。对 用户在程序设计方面的要求并不高,只要能有清晰的逻辑分析能力,能够提出正确解决游戏 问题的算法,再使用露形编程的方式实现该算法即可实现游戏机器入 1 4 新游戏方式介绍 10 4 1 新游戏方式中用户的开发流程 在新的游戏方式下,用户使用开发平台的开发游戏机器人程序。一般情况下,用户遵循 图1 2 所示的流程来开发游戏机器人 图1 2 游戏机嚣人的开发流程 首先,用户需要了解游戏方式,可用应用程序接口,需要编码实现的控制策略等一系列 相关知识。然后,用户设计控制策略。并使用开发平台以图形方式来编码表达自己设计的控 制策略,从而实现游戏机器人程序。随后,用户对游戏机器人程序进行编译如果程序编译 失败,用户需要修改控制策略部分的程序代码。如果程序编译成功,用户就可以启动游戏机 器人和游戏,使两者展开交互对抗。如果游戏机器人的运行效果令用户满意。那么用户就可 以停止游戏,结束开发流程,否则运行结果不满意,或者运行时出现错误,用户就停止游戏, 修改控制策略部分的程序代码 以上是从用户角度描述的游戏机器人开发流程。用户与开发平台的交互主要体现在图形 编程模块上用户在使用开发平台前需要研究所要达到的设计目标,分析游戏的特点,设计 出如何来实现游戏机器人的控制策略和用图形化的程序设汁语言表达出来的方式。这些邦是 用户在使用开发平台前所要完成的这种设计过程就是对用户解决问题的能力的一种锻炼, 同时也锻炼了程序设计思想。 中国科技大学硕士学位论文第1 章绪论 1 4 2 游戏实例说明 下面通过扫雷游戏来说明常规游戏方式和新游戏方式的不同。图1 3 给出了扫雷游戏的 界面。 田i 3 扫雷游戏的界面 在传统的扫雷游戏方式中,玩家观察游戏面面,分析地雷可能所在位置,然后点击鼠标 来挖掘安全位置,将确定包含地雷的位置标记上小红旗或者采取其它动作。游戏者的最终目 的是找出雷区中的所有地雷 在新的游戏方式中,玩家对游戏的控制,是通过其编写的游戏机器人来实现的在启动 游戏前。玩家要先将其对游戏的控制策略编写成代码代码中主要体现出对雷区中各种可能 处出现情况的处理方式。比如,当某个位置上的数字值等于其周围所插棋子数与未挖掘过的 位置之和,那么就确定箕周围没有被挖掘过的位置必为地雷当扫雷游戏刚开始时。没有任 何信息支持推测地雷所在位置时,需要猜测地雷位置或者非地雷位置。游戏机器入编写好以 后,就可以挂接到游戏中,查看游戏机器人的运行情况游戏的最终目的是,游戏机器人能 够尽可能多的挖掘出雷区中的地雷 通过以上的比较,我们可以发现通过开发游戏机器人来玩游戏,可以使玩家在抽象能力, 编程能力,思维能力等多方面获得锻炼和提高 1 4 3 以图形方式编写游戏机器人 借助于游戏机器人开发平台的图形编程工具【蚰】,用户能以可视化图形编程方式,通过 拖放、连接图形和编辑图形属性来编写游戏机器人程序中体现控制策略的代码下面详细谢 明了利用平台图形编程工具编写一段简短的条件语句i f e l s e 的图形代码的过程该l f e l s e 语 句图形代码等效于图1 4 所示j a v a 代码 6 中国科技大学硬士学位论文 第1 章绪论 i f ( ( 1 + l p 3 ) i n t i = 0 : i = i + l : i i 3 ; e l s e i n tj = 织 j = j l ; 图t 4 等效的j a w 代码 步骤1 。用鼠标点击编辑器左方工具栏中代表i f e l s e 语句的图标按钮。如图1 5 所示,按钮 用红线标出。 匿1 5 点击i 趣l s e 语句按钮 步骤2 :利用鼠标将l t e i s e 语句图标拖放到编辑器右方空白区域,则代表i f e l s e 语句的图形 就出现在空白区域。如图1 6 所示,条件语句1 e l s e 的对应图形包括3 部分:以“c o n d i t i o n :” 标识的空括号代表条件语句的判断冬件,以“l f ”标识的上半部分矩形代表判断条件为真对 i f e l s e 语句执行的语句块,以“e l s e ”标识的下半部分矩形代表判断条件为假时l t e l s e 语句 执行的语句块显然,当前i t e l s e 语句的判断条件为空,i f l j l s e 语句根据条件真假二选择执 行的语句块也为空。 步骤3 ;双击编辑区中l t e l s e 语句的图形t 弹出语句的属性编辑框如图1 7 所示,用户可 以利用该属性编辑框设定i f e l s e 语句的判断条件 步骤4 :双击编辑区中l f e l s e 语句图形的上方矩形( 该矩形代表示判断条件为真时。i f e l s e 语句执行的语句块) ,弹出图1 8 所示属性编辑框,用户可利用该属性编辑框定义和编辑变 量 步骤5 :用鼠标单击编辑器左方工具栏中代表赋值语句的图标按钮,并拖放到l i e l s e 语句图 形的上方矩形中的编辑区域内,则代表赋值语句的矩形就出现在该编辑区域( 见图1 9 ) 步骤6 :双击代表赋值语句的矩形,弹出赋值语句的属性编辑框如图1 1 0 所示,用户可利 用该编辑框定制赋值语句的对应代码 7 中国科技大学硕士学位论文 第l 章绪论 圈1 6 将i f e l s e 语句图标拖放到编辑区 圈1 7 编辑i 正l 语句的判断条件 8 中国科技大学硕士学位论文第l 章绪论 圈1 8 定义局部变量 图l 9 拖放赋值语句图标 9 中国科技大学硕士学位论文 第1 章绪论 圈l1 0 定制赋值语句对应的代码 步骤7 :重复步骤5 和步骤6 。用户可以为l t e l s e 语句又添加一条赋值语句茹图1 i i 所示, 用户可以用有向箭头将l f e l s e 语句上半部分矩形内部的两条赋值语句前后相连,确定两条语 句的执行顺序,其中与箭头尾端相连的语句先执行。 图1 1 1 连接两条赋值语句对应的图形 步骤8 :重复步骤5 和步骤6 ,向l t e l s e 语句下半部分矩形内部添加一条赋值语句,并且利 用属性编辑框定制该赋值语句的代码,从而最终形成l t e l s e 语句的图形代码( 见图1 1 2 ) 1 0 中国科授大学硕士学位论文第l 章绪论 圈1 1 2 最终r 吲图形代码 中国科技大学硕士学位论文第2 章游戏机器人开发平台的总体设计 第2 章游戏机器人开发平台的总体设计 本章仪介绍系统的总体构架各个模块的设计方案和相关开发技术,而具体的实现则留 待相应章节介绍本章还将介绍开发平台的任务分配和论文曲具体安排 2 1 游戏机器入开发平台总体介绍 推出游戏机器人开发平台( 以下简称开发平台) 的主要目标是降低游戏机器人的开发门 槛,便于青少年等编程初学者以直观的图形方式来开发游戏机器人程序,从而初步训练用户 的编程能力和培养逻辑思维能力其中,用户负责编写游戏机器人程序中的控制策略部分, 无须考虑游戏机器人程序的细节部分 2 1 1 游戏机器人开发平台的工作流程 本小节从开发平台魄角度进行分析,开发平台处理游戏机器人程序开发的工作流程。如 图2 1 所示开发平台需要读入平台开发人员设计的游戏机器人的框架和用户实现的游戏机 器人的控制簧略部分的代码。所谓游戏机器人的框架,是指游戏机器人程序被剥离控制策略 部分后所形成的程序框架,用户利用程序框架对外提供的回调方法来向游戏机器人程序添加 控制策略。开发平台将游戏机器人框架与控制策略代码组合。形成完整的游戏机器人程序 下一步,开发平台编译游戏机器人程序,生成可以执行的游戏机器人最后,开发平台启动 游戏机器人进行游戏操作 图2 1 游戏机器人产生及与游戏交互图 2 1 2 游戏机器人开发平台的功能需求 从用户及开发平台角度分析。我们可以对游戏机器人开发平台所需提供的功能有总体上 的认识由于本系统主要面向青少年等编程初学者。这对系统提供的编程方式、辅助性支持 1 2 中国科技大学硕士学位论文 第2 牵游戏机器人开发平台的总体设计 等方面都提出了特别要求。 t 。囤形化的编程工具 由于开发平台面向青少年等缺乏程序设计知识和技巧的编程入门者,因此为有效降低编 程难度。平台系统提供的编程工具需要支持可视化程序设计方式,允许用户使用平台专用可 视化程序设计语言。以直观形象和简洁高效的图形方式开发游戏机器人代码。同时,编程工 具需要为提供用户辅助开发功能,比如代码转换,提示可用应用程序接口。在线帮助等等 此外,编程工具可以提示错误代码的位置。 2 支持图形化编程的编译器 为适应图形化程序设计方式,平台系统的编译器不但需要完成编译代码的任务,而且必 须实现编译错误的提示与定位功能将代码错误直观地反馈到图形编辑环境,便于游戏机器 人设计者发现程序设计中的各种错误。并且,为了达到对游戏机器人代码进行编译的目的, 首先要生成程序源代码,源代码是从程序设计框架和图形化编程工具得到的此外,绽泽器 需要收集游戏机器人和游戏的交互信息,以便给用户提示游戏机器人程序中的可能错误 3 屏蔽游戏的差异性 对于挂接于开发平台的各种游戏,平台设计人员都构建出相应的游戏机器人框架。对于 不同的游戏机器人框架,开发平台需要以一种简洁统一的方式来描述游戏机器人框架的接 口,从而对开发平台屏蔽游戏的差异性,使游戏机器人的开发不受到游戏变化所造成的影响。 2 2 开发平台的总体设计 基于平台功能的内部划分,我们规划了开发平台的总体设计方案。为使系统具有高度的 可扩展性和灵活性,以及允许项耳组成员以并行方式进行编码工作,我们采用模块化设计方 法来指导开发平台的总体设计 2 2 1 开发平台的总体结构 如图2 , 2 所示,总体设计方案确定游戏机器入开发平台由三个独立的功能模块所构成。 包括接口部分、图形编程部分和编译部分。三个功能模块之间互相协作,从而完整地实现开 发平台的各项功能显然。总体设计方案鲜明地反映了我们对开发平台的功能划分 中国科技大学硕士学位论文第2 章游戏机器人开发平台的总体设计 2 2 2 接口部分 l 接口部分概述 圈2 2 游戏机器人开发平台的总体结构 接口部分负责以统一简洁的方式向开发平台提供关于游戏及游戏机器人的信息,从而屏 蔽不同游戏的差异性。接口部分提供的信息包括游戏向用户提供的可用应用程序接口,用户 需要编码实现的各个方法,游戏机器人框架以及其它所需信息。 2 接口部分的总体设计 如图2 2 所示。接口部分内部包括游戏机器人框架和游戏接口描述文件等两个静态文本 文件其中,游戏机器人框架是j a v a 格式的文件,游戏接口描述文件是x m l 格式的文件 游戏机器入框架负责提供一个游戏机器人的开发框架。该开发框架已经实现游戏机器人 与游戏进行交互、启动和终止游戏机器人以及其它方面的运行机制。但是该框架内部负责提 供蝣戏机器人控制逻辑的方法被设置为回调方法,由用户负责编码实现这些控制逻辑方法。 具体设计见本论文3 2 节 游戏接口描述文件负责描述开发平台所需的各项信息,主要包括游戏机器人框架中需要 用户编写实现的各个控制逻辑方法,用户编写代码过程中可用的应用程序接口和辅助功能性 函数等各方面所需信息。需要指出平台设计人员需要预先定义游戏接口描述文件表达上述 信息鼹统一规则,从而确保对开发平台屏蔽游戏的差异性,便于开发平台支持不同游戏的游 戏机器人程序的开发 2 2 3 图形编程部分 1 图形编程部分概述 图形编程部分在系统中承担着三重职责。一方面,它负责为用户提供一个可视化的游戏 机器人程序编程环境,允许用户使用图符、图表及其空间排列关系来描述计算任务和设计游 戏机器人程序,并为开发过程提供辅助工具借助手图形编程部分,用户通过图形拖放、属 性设置等简单的操作就可以来编写游戏机器人程序。另一方面,它承担着代码转换的责任, 1 4 中国科技大学硕士学位论文第2 章游戏机器人开发平台的总体设计 负责将用户利用图形编辑器编写的游戏机器人程序图形代码精确转换为等价文本代码。此 外,它还负责在前端反馈显示编译部分对游戏机器人程序的分析结果和错误定位,便于用户 进行程序调试 2 图形编程部分的总体设计 图形编程部分内部包括3 个子模块。分别为编程管理器、图形编辑器和代码转换器 图形编辑器的主要功能是支持用户使用平台专用可视化程序设计语言,通过创建、拖放 和编辑图形的方式来创建、查看和编写程序代码图形编辑器的构建基于m v c ( 模型视图 控制器) 架构。模型是对软件所处理的应用问题的内在抽象,封装了应用问题的核心数据、 逻辑关系和处理过程;视图负责以图形或其它多种方式展示后台模型的数据、逻辑关系和状 态信息;控制器处理用户与编辑器的交互操作,协调模型和视图。 代码转换器负责将用户在图形编辑器前端描述游戏机器人程序的图形代码转换生成对 应等价j a v a 文本代码代码转换器中的各个翻译部件是完成转换代码工作的关键部件代 码转换器会根据当前处理图形代码的对应编辑器模型而调用相应的翻译部件。翻译部件通过 查询模型来获取与图形代码转换结果的所有相关信息。然后将这些信息与内部代码模板有机 结合。最终翻译输出符合j a v a 语言规范的等价文本代码。 绽程管理器不仅负责控常i j 图形编程部分与其它系统模块之间的一切交互通信,而且负责 协调图形编辑嚣和代码转换器之间的协作如图2 2 所示,编程管理器读入并解析位于接口 部分中游戏接口描述文件。创建遵守统一格式的游戏接口模型。游戏接口模型不仅存储着关 于当前游戏接口以及游戏机器人框架等所需信息,而且封装用户编写的游戏机器人程序中的 核心数据和业务逻辑,形成图形编辑器正常运行所需的后台模型当用户使用图形编辑器完 成游戏机器人程序后,编程管理器调用代码转换器,处理图形编辑器的后台模型,翻译输出 等价文本代码。当收到定位显示错误图形代码的请求后,编程管理器会根据查找参数找到对 应的图形代码,并采取楣关动作是图形编辑器在前台高亮显示出该图形代码 2 2 4 编译部分 l ,编译部分概述 编译部分负责从接1 3 部分取得游戏机器人框架,从图形编程部分获取游戏机器人控制逻 辑方法的用户编码。并将两者组合装配成完整的撼戏机器人程序然后,编译部分对完整的 游戏机器人程序进行编译,生成游戏机器人的可执行程序。最后,编译部分分析游戏机器人 和游戏的交互过程,收集相关的错误信息,并将这些错误信息以约定方式反馈给图形编程部 分,便于图形编程部分在前台定位展示错误代码,提示用户进行相应的修改。 2 编译部分的总体设计 编译部分内部包括四个子模块;预处理器,契约式语言编译器p 9 l 。j a v a 语言编译器和 信息收集模块 ( i ) 预处理器。该子功能模块负责将从图形编程部分得到的用户编程信息和从接口部 中国科技大学硬士学位论文 第2 章游戏机器人开发平台的总体设计 分得到的游戏机器人框架进行组合,生成所需要的游戏机器人代码。接口部分中游戏机器人 的设计采用p o l i c y 模式【1 2 1 ,这样将游戏机器人的运行框架和其控制策略进行分离,用户所 需要实现的是如何描述这些控制策略。而预处理部分负责生成控制策珞代码具体参见本论 文5 2 节, ( 2 ) 契约式语言编译器契约式语言编译器是为了对本文后面所提到的契约式语言进 行分析而设计的它的主要功能是,分析源代码中所包含的契约式语言,将其转换为适当的 宿主语言,达到为宿主语言提供契约式支持的功能。具体参见本论文5 3 节。 ( 3 ) j a v a 语言编译器。j a v a 语言编译器将前面得到的最终的游戏机器人代码进行编译。 我采用的是s u n 微系统公司提供的开放源代码的j a v a 语言编译器通过修改该错误收集功 能而得到的,以便能够将锝到的错误信息反馈到图形编程部分具体参见本论文5 4 节 ( 4 ) 信息收集模块该部分负责将从契约式语言编译器得到的错误信息,j a v a 编译器 得到的错误信息和游戏机器人与游戏进行交互时产生的错误信息进行收集。最后反馈到图形 编程部分,展示给用户,提示其修改具体参见本论文5 5 节 2 2 5 总体框架 总体框架负责将各个功能模块进行集成。负责这些功能模块的加载,运行期维护,它们 之间地交互行为和卸载。同时提供一个统一的开发环境供用户使用 总体框架采用e c l i p s e ”0 1r c p 框架,本框架用与开发富客户端应用程序。并能很好 提供插件的运行期维护。各个功能模块作为插件添加到本r c p 应用程序框架中。并且通过 单例模式f 1 2 l 维护一个内存模型。具体参见本文3 1 节 2 2 6 功能模块之间的协作 功能模块之间需要交互协作,才能完成对游戏机器人开发全流程的有效支持 接口部分与图形编程部分的交互体现在,图形编程部分磊要读入并解析位于接口部分中 的游戏接口描述文件,获取关于用户需要编码实现的方法,可用应用程序接口和辅助函数等 各方面所需信息,从而创建用于支持游戏机器人程序图形化开发的游戏接口模型 图形编程部分与编译部分的交互是双向的一方面,编译部分从图形编程部分获取用户 所负责实现的各个控制逻辑方法的编辑结果。主要是用于描述控制镱略的代码以及代码定位 所需的信息。另一方面,图形编程部分从编译部分获取关于程序错误反馈的信息,包括错误 代码的定位信息和关于错误原因的提示 接口部分与编译部分的交互体现在,编译部分读入位于接口部分中的游戏机器人框架, 并和从图形编程部分得到的用户控制策略信息加以综合,得到最终的游戏机器人代码,并最 终编泽为可执行的程序。 总体框架负责集成各个功能模块总体框架与各个功能模块的交互体现于:一方面,总 体框架需要负责各个功能模块的加载,运行时维护和卸载。另一方面,还需要维护功能模块 之间的一些共享数据,主要是一些共享模型数据的维护 1 6 中国科技大学硕士学位论文第2 章游戏机器人开发平台的总体设计 2 3 相关开发技术 通过本章前面各节的分析,我们将开发平台的各个主要功能进行了分析接下来,本芦 对所采用的开发技术进行分析 2 3 1 开发语言的选择 设计实现本开发平台的程序设计语言有多种考虑,比如c ,c + + 。j a v a 等等。表2 1 从 开发效率,对正则表达式的处理对x m l 文件的处理,对所在的图形编辑框架的支持等方面 进行对比。 表2 1 几种语言的对比 语言名称 开发效宰执行效率正则表达式x m l 处理 田形编辑框集 c低高 低低低 c + +中 离高高 由 j a v a高 由 高高高 注t 语言对正则表达式的支持。对x m l 豹支持和对图形编辑框架的支持是指本语言内 置的或用本语言实现的程序库的成熟程度 从表2 1 中看出,采用j a v a 语言比其他两种语言更具优势虽然使用j a v a 语言在开发 平台的执行效率上有所损失,但j a v a 语言内置了对正则表达式和对x m l 的处理,并且有众 多优秀的图形编辑框架。 2 3 2 开发环境的选择 针对j a v a 的开发环境有很多,比如e c l i p s e ,n e t b e a n s ”1 ,i n t e l l i ji d e a l l 4 1 等等在游戏 机器人开发平台的实现过程中,我们采用e c l i p s ei d e 作为我们的开发环境。选择e c l i p s e 不 仅因为它是一个开源的集成开发环境,而且它有开发社区的众多插件支持,比如g e f i ”。 r c p 这些都是在本游戏机器人开发平台中使用到的。 2 4 任务分配及论文安排 本平台由我和周军同学合作开发本人参与了游戏机器人开发平台的设计工作,并完成 了其中几个功能模块。主要完成的功能模块是: 编译部分实现包括预处理器,契约式语言编译器,j a v a 语言编译器的修改和信息 收集子模块的设计与实现。 总体框架实现了基于e c l i p s er c p 的总体框架部分。负责各个插件的集成。 接口部分实现了接口部分中游戏机器人框架子模块 本论文在讨论游戏机器入开发平台的设计与实现的基础上,着重讨论了编译部分总体框 架以及接口部分的设计与实现方式。 1 7 中国科技大学硕士学位论文第2 章游戏机器人开发平台的总体设计 论文在结构上是这样安排的: 第l 章是绪论,主要介绍论文的选题背景及需求分析,第2 章介绍了游戏机器人开发平 台的总体设计思路,总体结构与系统划分,各个系统部分的概要设计以及开发语言和开发环 境的选择。这两章其实是经实验室共同讨论制定的开发需求和技术要求, 第3 章介绍游戏机器人开发平台的总体框架部分以及接口部分,着重介绍了游戏机器人 框架的设计。 第4 章在程序错误分析的基础上引出契约式语言。并设计其语法 第5 章说明本开发平台编译部分的设计与实现。 第6 章以扫雷游戏为实例。详细说明了开发平台接口部分的设计。游戏机器人框架的实 现,以及用户使用开发平台开发扫雷游戏机器人的全过程,这由我与周军共同实现。 第7 章对本人工作进行总结。指出了本开发平台的创新指出和不足之处,并提出一些可 以改进的地方, i 8 中国科技大学硕士学位论文 第3 章总体框架及接口部分的设计与实现 第3 章总体框架及接口部分的设计与实现 本章首先对开发平台的总体框架部分进行介绍。分析了总体框架的功能和其实现方式 介绍了基于e c l i p s e r c p 的插件体系结构接下来介绍了接口郝分的设许,并重点介绍了游 戏机器人框架的设计 3 1 总体框架的设计与实现 游戏机器人开发平台采用插件式体系结构,所谓插件式体系结构

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论