网络五子棋设计.docx
- 文档编号:29535790
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:25
- 大小:340.07KB
网络五子棋设计.docx
《网络五子棋设计.docx》由会员分享,可在线阅读,更多相关《网络五子棋设计.docx(25页珍藏版)》请在冰豆网上搜索。
网络五子棋设计
河北农业大学
本科毕业论文(设计)
题目:
网络五子棋
摘要
1997年,伴随计算机技术和网络的发展,第一款图形网络游戏《网络创世界》问世,应用计算机与网络的高尖端技术,融合传统的试听与数字娱乐精华,集娱乐,竞技,互动于一体,迅速风靡全球。
自此拉开网络游戏的序幕。
目前,PK已经成为现在人生活的一部分,人们以不同的方式通过网络来娱乐,休闲。
五子棋是一种两人对已的纯策略型的棋类游戏,似起源于中国古代的传统的黑白棋种之一,发展与日本,流行于欧美。
通过一系列的变化,使五子棋这一简单的游戏系统化,规范化,最终成为今天的职业连珠五子棋,同事也成为一种国际比赛棋,它不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性,容易学会,趣味横生,引人入胜。
本程序是eclipse平台下的一个小程序,使用JAVA语言,通过对Socket技术的理解,实现客户端与服务器之间的链接,利用多线程技术来处理服务器与客户端的数据传输,通信,实现程序的聊天内容,是的客户端和服务器之间能够同步的进行处理。
通过对本游戏的开发,更深入的理解了面向对象的概念以及面向对象预言的一些问题的优势,也对线程的理解更加理解。
关键字:
JAVA线程数据传输五子棋eclipse网络socket
Abstract
In1997,alongwiththedevelopmentofcomputertechnologyandnetwork,thefirstgraphicsnetworkgame"networkworld",theapplicationofcomputerandnetworkofsophisticatedtechnology,thefusionoftraditionalaudio-visualanddigitalentertainmentessence,entertainment,athletics,interactiveasawhole,quicklycatchonaroundtheworld.Sincethenkicknetworkgame.
Currently,PKhasbecomenowapartoflife,peopleindifferentwaysthroughthenetworktoentertainmentandleisure.Gobangisonekindoftwopeopletohavepurestrategytypechessgame,originatedinancientChinesetraditionalblackwhitekindoflike,oneofthedevelopmentinJapan,popularinEuropeandtheUnitedStates.Throughaseriesofchanges,thesimplegamegobangsystematization,standardizationandeventuallybecometoday'sprofessionalrenjurenjucolleaguesalsobecomeaninternationalchessgame,itcannotonlyenhancethinkingability,improveintelligence,andhighinphilosophy,helpstocultivateone'smoralityraisesagender,easytolearn,interesting,fascinating.Thisprogramisasmallprogram,theeclipseplatformusingtheJAVAlanguage,throughtheunderstandingoftheSockettechnology,realizethelinkbetweentheclientandtheserver,usingmultithreadingtechnologytodealwiththeserverandtheclient'sdatatransmission,communication,implementationproceduresofchatcontent,yestosynchronizationbetweentheclientandtheserverforprocessing.
Throughthedevelopmentofthisgame,morein-depthunderstandingoftheconceptofobjectorientedandobjectorientedpredictedthatsomeoftheproblemsofadvantage,alsounderstandmoreunderstandingofthethread.
Keywords:
JAVAthreadgobangtheeclipsedatatransmissionnetwork
摘要·································1
Abstract·······························2
1.概述
1.1:
五子棋的发展························4
1.1.1五子棋的研究背景······················4
1.1.2五子棋的研究意义······················5
1.2:
传统五子棋和网络五子棋···················5
1.3五子棋的称谓·························5
2开发环境与编程语言
2.1开发与运行环境························6
2.1.1开发环境·························6
2.1.2运行环境·························6
2.2编程语言····························6
3.网络五子棋的需求分析与总体设计
3.1需求分析···························8
3.1.1功能需求··························8
3.1.2用户界面需求························8
3.2总体设计···························8
4.构架
4.1客户端的实现·························10
4.2客户端的功能···························14
4.3服务器端的实现·························16
4.4服务器端的功能·························18
4.5客户端与服务器端的链接·····················19
5.结论与体会
5.1:
经验总结··························21
5.2发开的心得体会························21
参考文献······························22
1.概述
1.1五子棋的发展
五子棋相传起源于四千多年前的尧帝时期,比围棋的历史还要悠久,可是早在“尧造围棋”之前,民间就已有五子棋游戏。
在上古的神话传说中有“女娲造人,伏羲做棋”一说,《增山海经》中记载:
“休舆之山有石焉,名曰帝台之棋,五色而文状鹌卵。
”远古以来就以漂亮的石子为棋,因而规则剪发的五子棋也可能出自当时,并是用石子作为棋子。
亦有传说,五子棋最初流行于少数民族地区,以后渐渐演变成围棋并在炎黄子孙后代中演变开来。
五子棋不仅增强思维能力,体改智力,而且富含哲理,有助于修身养性。
五子棋既有现代休闲的明显特征“短,平,快”,又有古典哲学的高深学问“阴阳易礼”;既有简单易学的特征,又为广大人民群众所喜闻乐见,又有深奥的技巧和高中水平的国际性比赛;棋文化源远流长,具有东方的神秘河西方的直观;既有“场”的概念,亦有“点”的链接。
他是中西方的交流电,是古今哲学的结晶。
随着1996年中央电视台(CCTV-5)《黑白世界-五子棋讲座》的开播和中国五子棋网上比赛的开通,将世界连珠五子棋运动的最新状况及时展现在眼前,为五子棋爱好者提供了尽情参与的机会,这无疑对国内的普及、发展起到了推动的作用。
北京连珠五子棋体育文_化交流中心已拥有了22位国际段位棋手,他们肩负着新的历史使命,不断为中国五子棋爱好者提供立足国内、面向世界、一展才华的机会。
我国于1998年8月成功地举办了第二届世界杯青少年锦标赛,1999年7月将在北京举办第六届世界杯冠军赛,2000年举办第三届世界杯团体赛。
在北京的带动下,全国其他地区也先后成立了五子棋组织。
河北廊坊地区成立了廊坊五子棋协会;天津市成立了由天津市体委领导的天津市五子棋工作委员会;上海、云南、杭州等地也都成立了五子棋的组织。
五子棋的发展在中国出现方兴未艾之势。
1.1.1五子棋的研究背景
随着近几年的软件技术的不断进步,不断完善,软件游戏的操作要求越来越简单,大多数游戏普通人学几分钟就能玩,甚至连来年人也慢慢爱上了它。
第二次世界大战以后,电子计算机技术得到突飞猛进的发展,在众多国家中美国的计算机技术发展最为迅速。
1946年世界第一台数字计算机在美国宾夕法尼亚大学建造完成。
电子计算机的问世,代表了电子数字计算机的到来,具有挂时代的意义。
在1956年我国研制成功国产计算机。
1958年和1959年我国先后研制成功国产小型和大型电子计算机。
后来出现了继承电路和大规模集成电路,是电子计算机一代一代实现更新,性能越来越高,计算速度越来越快,硬件方面的不断发展促使了阮籍技术也迅速发展。
目前,网络上我们经长看到的大型3D网络游和WEBGAME网页游戏等都是通过3DMAX,MAYA,FLASH等编程语言像结合而发展出来的,所以叫游戏软件。
1.1.2五子棋的研究意义
近年,国产网络游戏发展迅速,出现了比较热门的角色扮演类游戏、即时战略类游戏、动作射击类游戏等等。
但是,国产网络游戏在继续迅猛发展的时候,也暴露出一些弊端,主要表现在网络游戏产品的内容和模式等方面,如网游服务器负载太重、资源消耗太大、游戏内容简单、模式单调乏味、网络对战还不能实现等等。
因为没能提供用户真正期望的开发环境。
此外,随着用户量增加,服务器负载较大,造成了系统效率下降和健壮性的削弱,代价高,效率低,这些都是系统在网络游戏发展上的瓶颈。
此次开发网络五子棋,使网游服务器负载减轻,资源消耗大大减少,实现了网络中俩人的对战。
1.2传统五子棋和网络五子棋
传统五子棋仅提供了“单人模式”和“双人模式”。
其中“单人模式”是指,人与计算机进行对弈,计算机按照事先编号的算法程序进行下棋;而“双人模式”是指,两个人通过交替使用同一台计算机来进行下棋。
无论哪种模式,都必须在同一台计算机上来完成,无法异地下棋,因此叫单机五子棋。
随着网络的迅猛发展,异地计算机开始通信,异地的用户通过网络来进行下棋,在胜负判别方面,单机版五子棋和网络版五子棋并没有什么区别,只是网络版的玩家双方各自有一套胜负判别的程序。
当一方玩家下一步棋后,他的胜负判别程序就执行一次,然后再将落子的信息传给对方,对方的胜负判别程序也将执行一次。
就这样就完成一次胜负的判别过程。
1.3五子棋的称谓
五子棋,日文亦有“连五子、五子连、串珠、五目、五目碰、五格、五石、五法、五联、京棋”等多种称谓,英文则称之为“FIR(FiveInARow的缩写)、Gomoku(日语“五目”的罗马拼音)、Gobang、connect5、mo-rphion”。
捷克语piskvorky,韩语omok……
许多国家的人对五子棋都有不同的爱称,例如,韩国人把五子棋称为“情侣棋”,暗示情人之间下五子棋有利于增加情感的交流;欧洲人称其为“绅士棋”,代表下五子棋的君子风度胜似绅士;日本人则称其为“中老年棋”,说明五子棋适合中老年人的生理特点和思维方式;美国人喜欢将五子棋称为“商业棋”,也就是说,商人谈生意时可边下棋边谈生意,棋下完了生意也谈成了。
2.开发环境与编程语言
2.1开发与运行环境
2.1.1开发环境
IntelPentium4|2.0GHz,512M内存,80G硬盘
MicrosoftWindows7Professional
Eclipse
2.1.2运行环境
本游戏属于一款休闲游戏,要求的运行环境为IntelPentium2及以上的处理器,32M以上的内存,20M以上的硬盘空间,MicrosoftWindows2000或XP及以上的系统。
800*6—或以上的分辨率。
2.2编程语言
1990年12月,SUNMicroSystem公司成立了一个名为(GreenTeam)绿色项目的小组,JameGosling(Java之父),BillJoe等人便是该小组的成员,小组成立的初衷是为了开发一种能够在电视,控制烤箱等家用消费类电子产品上进行交互式操作的分布式的系统框架,就这样一个名为Oak的软件诞生了。
1992年9月3日(GreenTeam)绿色项目小组展示了Start7手持设备,它类似于今天的PDA,这个设备中的程序就是用Oak程序设计语言实现的,Oak的名字由来是因为JamesGosing的办公窗外有一棵橡树,根据这橡树命名。
但是,在注册商标时却发现这个名字已经被别的公司占用了,后来更名为Java(据说是以当时开发小组岛上的一种咖啡命名)
1993年,全世界第一个Internet网页浏览器Mosaic诞生了,,JamesGosling认为Internet与Java特性不谋而合,便使用Java在Internet平台上编写出高交互性的网页程序,这就是JavaApplet。
可以实现一些类似时钟,统计图等网页特效,是在那个年代,其他程序设计语言所不能达到的。
1995年,Oak被命名为Java编程语言,并于5月23日正式对外发布了JDK1.0版本,Java语言也就因此正式诞生了。
1997年,三周内超过22万的开发者下载了JDK1.1软件,超过8,000名开发者参加了JavaOne大会,JavaCard2.0平台发布。
随后98年JDK1.1正式发布,其被下载次数超过200万,VISA公司应用JavaCard技术推出了世界上首张智能卡,Java社区(JCP)成立。
1999年,Java2平台源代码公开,JavaOne大会参会人数增长到20,000人,J2EEveta软件发布。
2002年J2EESDK下载次数达200万,78%的决策者认为,J2EE技术是具有影响力的网络构建开发平台。
2004年Java2Platform,StadardEdition5发布,利用Java技术开发的火星探测器成功登陆火星,SunJavaStudioCreator发布
2005年,JavaOne大会召开,SUN公司公开JavaSE6.此时,Java的各种版本已经更名,以取消其中的数字”2”:
J2EE更名为JavaEE,J2SE更名为JavaSE,J2ME更名为JavaME。
到目前为止,J2SE已经发展为一个覆盖面广、效率高、易用性强的技术平台,但Java并没有停止前进的脚步。
Mustang版本的J2SE正在紧锣密鼓的开发当中,按以前的惯例,每两年会发布一个全新的J2SE版本,所以Mustang开发版对应的J2SE6.0发布版将在2006年完成。
J2SE6.0SpecificationLead是Sun公司老资格的开发者MarkReinhold,我们在J2SE1.2中就能看到他的影子。
MarkReinhold曾经是NIO(新的I/O处理)API的SpecificationLead,现在是Sun的J2SE架构师与总工程师。
MarkReinhold透露说,J2SE6.0将更易于管理,可以给外部的管理软件提供更多信息。
它可以让调试软件在程序运行的时候进行检查,而不是在运行之前,这样更容易找到问题所在。
他说,J2SE6.0将会更好地和图形用户界面集成,包括微软即将发布的Windows版Longhorn2005年3月23日是Java技术十周年庆典日,在这十年的发展中,Java平台吸引了四百万开发者,在网络计算遍及全球的今天,更是有17.5亿台设备使用了Java技术。
作为Java技术的基础,J2SE的功绩不可掩没,我们期望J2SE伴随Java
平台一路走好。
3.网络五子棋的需求分析与总体设计
3.1需求分析
软件的需求分析是软件生存期中重要的一步,也是决定性的一步。
只有通过需求分析才能把软件功能和性能的总体概念描述为具体的软件需求规格说明,从而奠定软件开发的基础。
在此阶段,了解用户要求本软件必须满足的所有功能和限制,以及用户对软件功能和性能的要求,弄清用户想要软件“做什么”,准确地表达用户的要求。
3.1.1功能需求
●能通过网络下棋
●符合五子棋的基本规则
●提供水平坐标和垂直坐标的功能
●可提供聊天功能
3.1.2用户界面需求
●界面友好亲切
●界面干净整洁
●操作界面直观,不繁琐
3.2总体设计
在需求分析结束后,已经弄清楚了软件的各种需求,较好地解决了用户要软件“做什么”的问题,接下来就将着手实现软件的需求,即要着手解决“怎么做”的问题。
在这个阶段着重实现需求的程序模块设计问题,并将需求转化为软件的系统结构,进行模块的划分,确定每个模块的功能、接口及模块之间的调用关系。
根据需求分析制订出整个软件的系统结构图。
如图2.1所示:
对于服务器端,制定服务器端的地址和端口,然后在Socket上监听客户端的请求,此时如果有客户端已建立Socket树且发送了连接请求,此时客户端和服务器就创建了连接,如果服务器端有其他的连接就阻塞此次连接,客户端再次发出请求,如果此时阻塞已没有,客户端和服务器就建立连接,接受用户请求信息,处理请求信息,将结果反馈给客户端,客户端接受到了服务结果。
4.构架
选用了C/S模式进行实现,网络内部使用TCP/IP方式利用SOCKET通过传输层提供的服务,使用Java进行图形用户的搭建,系统分为两个部分为服务器端程序和客户端程序。
4.1客户端实现
图4.1客户端
客户端设有五个按钮
(1)链接主机
在开始游戏前必须链接服务器,IP为本地的端口号,链接主机后,会有第一个用户进入到游戏中。
如图4.2
(2)建立游戏
在链接完主机后,按下建立游戏按钮,第一个用户就建立了游戏。
如图4.3
图4.3建立游戏
(3)加入游戏
当第一个游戏者创建完游戏后,在进来的用户可以加入到与第一个创建游戏的用户游戏中,再加入游戏前,必须选定一个有效用户,然后两个人才能进行网络五子棋的对抗游戏,如图4.4
(4)放弃游戏
如果用户创建完游戏后不想进行游戏了,可以按下放弃游戏按钮,自动退出游戏,如图4.5
(5)关闭程序
在不想进行游戏时可以直接关闭程序,如图4.6
图4.6关闭程序
(6)聊天系统
两个游戏者可以进行聊天,方便用户的交流,本软件可以容纳50个人在线下棋聊天。
如图4.7
4.2客户端的功能
客户端是接受服务器端所有用户,用于用户玩游戏的界面操作。
分析如下:
chessClient有一个ServerSocket来开启网络服务,接受Socket,有了该类就可以进行网络对弈,对弈时,客户端下棋之后,在服务器端应该马上显示客户端下棋的位置,以保持游戏的同步,再有赢棋的时候双方都有提示性话语,赢棋的一方提示自己赢棋,并提示是否继续玩。
publicbooleanconnectServer(StringserverIP,intserverPort)throwsException//链接
{
try
{
chatSocket=newSocket(serverIP,serverPort);
in=newDataInputStream(chatSocket.getInputStream());
out=newDataOutputStream(chatSocket.getOutputStream());
clientThreadclientthread=newclientThread(this);
clientthread.start();
isOnChat=true;
returntrue;
}
catch(IOExceptionex)
{
chatpad.chatLineArea.setText("chessClient:
connectServer:
无法连接,建议重新启动程序\n");
}
returnfalse;
}
chessClient中有keyPressed用于校对关键字,如果在聊天时必须将下拉菜单中选中所有人,然后才可以进行聊天。
代码如下:
publicvoidkeyPressed(KeyEvente)
{
TextFieldinputWords=(TextField)e.getSource();
if(e.getKeyCode()==KeyEvent.VK_ENTER)
{
if(inputpad.userChoice.getSelectedItem().equals("所有人"))
{
try
{
out.writeUTF(inputWords.getText());
inputWords.setText("");
}
catch(Exceptionea)
{
chatpad.chatLineArea.setText("chessClient:
KeyPressed无法连接,建议重新连接\n");
userpad.userList.removeAll();
inputpad.userChoice.removeAll();
inputWords.setText("");
controlpad.connectButton.setEnabled(true);
}
}
else
{
try
{
out.writeUTF("/"+inputpad.userChoice.getSelectedItem()+""+inputWords.getText());
inputWords.setText("");
}
catch(Exceptionea)
{
chatpad.chatLineArea.setText("chessClient:
KeyPressed无法连接,建议重新连接\n");
userpad.userList.removeAll();
inputpad.userChoice.removeAll();
inputWords.setText("");
controlpad.connectB
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 五子棋 设计