




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
综合课程设计成绩学号 姓名 总评成绩老师签名综合课程设计报告题 目 : 五子棋游戏系统的设计与实现 学院(系): 计算机科学与工程学院网络工程系 学 号: 学生姓名: 指导教师: 王勇、黄继平、卢玲2016年目录摘 要5Abstract61绪论71.1 课题背景和研究意义7 1.1.1 课题背景7 1.1.2 课题国内外研究现状7 1.1.3 课题研究内容和意义81.2 可行性分析9 1.2.1 技术可行性分析9 1.2.2 经济可行性分析9 1.2.3 操作可行性分析91.3 相关技术概述9 1.3.1 通信协议9 1.3.2 Socket技术102 系统需求分析122.1 系统概述122.2 功能总体描述122.3 业务功能分析122.4 非功能需求12 2.4.1 适应性12 2.4.2 可靠性13 2.4.3 可扩充性13 2.4.4 健壮性:13 2.4.5 易使用性:13 2.4.6 可维护性:13 2.4.7 可移植性:13 2.4.8 可重用性:132.5 接口说明143 系统概要设计153.1 总体设计15 3.1.1 总体设计原则15 3.1.2系统设计框架15 3.1.3主要功能及流程16 3.1.4系统主流程183.2 概要设计18 3.2.1 网络编程模式的选取183.3 主要类与其作用19 3.3.1 服务器类19 3.3.2 客户端类20 3.3.3 棋盘类214 详细设计234.1 开发环境的搭建23 4.1.1 安装 JDK23 4.1.2 安装 JRE24 4.1.3 安装 Eclipse24 4.1.4 配置环境变量254.2 客户端界面设计274.3 客户端网络设计295 系统实现305.1 实现原理305.2 关键代码306 系统测试376.1 测试环境376.2 网络客户端测试用例376.3 游戏界面展示387 结束语41致谢42参考文献43摘 要 计算机的人机游戏是人工智能领域中主要研究的一个部分,为人工智能研究做出了重大的贡献。通过对相关文献分析研究,按照人工智能和计算机博弈的一般原理做出优化改进,设计了一个智能五子棋游戏。 本文主要在以下三个方面进行研究:第一,研究了国内外手机游戏的发展状况,调查了五子棋游戏发展现状。并且对手机开发游戏的平台做出选择。 第二, 游戏设计已经成为现在社会的一种热门行业。五子棋则是很受广大群众喜爱的游戏之一,其规则简单,变化多端,非常富有趣味性和消遣性。该文利用JAVA技术实现双人对下的五子棋游戏设计 第三,基于开发平台,根据五子棋系统自身的特点开发出了五子棋人机对战游戏,并对程序进行了功能测试和分析。经过测试,本文开发五子棋游戏能够良好运行,能够满足人机对抗游戏需要。关键词:五子棋 java 游戏设计Abstract Computer man-machine game is a part of the field of artificial intelligence research, made a significant contribution for the artificial intelligence research. By analyzing the literature research, in accordance with the general principles of artificial intelligence and computer game to make optimization improvement, designed an intelligent gobang game. This article mainly studied in the following three aspects: first, study the development of mobile phone games at home and abroad, investigated the gobang game development present situation. And platform of mobile phone games to make a choice. Second, game design has become now a hot sector of society. Gobang game is very popular with the masses is one of the, the rule is simple, changeable, extremely rich interesting and recreational. In this paper, using JAVA technology to realize the double of the gobang game design Third, based on the development platform, according to the characteristics of the gobang system itself developed gobang man-machine games, and the program function test and analysis. After the test, this paper developed gobang game is able to run well, able to meet the needs of the man-machine game. 5重庆理工大学综合课程设计报告 五子棋游戏系统的设计与实现 1绪论1.1 课题背景和研究意义1.1.1 课题背景1、五子棋的起源 五子棋是一种两人对弈的纯策略型棋类游戏,通常双方分别使用黑白两色的棋子,下在棋盘直线与横线的交叉点上,先形成5子连线者获胜。棋具与围棋通用,起源于中国上古时代的传统黑白棋种之一。主要流行于华人和汉字文化圈的国家以及欧美一些地区。容易上手,老少皆宜,而且趣味横生,引人入胜;不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。已在各个游戏平台有应用。许多国家的人对五子棋都有不同的爱称,例如,韩国人把五子棋称为情侣棋,暗示情人之间下五子棋有利于增加情感的交流;欧洲人称其为绅士棋,代表下五子棋的君子风度胜似绅士;日本人则称其为中老年棋,说明五子棋适合中老年人的生理特点和思维方式。 本设计的实现了一个简单的多用户五子棋的游戏程序,包括如下两个界面: 选择对弈桌及角色(执黑、执白);2)在游戏界面有开始,有退出(游戏未结束点击退出时自动判负);发言及显示区;用户列表区;棋盘绘制区。1.1.2 课题国内外研究现状 电脑游戏行业在不断地更新换代中,现如今简单的人机对战已经不能满足玩家的需求,只有顺应时代的发展,不断地推出新产品,更新游戏,开发出更适合不同年龄阶段的人群的游戏。游戏产业已经占据了大部分的市场额度,已经成为与影视、音乐等并驾齐驱的全球最重要的娱乐产业之一,其年销售额超过好莱坞的全年收入。互联网的出现为电脑游戏行业发展注入了新的活力,凭借信息的双向交流、速度快、不受空间限制等优势,让真人参与游戏,提高了游戏的互动性、仿真性和竞技性,使玩家在虚拟世界里可以发挥现实世界无法展示的潜能,改变了单机版游戏的固定、呆板、与机器对话的状况。网络游戏的这些优势不仅使其在电脑游戏行业中的异军突起并在某种程度上取代了单机版游戏,而且成为网络三大(网上金融、网上游戏和网上教育)赢利且利润优厚的领域之一。 网络作为一种新兴的传播方式,主要包括三大内容:娱乐、资讯、通讯。提到网络娱乐,过去主要指的是单机版游戏,没有引入网络的概念但随着科技的发展,游戏娱乐产业也在成长目前,国内的游戏娱乐产业正处于起步阶段,特点表现为:第一,它是一种文化的传播。娱乐产业可以潜移默化地改变人的观念,当前,很多多媒体的播放以及被电脑网络锁取代。第二,网络游戏加强了人与人的沟通。第三,网络游戏具有一定的教育意义。网络游戏所具有的角色扮演的功能,使得玩家能通过互助更好地完成游戏中的各项任务。网络不国界,游戏在网络文化产业世界的发展中地位会越来越高。 目前在国外,休闲游戏和棋类等,玩家的年龄跨度非常大,这和我过的目前网游市场以青少年为主要消费人群的状况截然不同。其实,网络可以解决空间的问题,网络和生活越来越息息相关,因此,开辟适合各个年龄层的游戏产品迫在眉睫。同事,这也涉及到一个企业的开发能力。娱乐产业发展到一定程度,通过不断锻炼和经验的累积,完全可以通过融入娱乐的成分把教条的东西深入浅出地展现给消费者。1.1.3 课题研究内容和意义 五子棋是一种受大众广泛喜爱的游戏,其规则简单,变化多端,非常富有趣味性和消遣性。本程序是用Java实现的一个基于C/S模式的五子棋网络对战游戏。Java是一种简单的,面向对象的语言。因此用Java开发的网络应用系统可以在各种平台上运行,实现了设备无关性,一次开发多处运行,大大增加了开发效率,减少了重复劳动。玩家作为客户端通过服务器端与其他玩家进行对战,聊天等功能。本程序作为一种网络游戏,其乐趣是人与人之间的对抗,而不仅仅是人与事先设置的各种程序对抗,所以比普通的人机对战游戏更具有生命力,更具有趣味性。而且通过事先本程序可以加深对计算机网络编程的了解。1.2 可行性分析1.2.1 技术可行性分析 本系统是基于Java的基础上开发的,使用的技术和协议都是可用的。1.2.2 经济可行性分析 本系统是C/S结构的JAVA程序,在开发工具上使用Myeclipse作为IDE。整个系统在开发过程及使用中不会产生经济纠纷或不良影响。1.2.3 操作可行性分析 本系统的主要研究方向是在人机对战的基础上,转换人与人的对战模式,该课题在国内外都有比较深入的研究,因此有较为丰富的理论知识。同时在研究本课题时,也相应的参考了现已有的优秀游戏,如象棋、真人CS等,因此有着整体的发展方向。本系统的开发过程也严格遵循软件开发过程中的增量迭代模式,有助于及时得到反馈并进行修正。1.3 相关技术概述1.3.1 通信协议 本程序的难点在于与对方需要通信。这里使用了UDP。UDP是用户数据报文数据简称,两台计算机之间的传输类似于传递邮件;两台计算机之间没有明确的连接,使用UDP建立对等通信。在这里,虽然两台计算机之间不分主次,但我们设计游戏是假设一台计算机作为主机(黑方),等待其他人加入。其他人想加入的时候需要输入主机的IP。为了区分通信中传送的信息,例如:“输赢信息”,“下棋位置信息”,“重新开始”等,在发送信息的首部要加上代号。因此定义了以下协议: (1)move|下棋的位置坐标(X,Y); (2)over|哪方赢的信息; (3)quit|表示游戏结束了,对方离开了; (4)undo|x|y;悔棋命令,表示撤销刚才自己在(X,Y)坐标位置的落子。 (5)chat|聊天内容;文字聊天协议。1.3.2 Socket技术 基于TCP/IP的网络的Java程序与其他程序通信中,Java程序依靠Socket进行通信。Socket可以看成为在两个程序进行通信的链接中的一个端点,一个程序将一段信息写入Socket中,该Socket将这段信息发送给另外一个Socket,使这段信息能传送到其他程序中。 无论何时,在两个网络应用程序之间发送和接收信息时都需要建立一个可靠的连接,流套接字依靠 TCP来保证信息正确地达到目的地。实际上,IP包有可能在网络中丢失或者在传送过程中发生错误,任何一种情况发生,作为接收方的TCP将联系发送方TCP重新发送这个IP包。这就是所谓的在两个流套接字之间建立可靠的连接。 流套接字在C/S程序中的扮演一个必须的角色,客户机程序(需要访问某些服务的网络应用程序)创建一个扮演服务器程序的主机的IP地址和服务器程序(为客户端应用程序提供服务的网络应用程序)的端口好的流套接字对象。 客户端流套接字的初始化代码将IP地址和端口号传递给客户端的主机的网络管理软件,管理软件将IP地址和端口号通过NIC传递给服务器端主机;服务器端主机读到通过NIC传递来的数据,然后查看服务器程序是否处于监听状态,这种监听依然是通过套接字和端口来进行的。如果服务器程序处于监听状态,那么服务器端网络管理软件就向客户机的网络管理软件发出一个积极的响应信号,接收到响应信号后,客户端流套接字初始化代码就给客户程序建立一个端口号,并将这个端口号传递给服务器程序的套接字(服务器程序将使用这个端口号识别传来的信息是否属于客户程序),同时完成流套接字的初始化。 如果服务器程序没有处于监听状态,那么服务器端网络管理软件将给客户端传递一个消极信号,收到这个消极信号后,客户程序的流套接字初始化代码将抛出一个异常对象并且不建立通信连接,也不创建流套接字对象。这种情形就像打电话一样,当有人的时候通信建立,否则电话讲被挂断。 这部分的工作包括相关联的3个类:InetAddress、Socket和ServerSocket。InetAddress对象描绘了32位或128位IP地址,Socket对象代表客户程序流套接字;ServerSocket对象代表服务程序流套接字,这3个类均位于包中。论文结构介绍本论文共七章。第一章是绪论,主要介绍课题的相关内容以及实现该系统所用到的关键技术等。第二章是系统需求分析,主要从系统的总体概述、功能需求和非功能需求几个方面对系统的需求进行了分析。第三章是系统概要设计,阐述了系统总体架构是如何设计的。第四章是系统详细设计,是系统概要设计的一个细化,详细地介绍了每个功能模块的设计思路。第五章是系统实现,用对关键代码的分析展示了系统是如何逐步实现的。第六章是系统测试,主要通过基于工作流场景的测试以及基于系统功能的测试来说明系统的可行性和稳定性。第七章是结束语,是对本次工作的一个总结以及对系统未来的一个展望。2 系统需求分析2.1 系统概述 软件的界面简洁明了而不失精美,操作简单容易,功能按钮名称简单易懂,棋盘的大小,棋子的样式。2.2 功能总体描述 网络五子棋系统应用于局域网,对交互性要求很高,本系统选用了C/S 模式进行实现,网络内部使用TCP/IP 方式利用Socket提供的服务,使用Java Graphics类进行用户图形界面的搭建。系统分成两个部分,分别为服务端程序以及客户端程序7。结合实际情况,将服务器端的程序和客户端的程序放在一起,便以更为方便的建立游戏和参与游戏,有效解决了在局域网中服务器未开启,则无法进行游戏的缺陷。 2.3 业务功能分析 五子棋网络游戏主要分为两个部分,游戏服务端和游戏客户端。游戏的服务端主要存储所有连线客户的相关信息及各种状态,并负责游戏客户之间数据的传递,具有创建服务器、系统设置、连接服务器、我要参赛等等功能;游戏客户端提供客户连接服务器,并能与联网玩家进行游戏。由于将服务器端和客户端程序放在一起,所以可以减少界面绘制的冗余代码,使得客户端和服务器端使用相同的界面。所以客服端也具有创建服务器、系统设置、连接服务器、我要参赛等功能。2.4 非功能需求2.4.1 适应性 支持主流windows操作系统 2.4.2 安全性 系统通过用户认证确定其为有效用户,如用户名、密码等。2.4.3 可靠性 工作时间内,系统的有效性至少达到95%。2.4.4 可扩充性 系统的扩张性重点关注增加新功能时所需要的工作量的大小。2.4.5 健壮性: 当系统遇到非法输入数据、相关软硬件的缺陷、异常操作性系统能正常运行。2.4.6 易使用性: 系统采用图形化用户操作界面,通过形象的各种图符将系统的各项功能、各种应用程序和文件、输出结果直观、逼真的表示出来,形成一个图文并茂的视窗操作环境。用户可以轻松地操作和理解输出结果。2.4.7 可维护性: 软件系统中发现并纠正一个故障或进行一次更改的简易错误。尽量使用前测试,发生错误能顺利维护。2.4.8 可移植性: 都支持主流windows系统。2.4.9 可重用性: 能在所有主流windows系统运行,运行环境要求不严。2.5 接口说明 本系统是建立在操作系统之上的Java应用系统,不需要单独地和操作系统再建立连接,底层由JDK虚拟机和操作系统打交道。本系统采用MySql作为默认数据库,通过Java系统的JDBC连接和数据库操作,本系统不用再单独与数据库作底层通信。本系统将采用Struts开源框架。3 系统概要设计3.1 总体设计3.1.1 总体设计原则总体设计应遵循以下原则: 整体性:软件是作为统一整体而存在的。 因此,在总体设计中要从整个软件的角度去考虑。 灵活性:为保持软件长久的生命力,要求该软件具有很强的环境适应性。为此,该软件必须具有较好的开放性与结构的可变性。 可靠性:可靠性是指软件抵御外界干扰的能力及受外界干扰时的恢复能力。 经济性:经济性是指在满足游戏软件需求的前提下, 尽可能地减少对游戏的开销。 3.1.2 系统设计框架 系统设计框架如图3.1所示:图3.1 系统设计框架3.1.3 主要功能及流程系统主要模块:根据上面的系统的设计要求,可以将此网络五子棋游戏分为以下五个模块: 1)初始化模块: 建立棋盘数组并清零; 初始化界面并在屏幕上画出棋盘, 加载音乐等。 2)主循环控制模块:负责控制下棋顺序,当轮到某方下子时,负责将程序流程转到相应的模块中。 3)玩家落子模块:即用户在指定落子区域单击后,程序就会得到该棋子的坐标,并且将棋盘数组中坐标处记录棋子的颜色, 1 代表白色, 2 代表黑色,以说明是哪一方下的棋子。 4)胜负判断模块:根据预先设定的五子棋规则,判断游戏输赢。 5)网络模块:网络功能的实现,使两台不同计算机的用户通过网络连接,实现网络对弈的功能。 服务器端作用 服务器端主要通过建立流连接来连接客户端, 与客户端进行相互通信、 转发信息。接收客户端的信息,接收信息后按照此客户端的要求将信息发送到相应的客户端,服务器端起到了中转的作用。玩家进入游戏界面时,如果玩家不想进入别人已经建立好的游戏中,那也可以自己从界面中建立一个自己的游戏,等待其他玩家的进入。首先输入你要建立游戏的 IP 地址,输入自己的名字,这样一个自己的游戏就建立了,如果有玩家加入游戏,系统会提示某某玩家进入,这时你可以选择开始游戏或者继续等待。游戏各模块功能跟客服端的模块相同。客户端作用 玩家进入游戏界面时,首先提示用户连接服务器,当玩家连接上服务器后,就会在界面右上角给出用户的初始玩家名,在聊天内容框中会给出用户提示,玩家可以创建游戏或者加入建立好的游戏。 游戏各模块功能如下表 3.1.3: 表 3.1.3-1 客户端模块功能以上功能模块在界面中的展示如下图所示:图3.1.3-2 功能模块的展示3.1.4 系统主流程 玩家进入游戏,选择是否为服务器,是则等待其他玩家加入,否则等待其他玩家建立服务器。进入服务器后点参赛,进入对弈阶段。对弈结束,从新开始。图 3.1.4 网络五子棋游戏流程图3.2 概要设计根据玩家的需求分析,本系统的实现主要用到如下几个类: sendData:主要用于玩家相关信息的传递。 ChessClient :主要用于玩家信息的初始化。 MyThread:主要用于实现连接网络玩家,通过此类玩家发送自己的游戏状态以及接收并进行处理从服务器传递过来的信息。 PaintComponent:主要用于绘制棋盘及棋子。3.2.1 网络编程模式的选取 网络编程模式主要分成两类 : 一种是基于 C/S(客户机 / 服务器 ) 模式, 另一种是B/S(浏览器 / 服务器 ) 式;C/S 程序具有好的交互性 , 功能强大 , 但是客户端必须安装客户端软件 , 限制了其应用; B/S 模式下要求客户端具有浏览器 , 但浏览器在安全方面有一些限制 , 交互性与功能有一些限制网络五子棋系统应用 , 所以一般的网络五子棋游戏都选用了 C/S 模式进行实现 , 使用 TCP/IP 方式利用 Socket 通过传输层提供服务。在 Socket 工作中 , 用 ClientSocket 类建立客户端连接 , 用 ServerSocket 类建立服务器端连接 , 这两个组件分别用来操纵客户端和服务器端的 Socket 对象进行连接和传输数据。在通信过程中 , 服务器端应用程序先启动 , 然后等待客户端的连接请求。在另外一台计算机上启动客户端应用程序 , 同时输入服务器端 Socket 地址和端口号进行选择服务器,找到服务器后就向服务器端发请求连接服务器端,允许连接后即向客户端 Socket收到 Accept 信号。客户端和服务器端就正式建立起了后 , 就可以分别调用 Tserve Rsocket 和 TClientSocket 的 Socket 属性和客户端进行数据传输。客户端和服务器端Socket 组件必须设置相同的端口号。3.3 主要类与其作用3.3.1 服务器类 服务器类用于接收客户端的连接, 并为每个客户端在服务器端启动唯一的守护线程,线程主要功能是接收客户端发送过来的消息并做出相应的处理。 客户端发送到服务器端的主要消息有两部分:一部分是客户端发送给服务器端需要服务器端进行处理的,如客户端发送过的连接信息、客户端改名信息、客户端断开连接信息等;另一部分是客户端发送给服务器端需要服务端转发给其他客户端的消息, 如客户端给游戏另一方发送的棋盘状态数据、聊天信息等。 服务器类的主要对象如表 3.3.1-1:表 3.3.1-1 服务器主要对象功能对象名称功能port双方之间转发数据用于建立数据报套接字的端口号,本次程序中是使用UDP连接socketServerSocket对象,port传递端口号,监听连接请求的端口。ip服务器的ip地址,客户机需要使用这个ip地址才能够与服务器进行连接服务器类使用状况如下图:图 3.3.1-2 服务器类用况图3.3.2 客户端类 游戏客户端的主要功能是为了初始化和组织用户界面, 并且定义了各个按钮的功能。 游戏客户端的主要对象如下如表 3.3.2-1 :表 3.3.2-1 客户端对象功能模块名称功 能jbInit各种组件的初始化,设置各个组件的位置及内容actionPerformed对象发生操作时调用,通过e.getSource()来区哪个按钮发生了点击事件,并启动相应的方法MyThread内部线程类,负责接收数据,有“move”方法是对方的走棋信息,“undo”表示对方撤销上步棋,“over”则表示有一方胜利,“quit”表示对方离开sendData发送信息给对方MouseLis实现mousePressed事件,用于落子。首先判断点击位置是否在棋盘中,并且无落子,再根据自己的颜色修改对应位置的值checkWin判断这个棋子是否和其他的棋子连成5子即输赢判断游戏客户端使用状况如下图:图 3.3.2-2 游戏客户端用况图3.3.3 棋盘类 棋盘类的主要功能是绘制玩家的棋盘状态与棋子信息。 棋盘类的主要对象如表 3.3.3-1 :表 3.3.3-1 棋盘对象功能对象名称功 能allChess 双方的落子信息在此二维数组中,其中0表示这个位置没有棋子,1表示这个位置是黑子,2表示这个位置是白子。isBlack是否为黑方,true代表为黑方,false代表白方canPlay标识游戏是否可以继续instr缓冲区域,用于储存双方通信信息,程序可以从其中读取对方发送的消息osPrintWriter类型,用于向缓冲区写入数据棋盘类用况如下图:图 3.3.3-2 棋盘类用况图4 详细设计4.1 开发环境的搭建4.1.1 安装 JDK 从官方网站上下载免费安装软件:网址: www./ 。 运行下载的 exe 文件,如图: 4.1.1-1 :图 4.1.1-1 接受协议图 点击接受,选择安装路径。如图 4.1.1-2 所示:图 4.1.1-2 jdk 的安装图4.1.2 安装 JRE 从官方网站上下载免费安装软件,点击 exe 开始安装。如图 4.1.2-1 所示:图 4.1.2-1 JRE 选项图 点击安装,完成安装 JRE。如图 4.1.2-2 所示:图 4.1.2-2 安装过程图4.1.3 安装 Eclipse 从官方网站上下载免费压缩包,在 jdk 安装目录下,解压此压缩包即可。 如图 4.1.3-1: 图 4.1.3-1 Eclipse 安装图4.1.4 配置环境变量 在环境变量的配置中, 假设 JDK的安装目录为 D:Program FilesJavajdk1.6.0_10 环境变量 PATH 方法一:在 c:Autoexe.bat 文件的底部或者最后以后一个 path 命令之后,输入:SET PATH=%PATH%;D:Program FilesJavajdk1.6.0_10bin 方法二:在“系统属性”对话框中 直接设置环境变量: PATH= , ;D:Program FilesJavajdk1.6.0_10bin; 具体操作如下: 在我的电脑上点击右键,找到属性。如下 4.1.4-1 图:图 4.1.4-1 电脑属性图 找到系统属型里的环境变量,并找到 path 变量。如 4.1.4-2 图所示:图 4.1.4-2 path 变量图 在找到的 path 变量中加入 JDK的安装路径。如图 4.1.4-3 所示:图 4.1.4-3 环境变量配置图 环境变量 CLASSPATH 方法一:在 c:Autoexe.bat 文件的底部或者最后以后一个 CLASSPATH命令之后,输入:SET CLASSPATH=%CLASSPATH%;. 上面文字的“. ”指示 javac 命令在其所在的当前目录中寻找被编译文件按所需要的用户(非系统)类文件; “SET CLASSPATH=”表示关闭环境变量 CLASSPATH 。 方法二:在“系统属性”对话框中 直接设置环境变量具体操作如下。 找到系统变量里的 classpath 变量,如果没有,则新建一个 classpath 变量。 找到后如下图:图 4.1.4-4 变量 classpath 图 环境变量 classpath 中加入安装路径,如下图:图 4.1.4-5 环境变量配置图最后点击确定,完成环境变量的配置。4.2 客户端界面设计 游戏客户端主要用于玩家信息的初始化,玩家的操作状态的定义,包括结构组织游戏客户端的界面,实现定义游戏控制按钮,完成定义键盘的事件。 主要方法: connectServer() 方法 用在启动玩家客户端时,为用户发送连接服务器信息,并且加载背景音乐等。 actionPerformed(ActionEvent e) 方法 用于客户端玩家单击控制按钮的功能的实现。该方法主要用来实现玩家修改名字、创建游戏、我要参赛、系统设置等各个按钮的功能。 sendData() 方法 用于实现聊天功能,当玩家输入聊天信息到输入框中后,按回车键可以发送消息。此事件中主要处理了两个行为,一是当玩家选择某玩家进行私聊时的处理,二是当用户选择所有人进行公聊时的处理。 客户端类如图 4.2 :图 4.2 游戏客户端类类图4.3 客户端网络设计 网络客户端主要用于接收和发送服务器消息。 主要方法如下: connectServer(String,int) 用于服务器的连接。第一个参数是要连接的服务器的 IP地址,第二个参数是连该服务器的端口号。玩家用此方法连接上服务器,玩家启动一个线程用来接收服务器发送过来的消息。 sendData(int,String) 用于发送此玩家的消息状态给服务器。第一个参数是消息类型,第二个参数是消息内容。425 系统实现5.1 实现原理 系统在MyThread类接收操作数据, 然后根据传过来的数据做出相应的操作。5.2 关键代码1) 发送数据给客户端 private void sendData(String s) /发送数据try os=new PrintWriter(socket.getOutputStream();os.println(s);os.flush();/String ss=s.split(|);/jTextArea1.append(你说: +ss1+n); catch (Exception ex) 2) 绘制棋子棋盘class GobangPanel extends JPanel/棋盘背景图片Toolkit tk = Toolkit.getDefaultToolkit();Image bgImage = tk.getImage(getClass().getResource(/image/background3.jpg);/BufferedImage bgImage=null;public GobangPanel() this.addMouseListener(new MouseLis();/绘制棋子protected void paintComponent (Graphics g) super.paintComponent(g);/双缓冲技术防止屏幕闪烁BufferedImage bi=new BufferedImage(500, 500, BufferedImage.TYPE_INT_RGB);Graphics g2=bi.createGraphics();g2.setColor(Color.BLACK);/绘制背景g2.drawImage(bgImage, 1, 20, this);/输出标题信息g2.setFont(new Font(黑体,Font.BOLD,15);g2.drawString(游戏信息:+message, 130, 60);/绘制棋盘for(int i=0;i19;i+)g2.drawLine(10, 70+20*i, 370, 70+20*i);g2.drawLine(10+20*i, 70,10+20*i,430);/标注点位g2.fillOval(68, 128, 6, 6);g2.fillOval(308, 128, 6, 6);g2.fillOval(308, 368, 6, 6);g2.fillOval(68, 368, 6, 6);g2.fillOval(308, 248, 6, 6);g2.fillOval(188, 128, 6, 6);g2.fillOval(68, 248, 6, 6);g2.fillOval(188, 368, 6, 6);g2.fillOval(188, 248, 6, 6);/绘制全部棋子for(int i=0;i19;i+)for(int j=0;j=10&x=70&y=5)flag=true;/纵向的判断int i2=1;int count2=1;while(color=allchessx+0y+i2)count2+;i2+;i2=1;while(color=allchessx-0y+i2)count2+;i2+;if(count2=5)flag=true;/斜下方的判断(右上+左下)int i3=1;int count3=1;while(color=allchessx+i3y-i3)count3+;i3+;i3=1;while(color=allchessx-i3y+i3)count3+;i3+;if(count3=5)flag=true;/斜下方的判断(右下+左上)int i4=1;int count4=1;while(color=allchessx+i4y+i4)count4+;i4+;i4=1;while(color=allchessx-i4y-i4)count4+;i4+;if(count4=5)flag=true;return flag;6 系统测试6.1 测试环境1) 操作系统: Windows 7/Windows 102) 开发环境: myeclipse20136.2 网络客户端测试用例 用例名称:网络客户端功能。 用例描述:玩家连接上服务器后,能够依据系统提示创建或者加入游戏,能够与其他玩家进行正常的对弈。 测试如下图表 6.2-1 :表6.2-1 测试用例测试用例ID功能名输入(操作)预期结果备注1初始界面显示-正常进入输入服务器地址成功进入客户端启动服务器2初始界面显示-不能进入未输入服务器地址或服务器地址不存在给出玩家服务器未启动提示3创建游戏单击侦听按钮按钮由侦听变为正在侦听4加入游戏 - 成功加入单击连接按钮服务器显示客户端已经连接到服务器5放弃游戏用户在游戏当中,单击关闭按钮清空棋盘数据, 并向游戏对方发送断开连接信息6.3 游戏界面展示 游戏开始的界面,能够看到上面的各个不同的功能按钮,界面如下图:图 6.3-1 游戏开始界面 建立服务器,服务器侦听按钮变成正在侦听,如下图:图 6.3-2 建立服务器 有玩家加入服务器,但是还没有参赛,如下图:图 6.3-3 加入服务器 游戏一方获胜,系统提示,如下图图 6.3-4 游戏一方获胜 玩家在相互对话,如下图:图 6.3-5 玩家对话7 结束语 在这次网络五子棋游戏的设计与实现中,我负责五子棋游戏的设计与实现程序的编写与调试,PPT的撰写。 在这次实训中我得到了许多收获,我第一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 钢材公司的合同范本
- 委托转租门面合同范本
- 2017租房协议合同范本
- 青少年读本出版合同
- 新租赁厂房合同范本
- 入户空间租房合同范本
- 公路承包开挖合同范本
- 混合型肠易激综合征护理查房
- 成套电器销售合同范本
- 2008租赁合同范本
- 英汉互译单词练习打印纸
- 四川JS-004竣工验收报告
- 花卉栽植施工方案
- 水工闸门课件
- 水泥生产企业生产安全事故综合应急预案
- 全自动血液细胞分析仪产品技术要求深圳迈瑞
- 找对英语学习方法的第一本书
- 安徽涵丰科技有限公司年产6000吨磷酸酯阻燃剂DOPO、4800吨磷酸酯阻燃剂DOPO衍生品、12000吨副产品盐酸、38000吨聚合氯化铝、20000吨固化剂项目环境影响报告书
- 《诺丁山》经典台词
- 对铁路机车乘务员规章培训的探讨与实践
- 临床医学实验室 仪器设备一览表格模板
评论
0/150
提交评论