五子棋网络对战系统 毕业设计论文.docx
《五子棋网络对战系统 毕业设计论文.docx》由会员分享,可在线阅读,更多相关《五子棋网络对战系统 毕业设计论文.docx(61页珍藏版)》请在冰点文库上搜索。
![五子棋网络对战系统 毕业设计论文.docx](https://file1.bingdoc.com/fileroot1/2023-5/7/7011c6b3-38ab-49c5-8114-0c434e3c4e7c/7011c6b3-38ab-49c5-8114-0c434e3c4e7c1.gif)
五子棋网络对战系统毕业设计论文
五子棋网络对战系统毕业设计论文
xx大学xx学院
本科生毕业设计(论文)
题目:
用JAVA实现五子棋网络对战系统
姓名:
xxxx
学号:
xxxxx
系别:
计算机工程系
专业:
计算机科学与技术
年级:
xxx级
指导教师:
xxxx
2013年6月23日
独创性声明
本毕业设计(论文)是我个人在导师指导下完成的。
文中引用他人研究成果的部分已在标注中说明;其他同志对本设计(论文)的启发和贡献均已在谢辞中体现;其它内容及成果为本人独立完成。
特此声明。
论文作者签名:
日期:
关于论文使用授权的说明
本人完全了解福州大学至诚学院有关保留、使用学位论文的规定,即:
学院有权保留送交论文的印刷本、复印件和电子版本,允许论文被查阅和借阅;学院可以公布论文的全部或部分内容,可以采用影印、缩印、数字化或其他复制手段保存论文。
保密的论文在解密后应遵守此规定。
论文作者签名:
指导教师签名:
日期:
II
用JAVA实现五子棋网络对战系统
摘要
现代科学技术正在迅猛的发展着,计算机信息技术在其中发挥着巨大的作用。
在此背景下,Java已经从一种与平台无关的编程语言演变成一种跨平台的服务器端技术,同时JAVA也成了最常用的语言之一。
对比C++语言,Java语言更加简单,Java语言更加容易理解,也没那么容易出错,它的语法结构让人看起来更加简洁清楚。
此外Java语言相对比较晚出现,它在面向对象和多线程特性上相对其他计算机语言有了很大的进步,而且在Java语言中比较容易实现算法,可以大大缩短了我们编写程序的时间,同时写出来的Java代码也比较容易得到复用和移植。
基于以上优点,本文采用Java语言实现一款五子棋网络对战系统。
此次游戏设计采用Eclips作为开发环境,运用了最传统的游戏规则,即出现连续五颗相同颜色的棋子则获得胜利。
并且只需用鼠标点击就可以实现这个游戏所有操作:
开始游戏、落子、投降、求和。
这种设置老少皆宜,让所有的人都可以无障碍的玩这游戏,并配合简洁的游戏界面,让玩家体验到五子棋的趣味性。
关键词:
Java,五子棋,对战系统
I
BackgammonOnlinePlaySystemwithJAVA
Abstract
Withthedevelopmentofmoderntechnologyofscience,theComputerInformationTechnologyplaysanimportantroleinit.Underthissituation,Javahaschangedfromashapelessprogramminglanguagetocross-platformsever-sidetechnology.Atthesametime,Javahasbecometheoneofmostcommonlyusedlanguage.ContrastingtoC++,Javalanguageismoresimple,moreeasilyunderstoodandnotsoeasytomakemistakes.Itsgrammaticalstructureisseentobemoreconciseandclear.Inaddition,Javalanguagerelativelylatetoappearonthecharacteristicsofobject-orientedandmulti-threaded,ithasbeengreatprogressrelativetoothercomputerlanguages,andtheJavalanguagerelativelyeasytoimplementthealgorithmcangreatlyshortenthetimeofourprogram,whilewriteoutJavacodereuseisrelativelyeasytogetandtransplantation.Therefore,becauseoftheadvantagesofJavalanguage,soIchosetouseJavalanguagetocompilethegame.ThegamedesignEclipseasthedevelopmentenvironment,theuseofthetraditionalrulesofthegame,theconsecutivewinfiveofthesamecolorpieces.Andonlyamouseclickyoucanachievethisgamealloperations:
startthegame,Lazi,surrender,summation.Thissettingallages,sothatallpeoplecanplaythisgameaccessible,andwithasimplebackgroundpicture,allowingtheplayertoexperiencethegobangfun.
KeyWords:
Java,Gobang,BattleSystem
II
第1章绪论.................................................................1
1.1研究背景............................................................11.2研究意义............................................................11.3课题的内容..........................................................11.4论文组织结构........................................................2
第2章相关技术介绍.........................................................3
2.1开发工具............................................................32.2开发语言............................................................32.3游戏引擎............................................................4
系统框架.............................................................6第3章
3.1游戏的基本流程......................................................63.2游戏中主要的类及类的功能............................................73.3游戏说明............................................................7
3.3.1行棋顺序......................................................7
3.3.2判断胜负......................................................7
3.3.3游戏操作说明..................................................83.4游戏资源与架构......................................................8
第4章关键技术及主要功能的具体实现.........................................9
4.1概要设计说明........................................................94.2界面实现............................................................9
4.2.1服务器界面....................................................9
4.2.2登录界面......................................................9
4.2.3大厅界面.....................................................10
4.2.4游戏界面.....................................................11
4.2.5游戏结果界面.................................................11
4.2.6游戏界面的实现...............................................12
4.3功能模块...........................................................13
4.3.1服务端实现...................................................13
4.3.2客户端实现...................................................13
4.3.3五子棋游戏功能的实现.........................................14
第5章软件测试............................................................17
III
5.1软件测试方案.......................................................17
.......................................................175.2软件功能测试
结论.......................................................................19
参考文献...................................................................20
谢辞.......................................................................21
IV
用JAVA实现五子棋网络对战系统
第1章绪论
1.1研究背景
在当代,计算机的技术不断的发展,网络这一技术普及范围也越来越广,网络已经应用到了世界的各个角落,它为人们提供各种各样的服务,让人们的生活更加的丰富多彩,甚至不知不觉中已经成为人们生产中不可少的部分,与此同时,在网络普及的过程中,游戏也在逐渐得到人们的认同。
如今网络休闲游戏凭借着其健康、方便、益智等优点迅猛的发展着,也因此各大游戏对战平台层出不穷,比如大家耳熟能详的QQ对战平台。
这些游戏已经成为了大部分现代人休闲娱乐的重要部分。
1.2研究意义
Java是一门经过充分发展,比较成熟的语言,Java语言在企业级应用称霸这些年念头,已经充分证明了它非常适合于开发大型软件。
当Java的运行效率不再是问题的时候,Java语言严谨、高抽象、可读性强的优势就体现出来了。
这对于规模越来越庞大的游戏软件来说,有着不小的诱惑[1]。
它拥有一套属于自己的庞大并且较为完善的类库,内置了其他语言需要靠库甚至是操作系统才能支持的功能,总而言之,JAVA语言的出现带给了整个业界巨大的冲击,为整个IT业带来深远的影响。
Java产生与流行是Internet发展的客观要求;Java可以制作大部分网络应用程序系统,而且与如今流行的WWW浏览器结合很好;
[2]网络就是计算机"信条的平台技术它是一种区别于传统系统,遵守"。
计算机的普及,以及网络的发展使得网络游戏的需求日益增长,同时作为传统游戏的五子棋,因为它本身所具有简单方便等特点,使得它在世界各地都有大量的玩家。
基于C/S模式使用JAVA语言开发的五子棋网络对战系统,将五子棋游戏移植到到网络对战平台当中无疑非常适应现代的潮流,与我们的娱乐理念相吻合,而且我相信开发游戏对战系统具有很强的可操作性,也有很大的空间。
1.3课题的内容
本课题设计实现了五子棋网络对战系统。
通过简单的登录,玩家可以进行五子棋对战。
在游戏中,本着先排队先开始的原则,让最先进入游戏的玩家最先找到游戏对手,以此减少玩家的等待时间。
在游戏中,玩家如果想退出,则可以通过点击投降或者求和的按钮来结束游戏,其中求和需要对方玩家的同意。
如果玩家分出了胜负,系统会提示胜负信息,点击确定按钮,则退出游戏,状态由“游戏中”变成“空闲中”。
1
福州大学至诚学院本科生毕业设计(论文)
1.4论文组织结构
本文描述的是用Java开发的五子棋对战系统,共分为5章:
第1章:
先是介绍了用Java开发五子棋网络对战系统的研究背景,研究利用Java语言开发游戏的意义,然后对玩游戏的流程的内容进行基本的介绍,最后介绍了本文各个章节的组织结构。
第2章:
先介绍了本系统所用到的开发工具Eclipse,然后分析了开发语言Java的特点,最后简要的介绍了这次系统所用到的游戏引擎GameEngine。
第3章:
先介绍了游戏的基本流程,然后用列表的形式来介绍游戏中所用到的类及类的功能,接着对游戏进行说明,最近简述了游戏的资源和构架。
第4章:
先简述了游戏概要设计说明,然后对游戏的各个界面进行介绍,最后对游戏的功能模块实现进行介绍并解释关键代码。
第5章:
先简要说明了软件测试的方案,然后利用表格的形式对软件进行测试并说明结果
在论文的末尾,我对该五子棋网络对战系统的设计过程所遇到的一些问题进行了总结。
2
用JAVA实现五子棋网络对战系统
第2章相关技术介绍
2.1开发工具
本课题采用的开发工具是Eclipse。
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopment
[3]Kit,JDK)。
在本次五子棋对战系统中,设计对话框时我用到了Java其中的一种叫Swing的插件,Swing是一个用于开发Java应用程序用户界面的开发工具包。
它以抽象窗口工具包(AWT)
[4]为基础使跨平台应用程序可以使用任何可插拔的外观风格。
当我们在使用Swing开发时,只要通过Swing的功能就可以大大减少我们的代码量,达到事半功倍的效果,同时还可以丰富我们所创建的用户界面。
其中使用Swing创建图形界面时需要这些步骤:
首先导入Swing包,然后选择界面风格,也可以插入我们所需要的图形,在对话框中添加所需要的按钮和标签等,然后再将组件放置到容器上,最后设置好按键的功能,这样基本就完成了Swing的使用。
2.2开发语言
自1995年SunMicrostems公司推出Java以来,人们不断挖掘Java编程系统的潜力,
[5]直到现在已经得到了全世界的认可.Java编程语言是一种通用的,并发的,阶级基础,
[6]面向对象的语言。
它与一般的编译语言和直译语言有着很大的区别。
它首先将源代码编译成字节码,然后利用各个不同平台上的虚拟机来解释那些执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。
Java技术的应用非常广泛,小到个人PC、移动电话,大到互联网、科学超级计算机等等。
从整体上来说,Java编程语言的风格与C++语言有一些相似之处。
它继承了C++语言面向对象技术的核心,Java舍弃了C++语言中容易引起错误的指針,改以引用取代,同时移除原C++与原来运算符重载,也移除多重继承特性,改用接口取代,增加垃圾回收器功能。
具体来说,它具有如下特性:
(1)Java这门语言简单好学,也非常的好用。
Java语言是在C与C++计算机语言的基础上进行简化和改进的一种新型计算机语言,它去除掉了C和C++中最难理解的多重继
[7]承技术和最难正确应用的指针等内容。
用过C++的开发游戏的程序员都知道,内存管理是最容易出错误的地方,申请的内存用完以后必须释放,要不然慢慢的可使用的内存资源会越变越少,直到耗尽系统资源后会导致死机。
但Java能通过垃圾自动回收机制简化了
3
福州大学至诚学院本科生毕业设计(论文)
程序内存管理,统一了在不同操作系统平台上不同的数据类型所占用的内存大小的标准,毫无疑问这对于编程来说有着相当大的用处的。
(2)基于对象的编程很符合程序员的思维模式习惯,让我们在编写程序时显得更加得心应手。
Java语言与其它面向对象语言一样,引入了类的概念,类是用来创建对象的模板,
[8]它包含被创建的对象的状态描述和方法的定义。
(3)每当比较Java与其他语言的时候,跨平台总是被人们提及到,因为这是Java一个非常重要的特点。
由于它采用先编译成中间码,然后装载与校验,再解释成不同的机器码来执行,“屏蔽”了具体的“平台环境”特性要求,正因为这样,只要能支持Java虚拟
[9]机,那么就可运行各种Java程序。
Java系统可以运行在不同的操作系统和硬件上。
由于Java的跨平台,Javaapi自然也是平台统一的。
我们只要拿Javaapi与C++的类库相比便可以知道它的可贵之处。
因为对于程序员而言,统一的api函数能够让他们减轻负担,就可以省略掉其中一些不必要的麻烦。
(4)Java相对来说比较安全,经常使用网络的人通常都有一个担心,生怕网络上的各种有毒网站以及各种盗取私人文件的钓鱼网,甚至是下载到含有恶意代码的文件,他们会破坏我们的计算机系统。
但是当我们使用支持Java的浏览器时,我们就可以放心地运行Java的小应用程序JavaApplet,不必担心异常状况,因为我们可以确保在网络上运行的Java程序都是符合网络安全协议的。
Java小应用程序将限制在Java运行环境中,它不会访问或修改不允许访问的内存或文件。
(5)类是Java程序的基本组成单元,其中一部分类是我们自己编写的,一部分是引用类库中的,而类是运行时动态才进行装载的,这就使得Java可以在分布环境中动态地维护程序及类库。
(6)在操作系统中,进程和线程是两个非常重要的基本概念。
在执行过程中,进程有自己独立的内存空间和系统资源,并且各个进程的内存数据和状态彼此之间并无相关,类似于管道的方法,通过特定的通信机制来完成交换数据。
线程是在进程中产生的一种轻负荷进程,线程在执行过程中共享一块内存空间和一组系统资源,因此线程之间可以直接进
[10]行数据交换。
2.3游戏引擎
游戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件,这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让
大部分都支持多种操作平台,游戏设计者能容易和快速地做出游戏程式而不用由零开始,
如Linux、MacOSX、微软Windows。
游戏引擎主要是包含以下系统:
渲染引擎(即“渲染器”,含二维图像引擎和三维图像引擎)、物理引擎、碰撞检测系统、音效、脚本引擎、
4
用JAVA实现五子棋网络对战系统
[11]电脑动画、人工智能、网络引擎以及场景管理。
本课题五子棋网络对战系统所使用的游戏引擎为GameEngine,有较强的实用性,简单易学,非常方便。
它是由福大师生自主研发设计的一款游戏引擎工具,由本人的导师提供。
5
福州大学至诚学院本科生毕业设计(论文)
第3章系统框架
3.1游戏的基本流程
本游戏运用了C/S模式,在游戏开启服务端后,我们需要点击“启动”按键,这样才可以连接服务端,登录客户端后,我们要进行填写昵称,然后登陆游戏,接着再点击“寻找对手”按键就可以进入等待排队状态,只要出现也在等待的对手,就可以进入游戏,开始游戏,如果玩家想要放弃棋局则可点击投降来结束比赛,亦或者发现棋局将以和棋为结局,则可点击“和棋”按钮来结束比赛。
如果比赛正常结束,则系统将会出现胜负的提示。
图3-1为下五子棋的流程。
和棋
图3-1游戏流程
6
用JAVA实现五子棋网络对战系统
3.2游戏中主要的类及类的功能
表3-3中介绍了游戏中所用到的主要类,和各个类所实现的功能及实现所用的方法。
表3-3主要类表
主要类名实现功能实现的方法
Client服务端和客户端的连接connect(),processMsg(Stringmsg)
GD定义全局数据无HallFrame绘制大厅界面HallFrame(),run()LoginFrame绘制登陆界面LoginFrame(),run()
QiJu五子棋判定算法init(),isEmpty(intcol,intrange),
putQZ(intcol,intrange),isFiveLink(int
qzColor,intcol,intrange)WZGameUI绘制棋盘WZGameUI(),show(),drawQPLine(Graph
graph),drawQZ(Graphgraph),
drawPlayerInfo(Graphgraph),
isValidSetPoint(intx,inty)ClientThread客户端通信ClientThread(Sockets),send(String
str),voidrun()
Match寻找对手toMatch(ClientThreadc)ServerThread服务器端主线程run(),closeServer()WZServer服务端界面main(String[]args),WZServer()
3.3游戏说明
3.3.1行棋顺序
(1)进入游戏后,玩家一会被绑定为黑棋,玩家二会被绑定白棋。
(2)玩家一即黑棋方先手,玩家二后手,一个人一次只能下一个棋子,直至分出胜负为止。
若棋盘下满还没有玩家实现五子连珠,则判定双方为和棋。
3.3.2判断胜负
(1)如果其中一个玩家能最先在棋盘水平方向、竖