最新版五子棋游戏的发展与现状毕业设计论文.docx
《最新版五子棋游戏的发展与现状毕业设计论文.docx》由会员分享,可在线阅读,更多相关《最新版五子棋游戏的发展与现状毕业设计论文.docx(16页珍藏版)》请在冰豆网上搜索。
最新版五子棋游戏的发展与现状毕业设计论文
优秀论文归档资料
未经允许切勿外传
目录
第一章:
绪论1
1.1开发背景1
1.2课题意义1
1.3五子棋游戏的发展与现状错误!
未定义书签。
1.4论文的组织结构3
第二章:
系统使用工具介绍4
2.1编程语言4
2.1.1java语言介绍4
2.1.2java语言的优点4
2.2Eclipse集成平台介绍6
2.2.1Eclipse概述6
2.2.2Eclipse的安装、设置与启动6
第三章:
五子棋程序的介绍与规划8
3.1软件的基本功能8
3.2软件的实现目的9
第四章:
系统功能分析与算法分析9
4.1系统功能9
4.2算法分析9
第五章:
系统设计10
5.1详细功能分析10
5.2设计思路12
第六章:
系统的具体实现1错误!
未定义书签。
6.1准备工作1错误!
未定义书签。
6.2建立游戏窗口界面1错误!
未定义书签。
6.3完成下棋的功能17
6.4完成判断胜负的功能17
6.5完成一些按钮的功能17
第七章:
五子棋功能的演示20
7.1软件的调试以及改错20
结语21
参考文献22
致谢23
第一章绪论
1.1开发背景
游戏软件是当今世界发展最迅速,最有影响力,最有潜力与活力的领域之一。游戏软件深受广大青年人喜爱,而且在发达国家中老年人也有大部分喜欢游戏的,因此游戏软件在很大程度上给予绝大部分人精神上的娱乐。第二次世界大战以后,电子计算机技术得到了突飞猛进的发展。先是由晶体管代替了笨重的真空管,后来出现了集成电路和大规模集成电路,使电子子计算机一代一代实现更新,同时软件技术也发展迅速。在美国,集中了许多计算机软件的设计人才,他们工作之余,时常喜爱编一种能与人斗智的“游戏”,以此来锻炼编程的能力。这种“游戏”花样繁多,但其特点都是利用计算机软件事先设计好的“分析”、“判断”能力反过来与人较量。由于不断修改更新,使计算机的“智力”水平与人难分高低。到了90年代,游戏软件已经为世界各国的人使用,BLACKISLAND和Blizzard.这两个强大的游戏制作组起到了巨大的带动作用,还有中国的洛河工作室在国内也起到了巨大作用,他们让很多很多人喜欢上了游戏软件,打开了这个市场。
如今游戏软件产业已经受到了广泛的关注,而且游戏软件有潜力而且吸引人,让人们日益丰富的生活需求得以满足。
五子棋游戏更是吸引着不同年龄段的人群,无论男女老少都可以玩,都喜欢玩,而当前微型计算机已经是在广大人群中流行着,用电脑来下五子棋更是一种时尚。
五子棋相传起源于四千多年前的尧帝时期,比围棋的历史还要悠久,可能早在“尧造围棋”之前,民间就已有五子棋游戏。
有关早期五子棋的文史资料与围棋有相似之处,因为古代五子棋的棋具与围棋是完全相同的。
在上古的神话传说中有“女娲造人,伏羲做棋”一说,《增山海经》中记载:
“休舆之山有石焉,名曰帝台之棋,五色而文状鹑卵。
”李善注引三国魏邯郸淳《艺经》中曰:
“棋局,纵横各十七道,合二百八十九道,白黑棋子,各一百五十枚”。
可见,五子棋颇有渊源。
亦有传说,五子棋最初流行于少数民族地区,以后渐渐演变成围棋并在炎黄子孙后代中遍及开来,可以说五子棋是我们的国粹之一了。
而当前五子棋程序的发展也非常快,从最初的双人发展到人机,然后到现在的网络对战,已经受到越来越多人的喜爱和重视。
1.2课题意义
人类之所以不断在进步,是因为我们人类一直不断的在思考,五子棋游戏程序的开发符合人类进步也是促进人类进步的一大动力之一。
五子棋游戏程序让人们方便快捷的可以下五子棋,让人们在何时都能通过下棋来提高逻辑思维能力,同时也培养儿童的兴趣以及爱好,让孩子更加聪明。
同时,五子棋游戏程序的开发也使得五子棋这个游戏得到了广泛的推广,让世界各地的人们知道五子棋,玩上五子棋,这已经不是局限。
五子棋游戏程序使得越来越多的人喜欢上了五子棋,热爱下五子棋,它是具有很好的带动性的。
随着互联网络的不断普及,越来越多的人可以在网络上就能够与他人下五子棋了。
1.3五子棋游戏的发展与现状
目前,连珠这一棋类运动已迅速在国际上发展起来。
外国人都十分看好这一不起眼的智力游戏,并认为五子棋不仅能提高思维、开发智力、手脑并用、修身养性而且富含哲理,具有东方的神秘和西方的直观,是中西文化的交汇点。
许多国家的人对五子棋都有不同的爱称,例如韩国人把五子棋称之为“情侣棋”,言下之意是情人之间下五子棋有利于增加情感的交流;欧洲人称之为“中老年棋”,表示五子棋适合中老年人的生理特点和思维方式;美洲人喜欢将五子棋称之为“商业棋”,就是说商人谈生意时可边下棋边谈生意,棋下完了生意也谈成了。
由此可见,尽管国度不同,语言各异,但人们都可以借助五子棋这一简单而又深奥的棋艺进行交流、比赛,增进友谊。
1988年8月8日,国际连珠联盟(RIF)由日本、俄罗斯、瑞典、亚美尼亚、阿塞拜疆、爱沙尼亚、拉脱维亚、白俄罗斯等8个成员国在瑞典宣告创立,中国于1996年正式加入国际连珠联盟,现在全世界已有近50个国家和地区成为国际连珠联盟的正式会员。
职业连珠的世界锦标赛从1989年起每两年举办一次,现已举办了十一届。
日本目前拥有自己的五子棋职业棋手,并且对五子棋技术的研究也相当普遍和全面,就水平也正在日益增强。
同时,五子棋的理论研究与探索也呈现蓬勃发展的势头,从1858年第一部五子棋专著问世以来,目前,全世界有2000多种五子棋的书籍及期刊,分别以日文、俄文、英文、瑞典文及中文出版发行。
五子棋在我国的北京、上海、天津、云南、浙江、广东、四川、湖北、辽宁、新疆、河北等省(区)市都有很大的发展。
北京多次举办了北京地区的五子棋赛,如“思曼杯”、“京空杯”、“奇奇童杯”、“北京第六届民族团结杯”和“北京第四岂民族运动会”的五子棋比赛。
上海地区举办了“上文杯”五子棋大赛。
云南省以及其他省市亦举办过许多五子棋比赛。
所有这些赛事都越来越多地吸引了无数人们的关注,表明了根植于中国的五子棋有着广泛的群众基础,是群众喜欢的体育活动。
而现在,很多很多游戏平台上面都有五子棋游戏供我们玩,任何游戏平台上面只要有棋牌类游戏的,那么它就有五子棋在里面,网络五子棋比赛,在联众,263,QQ游戏,UC里都有,五子棋游戏在网络上面是非常火爆的,而且在棋牌游戏里面玩家人数排名总会占到很前面,不愧是风靡全球的棋牌游戏啊!
在未来中,将会有越来越多的人关注五子棋,喜欢五子棋,那么将其变为商业化也会越来越多,而且还可以以教育孩子的方式来将其嵌套进去,或者用来做测试等等,可以说以后的五子棋游戏会是那么的精彩,那么的让人憧憬。
那么对于它的游戏开发和发展也将会上升到举足轻重的地位去,它的发展会是相当之快的,就让我们拭目以待吧。
1.4论文的组织结构
第二章系统使用工具介绍
本章节主要介绍了本系统使用的编程工具Eclipse,同时简单的介绍了Java这一编程语言,以及Java语言相比其它编程语言所具有的优势。
2.1编程语言
2.1.1Java语言介绍
现代技术的发展,尤其是网络技术,给现代企业带来了许多新的机遇和挑战,如改善客户服务、全球化和信息检索等,这些在技术上反映为信息的获取、系统管理、系统集成、新技术的开发、Internet、Intranet等等与商业的结合。
而这些要求一个随处可用的开放的结构和在不同的平台之间低成本的信息传递方式,Java正好满足这些要求。
Java是由SunMicrosystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。
用Java实现的HotJava浏览器(支持Javaapplet)显示了Java的魅力:
跨平台、动感的Web、Internet计算。
从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Javaapplet。
另一方面,Java技术也不断更新。
Java平台由Java虚拟机(JavaVirtualMachine)和Java应用编程接口(ApplicationProgrammingInterface、简称API)构成。
Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。
在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。
现在Java平台已经嵌入了几乎所有的操作系统。
这样Java程序可以只编译一次,就可以在各种系统中运行。
Java应用编程接口已经从1.1.x版发展到1.2版。
目前常用的Java平台基于Java1.2。
Java语言是一个支持网络计算的面向对象程序设计语言。
Java语言吸收了Smalltalk语言和C++语言的优点,并增加了其它特性,如支持并发程序设计、网络通信、和多媒体数据控制等。
2.1.2Java语言的优点
Java技术取得今天这样的成就,依赖于这门技术的先进性,Java技术具有下列优点:
简单、健壮:
许多高级语言都要由程序员进行指针运算和存储器管理。
这项工作即复杂又容易出错。
Java不需要程序员进行指针运算和存储器管理,简化了设计,减少了出错的可能性。
面向对象:
Java是面向对象的程序设计语言。
与面向过程的语言相比,面向对象的语言更能反映人类对世界的认识和处理模式,具有良好的代码重用性。
处理复杂、庞大而且不断变化的信息系统,必须使用面向对象的程序设计语言。
分布式:
目前,在所有软件产品中,仅供单个计算机使用的单机版软件所占的比例越来越小。
大多数软件都可以运行在网络环境中。
Java拥有一个网络协议对象库(TCPIP,HTTP,FTP等),可以象访问当地文件一样访问Internet上的对象。
改进的解释性:
为弥补解释语言速度较慢的不足,Java采用预编译的办法,将原程序生成字节代码,减轻运行时的解释工作。
另一方面,有些Java运行环境采用Just-In-Time(JIT)编译器将字节代码编译成机器码直接运行,这种运行环境对于重复执行的服务器端软件特别有效,可以达到C语言的速度。
安全:
Java语言在编译时删除了指针和内存分配,在运行时检查字节代码,拒绝执行非法的内存访问,超越权限的访问等。
可以防御黑客攻击。
平台无关:
Java通过采用虚拟机技术真正实现了与平台无关。
Java软件是真正跨平台可移植的。
多线程:
允许一个应用程序同时做多个任务。
动态性:
Java允许下载代码模块,因此,当程序运行时也能动态升级。
高性能:
经过实际的综合评测得出结论,Java是高性能的。
Java安装配置:
各平台安装程序可以到SUN的网站上下载,在安装完成后应该进行配置,通常集成开发环境(IDE)自带JDK或进行了自动配置,如果我们通过控制台编译或运行Java程序则必须手动配置。
JDK:
是Java开发工具包(J2SESoftwareDevelopmentKit)的缩写,用Java语言编写applet小程序和应用程序的软件开发环境,Java开发者应该安装JDK,并且通常JDK中已包含一个JRE拷贝。
下面是JDK里一些文件的说明。
bin:
java常用开发工具目录,例如javac,java,jar等工具。
demo:
sun提供的一些用于java开发的示范例子,如有关applets,jfc,plugin等。
include:
Java提供用于cc++调用的.;
CLASSPATH=.;C:
\ProgramFiles\Java\jdk1.6.0_20\lib\tools.jar;C:
\ProgramFiles\Java\jdk1.6.0_20\jre\lib\rt.jar。
2.2Eclipse集成平台介绍
2.2.1Eclipse的概述
Eclipse是IBM花巨资开发的IDE集成开发环境(IntegratedDevelopmentEnvironment)。
其前身是IBM的VisualAgeforJava(VA4J)。
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境是可扩展的体系结构,可以集成不同软件开发供应商开发的产品,将他们开发的工具和组件加入到Eclipse平台中。
另外Eclipse还附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)。
2.2.2Eclipse的安装、设置与启动
Eclipse的安装非常简单,仅需对下载后的压缩文件进行解压缩即可完成操作。
1.安装Eclipse开发工具
(1)可以到官网网站中下载3.2.1版Eclipse开发工具。
(2)对下载名称为eclipse-SDK-3.2.1-win32.zip的Eclipse软件进行解压缩。
(3)为了便于管理,将解压缩后的eclipse文件夹剪切到D\ProgramFiles文件夹中。
此时如果运行D\ProgramFiles\eclipse\里的eclipse.exe可执行文件,便可启动英文版的Eclipse开发工具。
2.Eclipse的国际化
完成Eclipse的安装后,从初学者的角度考虑,如果开发工具是中文版的,则更适合我们的语言习惯,在学习和使用的过程中回轻松很多,另外一点就是可以方便地查阅中文教程和帮助信息。
为此可以到Eclipse网站上下载多国语言包,从而实现Eclipse操作界面的国际化,进而用更适合我们学习的中文语言来显示Eclipse程序界面。
因为我们用中文的,所以下面就介绍一下使Eclipse操作界面汉化的具体步骤如下。
(1)到Eclipse官方网站下载与Eclipse相匹配的中文语言包。
与上文所安装的eclipse-SDK-3.2.1版本相匹配的语言包BabelLanguagePack-eclipse-zh_3.4.0.v01.zip。
(2)对下载名称为BabelLanguagePack-eclipse-zh_3.4.0.zip软件进行解压。
(3)解压缩后包含一个eclipse文件夹,该文件夹中包含有features和plugins两个文件夹。
(4)将features和plugins两个文件夹复制到所安装的eclipse根目录中,即D\ProgramFiles\eclipse文件夹中,替换其中对应的文件夹。
(5)这样即可实现Eclipse的中文语言操作界面。
3.启动Eclipse
完成了Eclipse多国语言包的配置,接下来可以启动Eclipse。
Eclipse的启动很简单,直接在Eclipse的安装文件夹中运行eclipse.exe文件即可。
具体步骤如下。
(1)运行D\ProgramFiles\eclipse\eclipse.exe文件。
(2)Eclipse启动后,在弹出的【工作空间启动程序】对话框的【工作空间】文本框中输入“D:
\testdemo”,然后单击【确定】按钮。
(3)单击【确定】按钮,系统将出现Eclipse的欢迎界面,其中包含【概述】、【新增内容】、【样本】、【教程】以及工作台相关按钮和菜单栏等。
第三章五子棋程序的介绍与规划
3.1软件的基本功能
该五子棋游戏的棋盘是一个十九行十九列的五子棋棋盘,纵横线路为浅色,构成361个交叉点。
棋盘的正中为“天元”,周围对称的4点为“星位”。
黑子181枚,白子180枚,共361枚棋子。
五子棋采用简易的规则,在对局开始时,先由执黑棋的一方将一枚棋子落在天元点上,然后由执白棋一方在黑棋的周围交叉点上下子。
在棋盘上面在对应位置通过点击鼠标左键下子,棋盘上将在相应的位置上显示棋子,并且棋子在横纵交点上。
可以自动判断游戏是否结束,是否黑方或者是白方已经胜利,并且在文本框里显示信息来提示玩家。
在游戏棋盘上方会有一个游戏信息,这个游戏信息是用来提示当前是黑白双方的哪一方下子,玩家可以根据这个提示来相应的下棋,而不会导致不清楚轮到哪一方下棋。
当然连接服务器的客户可以在任何时候进行聊天,可以和所有人一起聊,也可以和某个单独的人聊天。
在客户可以创建游戏,加入游戏,放弃游戏,关闭游戏界面,以及聊天功能。
3.2开发运行环境
1.中心处理器:
双核1.6GHZ;
2.内存:
2G;
3.硬盘:
250G;
4.操作系统:
WIN7;
5.开发工具:
Eclipse;
6.编程语言:
JAVA。
3.3软件的实现目的
五子棋游戏程序所要实现的目的是让我们可以在电脑上下棋,而不需要去买,可以随时玩,方便快捷。
而且能更好的推广五子棋于世界各地,此软件也在于提供给爱好五子棋的人,也吸引更多的人喜欢上五子棋,也具有很大很大的商业价值。
使五子棋游戏程序在以后的制作中功能越来越强大,外观越来越好看。
当然我现在做的是双人网络五子棋,为以后实现人机对战打基础,现在随着智能手机的普及,我们可以将这些游戏装入手机,这样就能随时随地的玩五子棋了。
第四章系统功能分析与算法分析
4.1系统功能
网络对战主要是基于TCPIP的网络协议,采用服务器-客户端的网络架构模式,允许网络上的多台机器(可能是两台机器)同时运行,一台用作服务器,始终处理网络上要求它进行服务的请求。
如果有机器请求与它进行连接,用作服务器的机器接受之后就可以进行相互之间的通信。
使用Socket进行编程,通过事件监听器,落子的坐标值,通过流操作,将棋子的坐标发送过去,然后进行双方棋盘的更新。
然后,再根据赢的条件判定双方的胜负。
4.2算法分析
在程序中数据传输主要采用Socket套接字进行数据传输。
在程序中用到的算法主要是对五子棋的判断输赢:
在横、竖、左斜、右斜任何一个方向一方连子不小于5个即可获胜。
判断的方法很直接,先判断棋子的颜色,再逐个方向去判断,在每个方向进行判定时又分为正方向和负方向,对每一个方向的判断都很类似,下面我以图形结合文字描述一个方向(竖直方向)的:
(1)首先如图1,加入我们刚点击鼠标下的是黑子。
图1
第五章系统设计
本章主要介绍了本系统各功能模块的设计思路,详细的分析了本系统的功能。
5.1详细功能分析
系统的程序流程图:
基于客户机服务器的Socket通信模型如下图所示:
详细功能:
1.用户可以创建游戏,加入游戏,放弃游戏。
2.聊天功能
聊天功能是建立一个聊天的界面,添加到游戏界面中,在网络对弈时,通过Socket进行连接,先从界面上读取用户所写的话,在通过流操作,将话发送给对方,然后对方通过Socket接收到,然后读出话来,同时更新聊天的面板,反之,也是一样进行。
3.网络对战
需要编写一个生成网络对战的棋盘类。
其次还需要一个网络对弈的线程类。
网络对战主要是同过Socket进行连接。
编写一个具有Socket的客户端类,在该类中进行相关的流操作。
网络对战开始时,调用线程类,线程类再调用客户端类,然后就可以连接起来了。
在连接时,注意判断哪个玩家创建了游戏,哪个玩家加入游戏。
5.2设计思路
网络对战设计,网络对战是使用socket进行编程的,通过socket,可以将俩台不同的计算机连接起来。
当双方进行对弈时,需要同时更新双方的棋盘。
可以通过流操作,将棋子的坐标发送给对方,然后通过线程操作,更新双方的棋盘。
设计思路:
第一步,客户端连接服务器。
第二步,其中有客户端创建游戏。
第三步,另外等待的客户端可以连接游戏,如果连接成功则开始游戏,由创建游戏的一方写下黑子,如果连接不成功可以试着连接其他客户端。
第四步,正在游戏的双方我下一颗棋进行一次判断,如果某个客户端获胜则开始下一局,如果不想继续游戏可以点击放弃游戏或者直接关闭游戏见面。
第五步,连接到服务器的客户端可以相互聊天,可以同时和所有人聊天也可以和某个客户端聊天。
第六章系统的具体实现
本章主要介绍了本系统的各个功能的实现以及部分核心代码。
6.1主界面
服务器端的主界面
客户端的主界面
主界面主要是集合了五个面板,分别是:
控制面板(controlPad.java)、游戏面板(chessThread.java)、输入面板(inputPad.java)、用户面板(userPad.java)、聊天显示面板(chatPad.java)。
主界面实现如图所示:
第七章五子棋的功能演示
下棋功能:
首先我们运行客户端以后,我们可以连接主机、放弃游戏,但是不能创建游戏、加入游戏、放弃游戏。
当我们在服务器IP后的文本框输入服务器的IP时候点击连接主机,这时运行的结果如下图1
聊天功能:
结论
本系统主要研究了单机游戏,网络对战,人机对战三个方面,单机游戏主要是靠线程的操作,网络对战需要对Socket编程要很好的理解,线程也是比不可少的,人机对战需要编写人工智能算法,同时。
也需要对Swing要有很深的理解。
在实现本系统过程中,碰到以下问题:
一Swing界面的排版问题,二Socket编程时的流操作,三人工智能算法的编写。
为了解决以上的问题,人工智能算法方面,我主要参考网络方面的一些内容,Swing界面的排版以及流操作主要通过学习《Java编程思想》以及上网求帮助进行了解决。
通过对五子棋游戏的编写,使自己对java语言有了更深的了解。
一个主类通过接口调用其他类,从而来完成一个完整程序的编写外。
更加熟悉在MyEclipse集成环境下对Java程序的编写。
同时,程序在编写完毕之后还有很多地方需要完善。
例如:
可以添加菜单来控制各项功能;也可以添加音乐;也可以把游戏改成交互式游戏,用户可以自己自主的暂停,可以悔棋。
可以进行视频对战,同时对战时,还可以进行语音聊天,支持一些下载功能等等。
致谢
本文是在老师精心指导和大力支持下完成的。
老师以其严谨求实的治学态度、崇高的敬业精神、兢兢业业、孜孜以求的工作作风对我产生重要影响。
他渊博的知识、开阔的视野和敏锐的思维给了我深深的启迪。
同时,在此次毕业设计过程中我也学到了许多了关于计算机方面的知识,编程能力有了很大的提高。
另外,还要感谢同学对我的无私帮助,使我得以顺利完成论文。
最后,再次对关心、帮助我的老师和同学表示衷心地感谢。
参考文献
[1](英)QuentinCharatan,AaronKansJava大学教程清华大学出版社,2008年09月第1版
[2]聂哲主编.Java面向对象程序设计.北京:
高等教育出版社,2008年11月第2版
[3]荣钦科技编著.Java2游戏设计.北京:
清华大学出版社,2004年11月第一版
[4]张海藩编著软件工程导论北京:
清华大学出版社,2008年2月第5版
[5](美)BruceEckel著陈昊鹏译Java编程思想,机械工业出版社,2007年第四版
[6]朱福喜黄昊编著Java项目开发与毕业设计指导,清华大学出版社,2008年6月第一版
[7]印昊JAVA与面向对象程序设计高等教育出版社,2004年4月
[8]李尊朝JAVA语言程序设计中国铁道出版社;2004年9月
[9]袁海燕.JAVA应用程序设计100例人民邮电出版社,2005年5月.
[10]薛为民.JAVA应用教程清华、北交大出版社,2005年9月
[11]耿祥义Java课程设计清华大学出版社,2004年2月
[12]JAVA从入门到精通人民邮电出版社,2010年4月