计算机毕业设计论文基于Java桌面游戏争霸的设计与实现.docx
- 文档编号:308853
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:59
- 大小:1.99MB
计算机毕业设计论文基于Java桌面游戏争霸的设计与实现.docx
《计算机毕业设计论文基于Java桌面游戏争霸的设计与实现.docx》由会员分享,可在线阅读,更多相关《计算机毕业设计论文基于Java桌面游戏争霸的设计与实现.docx(59页珍藏版)》请在冰点文库上搜索。
计算机毕业设计论文基于Java桌面游戏争霸的设计与实现
毕业设计(论文)中文摘要
Java桌面游戏—争霸的设计与实现
摘要:
随着计算机日益普及,计算机已然成为人们日常生活的一部分的今天,计算机游戏也越来越成为人们生活中不可或缺的一部分。
可以用于游戏开发的计算机语言多种多样,而Java语言只是其中一种。
然而Java是现在全球最时髦的开发工具之一,它拥有一套庞大且完善的类库,内置了其他语言需要靠库甚至是操作系统才能支持的功能。
Java语言的大部分是为因特网设计的,所以,程序员可以很容易的用Java编写并运行基于Web的游戏。
本设计是一款基于Java的桌面游戏软件。
本游戏的大体设计分为游戏引擎设计和游戏界面设计两个模块,游戏引擎设计中主要涉及到了核心模块core包、本地翻译模块translaition包、网络模块net包和人工智能模块ai包的设计与实现。
整个系统从操作简便、界面美观、灵活实用的用户要求为出发点。
本文从游戏的背景研究和发展现状开始,详细描述了整个游戏的制作过程。
对实现的主要功能以及操作过程进行了重点讨论,开发用到了Java类库中的很多的包以及其中的类,例如java.io包、java.util包、包、javax.swing包、java.awt包等等,文中会对这些包和类的用法进行讲解。
关键词:
游戏Java语言类库人工智能本地翻译
毕业设计(论文)外文摘要
JavaGame—King’sDesignandImplementation
Abstract:
Withtheincreasingpopularityofcomputer,thecomputerhasbecomepartofpeople'sdailylifetoday,Computergameshavebecomeanintegralpartofpeople'slives.Thelanguagecanbeusedinthecomputergamedevelopmentisdiversity,andthejavalanguageisonlyoneofthem.However,javaisthemostpopulardevelopmenttoolsoftheworld,italsohasahugesoundlibrary,built-inthefunctionthattheotherlanguageneedtorelyonlibraryorevenoperatingsystem.MostpartofthejavalanguageisdesignedforInternet,soprogrammerscaneasilyusejavatodevelopandrunWeb-basedgames.
Thisdesignisadesktopgamesoftwarethatbasedonjava.Thegame‘sdesignisgenerallydividedintothegameenginedesignandgameinterfacedesign,andthegameenginedesignmainlyrelatedtothecoremodule–corepackage,localtranslationmodule–translationpackage,networkmodule–netpackageandartificialintelligencemodule–aipackage’sdesignandimplementation.Theentiresystemisfromthesimpleoperation,beautifulinterface,aflexibleandpractical--user’srequirementsasastartingpoint.
Thispaperfromthegamebackgroundresearchanddevelopmentstatus,adetaileddescriptionoftheentireprocessofproducingthegame.Implementationofthemainfunctionsandtheoperationoftheprocesswerediscussed,Thedevelopmentusedmanypackagesandclassesofthejavalibrary,suchasthejava.langpackage,java.utilpackage,javax.swingpackage,java.awtpackageandsoon,thetextwilltalkabouttheuseageofthepackagesandclasses.
Keywords:
game;javaLanguage;library;artificialintelligence;Localtranslators.
1引言
1.1课题的研究背景与意义
随着计算机日益普及,计算机已然成为人们日常生活的一部分的今天,计算机游戏也越来越成为人们生活中不可或缺的元素。
游戏可以简单地理解为调节人们生活节奏和缓解人们生活压力的一种手段。
现在理解的游戏基本意义都是娱乐性质较浓,要有特定的行为模式,遵循一定规则以达到游戏者目的的行动。
游戏的最初目的就是让游戏者(玩家)在游戏中得到放松。
游戏一直存在于人类活动中,如今定义的游戏从早期的猜谜游戏,发展到如今的单机RPG游戏,网络游戏等,已经升华为更高级别意义上的娱乐活动,对人们的感官刺激也越发强烈,得到的乐趣也更多。
而对于编写游戏而言,Java终于变得足够成熟了(Java的语言特性和其与游戏的结合请见下一小节)。
它现在是一种开发能够在多种平台上运行的中小型游戏的很好的方式。
此外,Java支持和其他的库一起工作,而且它的速度变得越来越快。
Java并不是以游戏编程为目的而被开发的,事实上,游戏编程可能是Java创造者心中的最后一个目标。
在过去,妨碍Java发展的是它的运行环境;浏览器和Java类库一起从本质上决定了Java应该用来写哪种类型的应用程序,而高速的游戏和图象则不在其中。
这给Java带来了不好的影响,因为人们注意的不是语言,而是它的运行环境。
现在,浏览器已经不能控制一切了,Java作为游戏编程语言的另一个机会到来了。
Java在过去有一点超前于它的时代,当时市场的动力落后于Java,但是现在Java可以而且已经取得成功。
据悉,中国民族网络游戏出版工程将在5年内出版100种大型民族网络游戏,总投资预计超过3亿元。
信息产业部已将网络游戏通用引擎研究及示范产品纳入国家“863计划”,这是中国首次将网络游戏技术纳入国家科技计划。
文化部也向国内12家在网络游戏业的实力厂商首批颁发了《网络文化经营许可证》,加大对网络游戏的监管力度,进口游戏审查制,限制国内对国外的受理措施。
科技部制定科技发展规划,将把网络游戏纳入现代服务业并加以扶持。
政府态度和政策都是一种信号,表明2005年对本土网络游戏的扶持力度将加大;国内游戏厂商将可获得发展的核心技术平台;政策有利于保护中国游戏软件的自主知识产权;这为网络游戏发展创造了良好的政策环境。
而Java的创建者把Java称为“网络编程语言”,且由于JAVA游戏一般来说简单有趣,并且对用户硬件要求极小,所以JAVA游戏通常对85%的计算机用户都有吸引力。
1.2Java语言的特点和及其与游戏的结合
1.2.1Java语言的特点
Java能够取得如此的成功,是因为它在设计时的目标就定位在要解决当今程序员们所面临的众多问题。
Java的基本目标之一就是要提高生产率。
生产率来源于许多方面,但是Java希望在语言方面相对于它的前辈有明显的提高,从而为程序员提供更大的便利。
1.系统易于表达、易于理解
被设计用来适应问题的“类”,在表达问题的能力上显得更强。
这意味着当你编写代码时,你是在用问题空间的术语,而不是计算机——也就是解空间——的术语,来描述解决方案。
可以用更高层的概念来处理问题,并且只用一行代码就可以做更多的事。
易于表达所带来的另一个好处就是易于维护,维护在程序生命周期中所占的成本比例极大。
如果程序易于理解,那么他必定易于维护。
同时,这也降低了创建和维护文档的费用。
2.类库的巨大影响力
创建程序最快捷的方式就是使用已经编写好的代码:
类库。
Java的主要目标之一就是要使类库更易于使用。
这是通过将类库转型为新的数据类型来实现的,因此,引入类库意味着在语言中添加了新的数据类型。
因为Java编译器会照管类库的使用方式——确保正确地初始化和回收垃圾,并保证其他方法被正确地调用,因此,你只需专注于你想让类库做些什么,而不必关心应如何去做。
3.错误处理
在C语言中,错误处理一直是一个声名狼籍的问题,而且经常被忽视——经常只能靠上帝保佑了。
如果你在构建一个大型的、复杂的程序,那么没有什么比在程序某处暗藏了一个错误,而你却没有任何能够暗示它在何处的线索更糟糕的事情了。
Java异常处理便是一种能够确保错误必须被报告,而且对此必须有所响应的机制。
4.大型程序设计
许多传统语言在程序大小和复杂度方面都有内置的限制。
例如,BASIC可能对某类问题的解决能力非常强,可以快速地创建解决方案,但是如果程序长度超过数页,或者超出该语言正常的题域之外,它就会像“在非常粘稠的液体中游泳”。
它没有明确的界线来表示何时你所使用的语言会导致最终的失败,即使有这样的界线,你也会忽视它。
你总不能说:
“我的BASIC程序太大了,我不得不用C来重写它!
”相反,你会试着将几行代码硬塞进去,以便在程序中增加新功能。
因此,不知不觉中,你就付出了额外的开销。
Java具备编写大型程序的能力——也就是说,它消除了小型程序和大型程序之间的复杂度界线。
在编写“hello,world”风格的小应用程序时,你当然不必使用OOP,但是当你需要用到时,这些功能随手可得。
而且,对小型程序和大型程序,编译器都会一视同仁地、积极地找出因bug而产生的错误。
1.2.2Java与网络的结合
Java不仅是一种功能强大的、安全的、跨平台的、国际化的编程语言,而且它还在不断地被扩展,以提供更多的语言功能和类库,能够优雅地处理在传统编程语言中很难解决的问题,例如线程、数据库访问、网络编程和分部式计算。
Java是通过applet以及使用JavaWebStart来进行客户端编程的。
Applet是只在Web浏览中器运行的小程序,它是作为网页的一部分而自动下载的。
当applet被激活时,它便开始执行一个程序,这正是它优雅之处:
它提供一种分发软件的方法,一旦用户需要客户端软件时,就自动从服务器把客户端软件分发给用户。
用户获取最新版本的客户端软件时不会产生错误,而且也不需要很麻烦的重新安装过程。
Java的这种设计方式,使得程序员只需创建单一的程序,而只要一台计算机有浏览器,且浏览器具有内置的Java解释器,那么这个程序就可以自动在这台计算机上运行。
由于Java是一种成熟的编程语言,所以在提出对服务器的请求之前和之后,可以在客户端尽可能多地多做些事情。
例如,不必跨网络地发送一张请求表单来检查自己是否填写了错误的日期或其他参数,客户端计算机就可以快速地标出错误数据,而不用等待服务器作出标记并给你传回图片。
这不仅立即就获得了高速度和快速的响应能力,而且也降低了网络流量和服务器负载,从而不会使整个Internet的速度都慢下来。
Javaapplet胜过脚本语言程序的优势之一就是,它是以被编译过的形式存在的,因此其源代码对客户端来说是不可见的。
另一方面,虽然反编译Javaapplet并不需要花费多少力气,但是隐藏你的代码通常并不是一个重要的话题。
有另外两个因素很重要。
如果编译过的applet很大的话,那么就需要额外的时间去下载它。
脚本语言程序只是被作为Web页面的一部分文本而集成到了Web页面中。
这对Web网站的响应能力来说很重要。
另一个因素是非常重要的“学习曲线”问题。
如果你是一个VisualBASIC程序员,那么转而学习VBScript可能是最快的解决方案,而且由于它或许能够解决大多数典型的客户/服务器问题,所以你可能很难对学习Java报以公正的态度。
如果你已经对脚本语言很有经验了,那么你在考虑使用Java之前,应该先看看JavaScript是否满足你的要求,这样对你会很有好处,因为它们能够更方便地满足你的要求,而且使你更具生产力。
Java引起人们的注意很大程度上始于applet。
Java确实是一种通用的编程语言,至少在理论上可以解决各种其他语言能够解决的问题。
正像前面指出的那样,可能存在其他更有效的方式去解决客户/服务器问题。
当你离开applet的竞技场时,你便步入了通用应用系统的世界,这里的系统都是独立运行的,不需要浏览器,就像其他普通程序一样。
在这里,Java的威力不仅在于它的可移植性,还包括它的可编程性。
Java已经具备了许多功能,让你创建健壮的程序,而花费的时间比使用Java之前的任何编程语言都更少。
不过,这是好坏参半的事。
为Java带来的改进,所付出的代价是降低了执行速度。
像任何语言一样,Java也具有不适合解决某类问题的天生的限制。
然而,Java是快速进化的语言,而且每当发布一个新版本时,它都会因为能够解决更多的问题而变得越来越具有吸引力。
1.3可行性的分析
可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。
要达到这个目的,必须分析几种主要的可能解法的利弊,从而判断原定的系统规模和目标是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度。
因此,可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。
1.3.1技术可行性
本游戏是在WindowsXP环境下开发的,一般的机器配置就可以了,对机器本身没有太高的要求,一般当前学校或个人电脑完全可满足要求,环境只需装上jdk1.4或以上版本就行了,Java是现在全球最时髦的开发工具之一,它拥有一套庞大且完善的类库,内置了其他语言需要靠库甚至是操作系统才能支持的功能,拥有一个虚拟机。
NeatBeansIDE5.5是SUN公司开发的Java可视化集成开发工具,是目前最优秀的Java集成开发工具之一。
1.3.2经济可行性
由于本系统使用到的工具一般机器都具备,使用环境也很简单,开发成本低,本课题研究的内容是涉及网络的游戏对战。
当今形式下网络游戏俨然已经成为年轻人最时兴的消费方式之一,JAVA一直以来由于其可以“跨平台”以及“一次编译,到处运行”等特点,许多人直接它为网络编程语言,且由于JAVA游戏一般来说简单有趣,并且对用户硬件要求极小,所以JAVA游戏通常对85%的计算机用户都有吸引力。
且政府态度和政策都是一种信号,表明2005年对本土网络游戏的扶持力度将加大;国内游戏厂商将可获得发展的核心技术平台;政策有利于保护中国游戏软件的自主知识产权;这为网络游戏发展创造了良好的政策环境。
1.3.3操作可行性
由于在整个系统的开发过程中从操作简便、界面美观、灵活实用的用户要求为出发点,界面设计时充分考虑玩家的感受,界面比较直观,交互性很好,所以操作起来简单明了。
1.3.4法律可行性
信息产业部已将网络游戏通用引擎研究及示范产品纳入国家“863计划”,这是中国首次将网络游戏技术纳入国家科技计划。
文化部也向国内12家在网络游戏业的实力厂商首批颁发了《网络文化经营许可证》,加大对网络游戏的监管力度,进口游戏审查制,限制国内对国外的受理措施。
科技部制定科技发展规划,将把网络游戏纳入现代服务业并加以扶持。
政府态度和政策都是一种信号,表明2005年对本土网络游戏的扶持力度将加大;国内游戏厂商将可获得发展的核心技术平台;政策有利于保护中国游戏软件的自主知识产权;这为网络游戏发展创造了良好的政策环境。
2需求分析
所谓系统分析,就是指在整个系统开发工程中,解决“做什么”的问题,把要解决哪些问题,满足用户哪些具体的信息需求调查分析清楚,从逻辑上或是说从信息处理的功能需求上提出系统的方案,即逻辑模型,为下一阶段进行物理方案设计,解决怎么办提供依据。
2.1系统初步分析
2.1.1用户需求分析
随着Internet的发展,进入信息时代后快速获得网络共享资源成为很简单的事情,人们对互联网也有了很大的依赖性。
网络的普及化使得原本单人的游戏已经不能适应人们的需要,广大的游戏者迫切需要能够和身在异地的朋友一起享受游戏的乐趣。
在这种环境下,网络游戏应运而生,越来越多的游戏者投身到网络游戏中。
这样带来的问题自然成为越来越多的游戏研究者将研究方向转为网络游戏的研究。
据目前的网络游戏的调研来看,以运动休闲为主的运动类游戏正在受到越来越多玩家的支持和爱戴。
但是此类网络游戏中,由Java开发的网络游戏仍然是一个空白页,但是它却是一个迫切需要填补的空白页。
而Java由于其天生的语言特性(请见1.2节),很适合用于开发网络游戏,但由于系统环境的问题使得它一直以来未能用于游戏开发,而近来由于Java的发展,它已经摆脱了束缚,浮出了游戏开发的水面,若能在网络上出现高要求多人互动的Java游戏,它将是一项极为伟大的发展。
这也正是现在许多玩家迫切要求的。
2.1.2功能需求分析
系统功能的需求指定系统必须提供的服务。
通过需求分析应该划分出系统必须完成的所有功能。
本作的功能模块主要包括游戏的引擎设计,游戏的界面设计。
1.游戏的引擎设计的需求分析:
游戏引擎是游戏的灵魂,也就是这个游戏的框架,它的好坏直接决定着游戏的质量。
它是控制所有游戏功能的主程序,包括画面的处理,人工智能的实现,接受玩家的设置,以及网络联机的实现等等。
所以鉴定一个游戏的好坏,从内部设计的原因上说来,是从游戏的引擎设计体现出来的。
一个游戏的引擎设计,直接关系到游戏设计的其他方面,诸如游戏的图形系统、声音系统及设计的物理模块等等各个方面。
就如一台电脑需要CPU一样,游戏的引擎也是直接牵制着整个游戏的设计。
它的主要作用就是处理游戏中的事件,运行游戏中的图象,输出声音及画面,调整游戏的节奏,响应玩家的游戏监听事件等等。
所以,游戏的引擎设计是必要的功能模块,而且游戏的引擎设计必须做好,以使得游戏更具有可玩性。
游戏程序是一项精度要求很高的程序系统,因为其代码利用率很高。
一个实时运行的最终作品,每秒都会运行成千上万行程序,绘图事件等都会以极高的频率在后台等待响应,若有丝毫的差别都将很容易导致程序在运行不久后可能出现严重错误,甚至死循环。
因此,其逻辑设计应当相当严谨,需将所有可能发生的事件及意外情况考虑在设计中。
2.游戏界面设计的需求分析:
作为一个游戏吸引玩家的重要方面,游戏的界面要很漂亮,图形动画的设计是非常必要的。
本作将采用模拟动画的方式将战争展现在玩家眼前。
设计出丰富的战争环境,游戏中为了美观,适用性强,需要采用外部文件引入的图片贴图,而Java中提供了用于处理图片的功能包,使得解决静态或动态、画面背景、屏幕刷新的双缓冲等都有较好的解决方案。
2.1.3系统的可靠性和可用性需求分析
可靠性需求定量地指定系统的可靠性。
例如,游戏在运行过程中不能频繁发生错误而不得不终止游戏。
可用性则与可靠性密切相关,它量化了用户可以使用系统的程度。
例如,游戏的运行必须保证随时可以,不能在一段不使用的时间内,游戏产生不可预见的错误而致无法运行等等。
2.2数据流分析
数据流程分析主要包括对信息的流动、传递、处理、存储等的分析。
数据流程分析的目的就是要发现和解决数据流通中的问题。
通过对本系统的需求分析,确定了系统的基本功能。
整个系统的数据流图如图2-1所示:
图2-1系统数据流程图
3总体设计
总体设计过程通常由两个主要阶段组成:
系统设计阶段,确定系统的具体实现方案;结构设计阶段,确定软件结构和功能模块。
3.1系统开发
3.1.1系统开发的原则
经过需求分析阶段的工作,系统必须“做什么”已经清楚了,现在是决定“怎么做”的时候了。
总体设计的基本目的就是回答“概括地说,系统应该如何实现?
”这个问题,因此,总体设计又称为概要设计或初步设计。
通过这个阶段的工作将划分出组成系统的物理元素——程序、文件、数据库、人工过程和文档等等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后仔细设计。
总体设计阶段的另一项重要任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。
总体设计过程首先寻找实现目标系统的各种不同的方案,需求分析阶段得到的数据流图是设想各种可能方案的基础。
然后从这些供选择的方案中选取若干合理的方案,为每个合理的方案都准备一份系统流程图,列出组成系统的所有物理元素,进行成本/效益分析,并且指定实现此方案的进度计划。
通常,设计出初步的软件结构后还要多方改进,从而得到更合理的结构,进行必要的数据库设计,确定测试要求并且制定测试计划。
基于上面的叙述,在详细设计之前先进行总体设计的必要性:
可以站在全局高度上,花较少成本,从较抽象的层次上分析比对多种可能的系统方案和软件结构,从中选出最佳方案和最合理的软件结构,从而用较低成本开发出较高质量的软件系统。
3.1.2系统设计阶段
系统设计阶段的主要目的就是确定软件如何做的问题。
主要任务就是确定系统中的大模块和设计方法,确定软件的功能模块和模块的作用,组成,关系等等。
本系统是一款希望可以基于网络的多人对战游戏,当游戏者打开游戏,游戏界面打开,然后玩家可以选择是进行一轮新的游戏,还是选择接着玩上次没玩结束的游戏(如果先前已经玩过该游戏,但没有玩结束,有事了,并且保存了),只需要选择载入游戏就可以;玩家还可以选择是进行单机游戏或是联机游戏,如果选择网络联机玩的话只需要启动服务器等待其他玩家加入就可以了;如果选择了单机游戏,并选择了进行一轮新的游戏,则游戏会出现游戏设置界面,通过该界面玩家可以设置游戏的玩家数量(2-6个)以及游戏的难度,电脑玩家有简单智力的和高智力的,然后玩家可以选择不同的卡片模式和不同的游戏模式(分为统治型、首都型和任务型),并且玩家可以选择不同的游戏地图,游戏的目标是统治全世界,当玩家设置好一切后,可以点击开始游戏,则游戏开始。
游戏开始,游戏画面是一张被分割成多个国家的地图,每个玩家可以轮流在地图上选择自己的地盘和军队的布置,而电脑玩家也会自动放置军队,当每个国家都被放上军队后,才可以重复在一个国家放置多余的军队,当默认的所有军队全都放置好,然后玩家就可以开始统一全球的战争游戏了,而当一方的军队侵略另一边时,游戏程序通过一定的人工智能算法让战争的双方分别产生随机数,然后进行比较,大的一方胜利,而当进攻者与防守者产生的数字一样大时,算是进攻失败,如果进攻胜利,则胜者将占领该国家,并可以选择留守该国家的军队数,而等到下一轮到该玩家进攻时,可以根据该玩家在占领的领土来决定你可以增加多少军队,以及你可以获得的卡片,获得的卡片可以用来交换军队,最后占领全世界(消灭了其他两个玩家)的为胜利者。
在游戏过程中如果玩家突然有事无法继续游戏,本游戏可以保
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 毕业设计 论文 基于 Java 桌面 游戏 争霸 设计 实现