1、综合课程设计报告题 目 : 五子棋游戏系统的设计与实现 学院(系): 计算机科学与工程学院网络工程系 学 号: 学生姓名: 指导教师: 王勇、黄继平、卢玲2016 年综合课程设计成绩学号 姓名 总评成绩老师签名重庆理工大学综合课程设计报告 五子棋游戏系统的设计与实现 1目录摘 要 .5Abstract.61 绪论 .71.1 课题背景和研究意义 .71.1.1 课题背景 .71.1.2 课题国内外研究现状 .71.1.3 课题研究内容和意义 .81.2 可行性分析 .91.2.1 技术可行性分析 .91.2.2 经济可行性分析 .91.2.3 操作可行性分析 .91.3 相关技术概述 .91.
2、3.1 通信协议 .91.3.2 Socket 技术 .102 系统需求分析 .122.1 系统概述 .122.2 功能总体描述 .122.3 业务功能分析 .122.4 非功能需求 .122.4.1 适应性 .122.4.2 可靠性 .132.4.3 可扩充性 .13重庆理工大学综合课程设计报告 五子棋游戏系统的设计与实现 22.4.4 健壮性: .132.4.5 易使用性: .132.4.6 可维护性: .132.4.7 可移植性: .132.4.8 可重用性: .132.5 接口说明 .143 系统概要设计 .153.1 总体设计 .153.1.1 总体设计原则 .153.1.2 系统设
3、计框架 .153.1.3 主要功能及流程 .163.1.4 系统主流程 .183.2 概要设计 .183.2.1 网络编程模式的选取 .183.3 主要类与其作用 .193.3.1 服务器类 .193.3.2 客户端类 .203.3.3 棋盘类 .214 详细设计 .234.1 开发环境的搭建 .234.1.1 安装 JDK .234.1.2 安装 JRE .244.1.3 安装 Eclipse .244.1.4 配置环境变量 .254.2 客户端界面设计 .27重庆理工大学综合课程设计报告 五子棋游戏系统的设计与实现 34.3 客户端网络设计 .295 系统实现 .305.1 实现原理 .3
4、05.2 关键代码 .306 系统测试 .376.1 测试环境 .376.2 网络客户端测试用例 .376.3 游戏界面展示 .387 结束语 .41致谢 .42参考文献 .43重庆理工大学综合课程设计报告 五子棋游戏系统的设计与实现 4摘 要计算机的人机游戏是人工智能领域中主要研究的一个部分,为人工智能研究做出了重大的贡献。通过对相关文献分析研究,按照人工智能和计算机博弈的一般原理做出优化改进,设计了一个智能五子棋游戏。本文主要在以下三个方面进行研究:第一,研究了国内外手机游戏的发展状况,调查了五子棋游戏发展现状。并且对手机开发游戏的平台做出选择。第二, 游戏设计已经成为现在社会的一种热门行
5、业。五子棋则是很受广大群众喜爱的游戏之一,其规则简单,变化多端, 非常富有趣味性和消遣性。该文利用 JAVA 技术实现双人对下的五子棋游戏设计第三,基于开发平台,根据五子棋系统自身的特点开发出了五子棋人机对战游戏,并对程序进行了功能测试和分析。经过测试,本文开发五子棋游戏能够良好运行,能够满足人机对抗游戏需要。关键词:五子棋 java 游戏设计重庆理工大学综合课程设计报告 五子棋游戏系统的设计与实现 5AbstractComputer man-machine game is a part of the field of artificial intelligence research, mad
6、e 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
7、 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 wit
8、h 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 designThird, based on the development platform, according to the characteristics of the gobang system itself develope
9、d 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.重庆理工大学综合课程设计报告 五子棋游戏系统的设计与实现 61 绪论1.1 课题背景和研究意义1.1.1 课题背景1、五子棋的起源五子棋是一种两人对弈的纯策略型棋类游戏,通常双方分别使用黑白两色的棋子,下在棋盘直线与横线的
10、交叉点上,先形成 5 子连线者获胜。棋具与围棋通用,起源于中国上古时代的传统黑白棋种之一。主要流行于华人和汉字文化圈的国家以及欧美一些地区。容易上手,老少皆宜,而且趣味横生,引人入胜;不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。已在各个游戏平台有应用。许多国家的人对五子棋都有不同的爱称,例如,韩国人把五子棋称为“情侣棋“ ,暗示情人之间下五子棋有利于增加情感的交流;欧洲人称其为“绅士棋“ ,代表下五子棋的君子风度胜似绅士;日本人则称其为“中老年棋“,说明五子棋适合中老年人的生理特点和思维方式。本设计的实现了一个简单的多用户五子棋的游戏程序,包括如下两个界面:选择对弈桌及角色(执
11、黑、执白) ;2)在游戏界面有开始,有退出(游戏未结束点击退出时自动判负) ;发言及显示区;用户列表区;棋盘绘制区。1.1.2 课题国内外研究现状电脑游戏行业在不断地更新换代中,现如今简单的人机对战已经不能满足玩家的需求,只有顺应时代的发展,不断地推出新产品,更新游戏,开发出更适合不同年龄阶段的人群的游戏。游戏产业已经占据了大部分的市场额度,已经成为与影视、音乐等并驾齐驱的全球最重要的娱乐产业之一,其年销售额超过好莱坞的全年收入。互联网的出现为电脑游戏行业发展注入了新的活力,凭借信息的双向交流、速度快、不受空间限制等优势,让真人参与游戏,提高了游戏的互动性、仿真性和竞技性,使玩家在虚拟世界里可
12、以发挥现实世界无法展示的潜能,改变了单机版游戏的固定、呆板、与机器对话的状况。网络游戏重庆理工大学综合课程设计报告 五子棋游戏系统的设计与实现 7的这些优势不仅使其在电脑游戏行业中的异军突起并在某种程度上取代了单机版游戏,而且成为网络三大(网上金融、网上游戏和网上教育)赢利且利润优厚的领域之一。网络作为一种新兴的传播方式,主要包括三大内容:娱乐、资讯、通讯。提到网络娱乐,过去主要指的是单机版游戏,没有引入网络的概念但随着科技的发展,游戏娱乐产业也在成长目前,国内的游戏娱乐产业正处于起步阶段,特点表现为:第一,它是一种文化的传播。娱乐产业可以潜移默化地改变人的观念,当前,很多多媒体的播放以及被电
13、脑网络锁取代。第二,网络游戏加强了人与人的沟通。第三,网络游戏具有一定的教育意义。网络游戏所具有的角色扮演的功能,使得玩家能通过互助更好地完成游戏中的各项任务。网络不国界,游戏在网络文化产业世界的发展中地位会越来越高。目前在国外,休闲游戏和棋类等,玩家的年龄跨度非常大,这和我过的目前网游市场以青少年为主要消费人群的状况截然不同。其实,网络可以解决空间的问题,网络和生活越来越息息相关,因此,开辟适合各个年龄层的游戏产品迫在眉睫。同事,这也涉及到一个企业的开发能力。娱乐产业发展到一定程度,通过不断锻炼和经验的累积,完全可以通过融入娱乐的成分把教条的东西深入浅出地展现给消费者。1.1.3 课题研究内
14、容和意义五子棋是一种受大众广泛喜爱的游戏,其规则简单,变化多端,非常富有趣味性和消遣性。本程序是用 Java 实现的一个基于 C/S 模式的五子棋网络对战游戏。Java 是一种简单的,面向对象的语言。因此用 Java 开发的网络应用系统可以在各种平台上运行,实现了设备无关性,一次开发多处运行,大大增加了开发效率,减少了重复劳动。玩家作为客户端通过服务器端与其他玩家进行对战,聊天等功能。本程序作为一种网络游戏,其乐趣是人与人之间的对抗,而不仅仅是人与事先设置的各种程序对抗,所以比普通的人机对战游戏更具有生命力,更具有趣味性。而且通过事先本程序可以加深对计算机网络编程的了解。重庆理工大学综合课程设
15、计报告 五子棋游戏系统的设计与实现 81.2 可行性分析1.2.1 技术可行性分析本系统是基于 Java 的基础上开发的,使用的技术和协议都是可用的。1.2.2 经济可行性分析本系统是 C/S 结构的 JAVA 程序,在开发工具上使用 Myeclipse 作为IDE。整个系统在开发过程及使用中不会产生经济纠纷或不良影响。1.2.3 操作可行性分析本系统的主要研究方向是在人机对战的基础上,转换人与人的对战模式,该课题在国内外都有比较深入的研究,因此有较为丰富的理论知识。同时在研究本课题时,也相应的参考了现已有的优秀游戏,如象棋、真人 CS 等,因此有着整体的发展方向。本系统的开发过程也严格遵循软
16、件开发过程中的增量迭代模式,有助于及时得到反馈并进行修正。1.3 相关技术概述1.3.1 通信协议本程序的难点在于与对方需要通信。这里使用了 UDP。UDP 是用户数据报文数据简称,两台计算机之间的传输类似于传递邮件;两台计算机之间没有明确的连接,使用 UDP 建立对等通信。在这里,虽然两台计算机之间不分主次,但我们设计游戏是假设一台计算机作为主机(黑方) ,等待其他人加入。其他人想加入的时候需要输入主机的 IP。为了区分通信中传送的信息,例如:“输赢信息”, “下棋位置信息 ”, “重新开始 ”等,在发送信息的首部要加上代号。因此定义了以下协议:(1)move| 下棋的位置坐标( X,Y);
17、(2)over|哪方赢的信息;(3)quit|表示游戏结束了,对方离开了;重庆理工大学综合课程设计报告 五子棋游戏系统的设计与实现 9(4)undo|x|y;悔棋命令,表示撤销刚才自己在(X,Y)坐标位置的落子。(5)chat|聊天内容;文字聊天协议。1.3.2 Socket 技术基于 TCP/IP 的网络的 Java 程序与其他程序通信中, Java 程序依靠Socket 进行通信。 Socket 可以看成为在两个程序进行通信的链接中的一个端点,一个程序将一段信息写入 Socket 中,该 Socket 将这段信息发送给另外一个Socket,使这段信息能传送到其他程序中。无论何时,在两个网络
18、应用程序之间发送和接收信息时都需要建立一个可靠的连接,流套接字依靠 TCP 来保证信息正确地达到目的地。实际上,IP 包有可能在网络中丢失或者在传送过程中发生错误,任何一种情况发生,作为接收方的 TCP 将联系发送方 TCP 重新发送这个 IP 包。这就是所谓的在两个流套接字之间建立可靠的连接。流套接字在 C/S 程序中的扮演一个必须的角色,客户机程序(需要访问某些服务的网络应用程序)创建一个扮演服务器程序的主机的 IP 地址和服务器程序(为客户端应用程序提供服务的网络应用程序)的端口好的流套接字对象。客户端流套接字的初始化代码将 IP 地址和端口号传递给客户端的主机的网络管理软件,管理软件将
19、 IP 地址和端口号通过 NIC 传递给服务器端主机;服务器端主机读到通过 NIC 传递来的数据,然后查看服务器程序是否处于监听状态,这种监听依然是通过套接字和端口来进行的。如果服务器程序处于监听状态,那么服务器端网络管理软件就向客户机的网络管理软件发出一个积极的响应信号,接收到响应信号后,客户端流套接字初始化代码就给客户程序建立一个端口号,并将这个端口号传递给服务器程序的套接字(服务器程序将使用这个端口号识别传来的信息是否属于客户程序) ,同时完成流套接字的初始化。如果服务器程序没有处于监听状态,那么服务器端网络管理软件将给客户端传递一个消极信号,收到这个消极信号后,客户程序的流套接字初始化代码将抛出一个异常对象并且不建立通信连接,也不创建流套接字对象。这种情形就像打电话一样,当有人的时候通信建立,否则电话讲被挂断。这部分的工作包括相关联的 3 个类:InetAddress、Socket 和