




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目 录1 设计任务及目标 11.1 开发背景以及设计目标 1设计任务 12 需求分析 2系统需求 2用户需求 222服务端需求客户端需求3技术上可行性分析2.3.系统运行环境 43 总体设计 4系统结构设计 4服务器设计 5客户端设计 6棋类设计 74 详细设计 84.1 服务器 8服务器主类的设计开发8服务器线程的设计开发124.2 客户端 22棋盘以及规那么 265 软件实现以及使用说明 46服务器运行使用及测试 4652 客户端运行使用及测试 486 总结 51任务完成情况 51特色与不足 51特色 51不足 52所遇到的问题 52体会 527 参考文献 531 设计任务及目标开发背景以
2、及设计目标五子棋有着悠久的历史,五子棋爱好者更是不计其数,但是由于人们工作地点,时间的限制,生活节奏的加快,人们之间的交流越来越少,面对面下五子棋的机会更是少了很多,那种面对面的下棋的方式已经不再适应人们的生活,但网络给了人们一个交流的平台,因此人们开始转向网络五子棋。网络五子棋有很多优点,通过网络五子棋,对弈双方可以是网络上任意两个五子棋的爱好者,甚至从不认识。网络五子棋让对弈的范围更加的广泛,让玩家可以与更多的五子棋爱好者切磋棋艺。所以我此次网络课程设计综合运用计算机网络、JAVA 语言程序设计、网络编程等课程知识;从需求分析入手,系统地掌握计算机网络编程初级技术,独立、合理地完成网络五子
3、棋对弈程序设计任务。设计目标主要包括:(1)实现需求分析阶段所要求的服务器端以及客户端的功能。(2)游戏界面朴素美观。(3)棋子样式采用传统样式,黑色和白色。(4)客户端的信息交流完全通过服务器传递完成。完成一个网络五子棋对弈程序设计工作。根据自身多年来进行网络对弈的经验,以及了解,对网络五子棋对弈的设计进行需求分析。根根设计目标以及需求分析对五子棋游戏界面总体规划和设计,游戏界面设计好以后进行服务器端和客户端的规划设计,最后进行棋盘以及棋子的设计。设计阶段要进行服务器端框架设计与业务代码开发,客户端框架设计与业务代码的开发,棋子以及棋盘类的设计开发,规那么类的设计开发等。2 需求分析(1)
4、满足客户端连接到服务器的基本要求。(2) 服务器满足记录客户端游戏动作的基本要求。(3) 满足服务器实时获得客户端游戏状态的基本要求。2.2 用户需求2.2.1 服务端需求(1)可以有一个显示服务器状态的界面,用于记录各个客户端的连接状态。服务器是用于连接各个客户端的通信,如果独立地创建一个直观的服务器,将有力地显示客户端的每个状态,直观地向用户反应各类信息。(2)可以支持多人同时在线。一个服务器能够你能够接受来自其他多个客户端的请求,提供相应的响应服务,是网络对弈的基本要求。(3)可以显示在线用户的信息。显示在线用户的信息,比如主机名,IP (4)不允许玩家同名。不允许客户端同名即是不允许客
5、户端的端口号相同,如果相同,将会造成游戏登陆用户的管理混乱。(5)服务器界面节约大方。服务器是用于监控客户端的连接情况,没用必要做得繁杂,用户只需要直观的状态显示,所以我们的服务器不需要设计太多按钮,只需要有显示服务器状态,关闭服务器,清空列表的按钮,方便用户操作。2.2.2 客户端需求(1) 能够通过主机 IP 及端口号登陆到服务器。(2) 可以显示当前所有用户。游戏客户端应设计一个可以显示当前所有在线用户的列表,有助于用户随意选择玩家挑战。(3) 可以从在线用户列表中选择玩家进行挑战。(4) 可以创建以及接受挑战。(5) 如果对方正在与其他玩家对弈,那么应给出相应提示。(6) 五子棋规那么
6、一定要严密。其中五子棋游戏的规那么如下: 棋盘,棋子:a) 棋盘为十五路,正中一点为天元,周围四点为小星。b) 棋子分黑白两色,黑子 113枚,白子 112枚,共 225 枚。 比赛规那么:a) 点上落子,白第二着棋应布在自己河界的一侧。此后,执黑方在以天元为中心的 25 个交叉点的范围内布盘面的第三着棋。b) 最先在横向,竖向,斜向形成连续的相同色五个棋子的一方为胜。c) 三三四四”,“长连。黑方只能“四三胜。所谓禁手,是指黑方一子落下同时形成两个或六个以上的连续棋子。d) 双方均不能形成五连为和棋。e) 对局中拔子,中途退场均判为负。f) 黑方胜。g) 黑方禁手形成时,白方应立即指出禁手点
7、,黑方即负。若白方继续应子,那么黑方禁手不成立。h) 三手可交换:黑下完第手,执白五手两打法:执黑下第五手时,必须下两手棋,执白者从这两手棋中任选一步。i) 本文所论述的联机五子棋系统就是依照这种方式进行的。2.2.3 技术上可行性分析对需求分析阶段的结果进行总结,对软件的可行性分析如下:(1) 网络对弈需要两个客户端进行通信,而利用服务器的线程开发,进行中间中介连接正好可以完成。(2) 五子棋的规那么虽然严密,但是通过各种情况分析,然后将每个情况分析设计出来。(3) 本系统的设计运行环境只用到 MyEclipse 的编程软件,无需借用到其它的软件,比较容易实现。系统运行环境:MyEclips
8、e3 总体设计3.1 系统结构设计该游戏主要分为服务器端与客户端两部分。断开的状态,接收客户端发送的信息以及向客户端发送信息。客户端的功能主要是连接服务器端,创建游戏用户,创建游戏,加入游戏,选择玩家挑战,向服务器发送信息,接收服务器端发送来的信息。其具体的功能模块如图所示:接收服务器传来的信息创建游戏向客户端发送信息向服务器发送信息3.2 服务器设计服务器的设计主要分为服务器主界面,服务器线程,服务器主机面板三个部分。比如清空列表,服务器状态,关闭服务器的设计,以及启动对客户端的监听,启动服务器线程。息,向客户端发送信息。小,背景颜色。其具体的功能模块如图所示:服务器端服务器主机面板清空,显
9、示,关闭向客户端发送信息启动服务器线程信息板的显示收客户端信息3.3 客户端设计客户端的设计主要分为客户端界面,客户端线程两部分。创建游戏,加入游戏,连接到服务器,放弃游戏,退出游戏的设计以及它们对应事件的处理。受服务器信息的设计以及它们对应的事件处理,比如收到服务器发送来的游戏胜利,信息错误,信息有效等的处理。其具体功能模块如图所示:向服务器发送信息接收服务器信息连接到服务器退出游戏3.4 棋类设计五子棋类的设计主要分为棋盘,棋子,五子棋动作线程,规那么四部分。棋盘的设计主要包括画棋子,捕获下棋事件,画网络棋盘。 棋 子的设计包括黑棋以及白旗的设计,其中有大小,颜色,所属棋盘的设计。五子棋动
10、作线程的设计包括处理捕获下棋信息,发送当前下棋信息,这一部分的设计是五子棋类设计的重点。规那么的设包括取得指定棋子的位置,判断当前棋子是否取得胜利,当前棋子各个方向的判断,当前所要下的棋子是否越界。发送当前下棋信越界判断4 详细设计4.1 服务器4.1.1 服务器主类的设计开发主界面。其中包括创建服务器端用到的控件以及声明用到的对象引用,完成对控件的初始化:设置窗体的标题,图标,大小以及可见性,将各个控件添加到各面板的相应位置FIRServer.java 类:/ 服务器界面类=utton(清空列表);=utton(服务器状态);=utton(关闭服务器);=/=/=/将游戏创建者和游戏加入 =
11、 = =serverMsgPanel.msgTextArea.setText(服务器启动于:+ = 已 连 接 用 户 + = 新玩家+ thread=new serverMsgPanel.msgTextArea.append(服务器信息:+ =4.1.2 服务器线程的设计开发服务器线程是服务器启动后创建并启动的第一个线程,该线程主要用于接收客户端的连接,并未每个连接分配一个服务器代理线程。服务器代理线程主要用于接收客户端传来的消息,并将该消息转发给另一个客户端。服务器为所有客户端都分配了一个该类线程实例,单独为特定客户端进行服务。同时每一个服务器代理线程都有能唯一标识的名称。类: Hash
12、Hash Hash= =取 + =1-= = + + + = = + =+ = =Feedback(无效命令); = + + = = = = = = =+ valuekey= + -更新用户列表);-私聊);Feedback(注意:命令必须对所有用户发送);serverMsgPanel.msgTextArea.append(用户断开连接:+/如果是游戏客户端主机 当 前 连 接 数 += 当 前 连 接 数 + =4.2 客户端客户端主类即客户端的运行类,用户通过运行该类连接服务器,也是通过在该类的窗体中与其他玩家对弈。FIRClientThread.java类:= = firClient.u
13、serInputPad.userChoice.addItem(所有用户); = 0 下 = 取 +用户名:+ Frame firClient.firPad.statusText.setText(不能加入游戏!); = = =firClient.firPad.statusText.setText(黑方下.); = 游戏加入,等待对 =firClient.firPad.statusText.setText(对手退出);= firClient.firPad.statusText.setText(游戏创建等待对手); 错误,退出程+= wait=棋盘以及规那么FIRPad.java类: = = = x
14、= y= = x= y= x= y= = = = = =TextField(请连接服务器!);= = =new =statusText.setText(连接失败! i=i= i=i= = = statusText.setText(黑方胜,黑:白+,游戏重启,等待白方.); statusText.setText(白方胜,黑:白+,游戏重启,等待黑方.); =*=* =*=* = = = = = 1/以下每对端= 4= +* 4=+ 数加1 +else/ =-*& 4+ for=*+* 4+=*-* 4+=-*+* 4+=+*-* 4+= = + * + * 4+=-*-* 4+ =+* 4+=-
15、* 4+= = * + * 4+= = * - * 4+= = - * + * 4+=+*-* 4+= + * + * 4+= = - * - * 4+ i=ii=i+j=jj=j+ =1 = + *-*- statusText.setText(黑(第+步)+,轮到白方.);= +*-*- = =+*-*-statusText.setText(白(第+步)+,轮到黑方.);=+*-*- = =*-*-statusText.setText(黑(第+步)+,轮到白方.);=+*-*-=*-*-statusText.setText(白(第+步)+,轮到黑方.);=+*-*-= =a=+/b=+/2/
16、 线用户列表的处理也都完成了,下面可以对服务器进行测试,启动服务器,然后从客户端登陆几个用户,查看服务器端的在线用户列表中是否有变化,如果有那么连段通信成功,测试后的服务器如图所示:启动服务器,服务器的界面运行如下:机号,端口号,IP 地址,如图所示:主机号,端口号,IP 地址,如图所示:客户端 1 创建游戏,等待对手,如图所示:客户端 2 选择玩家 1,并且选择加入游戏,当加入游戏成功那么系统提示加入成功,如图所示:当有一方五子连珠,即有一方胜利时,系统将会提示消息,如图所示:通信,并在服务器界面上清晰地显示每个客户端的连接和断开的状态。客户端也能完成与服务器的连接通信,创建游戏,加入游戏,
17、退出游戏,与挑战者的对战,胜利的判断。实现网络对弈,比较灵活,不会像人机交战那样死板。 界面简单大方,用户能简易的操作使用。 能够随意挑选对手进行对战,增加了用户的兴趣。 能够记录下黑白棋所下的步数,以及给予用户相应的提示。不足 如果操作不正确时将会导致软件异常,异常处理不完整。 聊天功能不够健全,不能进行私聊,这块功能有待于完整。 没有背景音乐,游戏比较死寂,没有生机。所遇到的问题总体来说,在参考书的帮助下,没有遇到什么解决不了的问题。但是在设计开发的时候还是遇到了一些小问题。1. 在设计开发服务器线程的时候,对 Hashtable 类的理解比较困难,一刚开始不知道这个类到底是有什么用,后来经过查API,查资料才知道它是实现哈希表,也就是用于绑定一个对象与另一个对象,在开发中就是用于客户端端口号与其输入输出流绑定。2. 到很多种情况,比如像越界处理,上下左右方向的判断处理。体会对于五子棋网络对弈的总体设计,一刚开始是没有什么思路,虽然以前有玩过五子棋,也知道五子棋必须要有两
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙江省杭州市临安区达标名校2025年初三第四次模考数学试题含解析
- 事业单位短期合同工协议书模板
- 山东省枣庄市滕州市滕州市第一中学2024-2025学年高三2月第一次调研生物试题理试题含解析
- 新津县2025年三年级数学第二学期期末复习检测模拟试题含解析
- 吉林省白城市洮南市2025年六年级下学期5月模拟预测数学试题含解析
- 统编版二年级语文下册第七单元测试卷(含答案)
- 辽宁省辽阳市2023-2024学年八年级上学期期末考试物理试题【含答案】
- 自然人股权转让合同指南
- 土建劳务分包合同
- 版展览场地租赁合同典范
- 圆周率的历史课件
- 使用有毒物品作业场所劳动保护条例0讲义课件
- 中国传统文化北京胡同介绍八大胡同教育PPT实施课件
- 甲午中日战争-完整版课件
- 2022年陕西金融资产管理股份有限公司招聘笔试题库及答案解析
- 武术的起源与发展概述(课件)
- 自愿放弃社保协议书模板
- (高职)经济数学电子课件完整版PPT全书电子教案
- 2022年保安考试题库有答案
- (完整版)老人健康智能手环可行性分析报告 (1)
- 低钠血症鉴别诊断-杜斌PPT课件
评论
0/150
提交评论