计算机毕业论文基于Java五子棋游戏开发_第1页
计算机毕业论文基于Java五子棋游戏开发_第2页
计算机毕业论文基于Java五子棋游戏开发_第3页
计算机毕业论文基于Java五子棋游戏开发_第4页
计算机毕业论文基于Java五子棋游戏开发_第5页
已阅读5页,还剩12页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

商 丘 师 院 毕 业 论 文 2012 年 4 月完成论 文 题 目 基于 院(系)名 称 计算机与信息技术学院 专 业 名 称 计算机科学技术 班 级 10 级计算机科学技术( 2) 学 生 姓 名 学 号 101131088 指导教师姓名 目录 内容摘要 . 1 关 键 字 . 1 . 1 . 1 1第一章 绪论 . 2 . 2 . 2 发及运行环境 . 3 要工作及文章结构 . 3 2第二章 系统分析 . 4 统功能需求分析 . 4 件架构 . 4 件功能 . 4 戏规则 . 5 3第三章 系统设计实现 . 6 统总体设计 . 6 机对战模式 . 7 络对战模式 . 10 4第四章 结论 . 14 参考文献 . 15 致谢 . 15 1 内容摘要 近几年来,棋类游戏发生着翻天覆地的变化,相继的被搬上了不同的载体,游戏的对弈方式也不仅仅是人机对 战,对弈者可以打破空间的限制进行网络对弈,五子棋则是一种两人对弈的纯策略型棋类游戏。本文将介绍采用 关技术,对图形界面,绘图,布局管理器等构造出游戏的单机功能,在此基础上,利用 知识,建立起服务器与客户端之间的连接,利用多线程技术来处理服务器端与客户端之间的数据传输和通信问题,使得客户端和服务器端之间能够同步的进行处理。 关 键 字 五子棋 n on is is on is a of of on to be 2 1第一章 绪论 在古代,五子棋棋具虽然与围棋相类同,但是下法却是完全不同的。正如辞海中所言,五子棋是 “ 棋类游戏,棋具 与围棋相同,两人对局,轮流下子,先将五子连成一行者为胜。 ” 。 近来随着计算机的快速发展,各种棋类游戏被纷纷请进了电脑,使得那些喜爱下棋,又常常苦于没有对手的棋迷们能随时过足棋瘾。而且这类软件个个水平颇高,大有与人脑分庭抗礼之势。其中战胜过国际象棋世界冠军 蓝”便是最具说服力的代表;其它像围棋的“手淡”、象棋的“将族”等也以其优秀的人工智能深受棋迷喜爱 ; 五子棋作为一项热门的棋类游戏,在生活中已经被人们深深喜爱,但是出于对空间的限制,棋手只能在面对面的对弈,对于网络上流传五子棋程序的不足,所以 开发一种既能够人机对战,又能够网络对战的五子棋程序。 五子棋相传起源于四千多年前的尧帝时期,比围棋的历史还要悠久,可能早在“ 尧造围棋 ” 之前,民间就已有五子棋游戏。有关早期五子棋的文史资料与围棋有相似之处,因为古代五子棋的棋具与围棋是完全相同的。在上古的神话传说中有 “ 女娲造人,伏羲做棋 ” 一说,增山海经中记载: “ 休舆之山有石焉,名曰帝台之棋,五色而文状鹑卵。 ” 李善注引三国魏邯郸淳艺经中曰: “ 棋局,纵横各十七道,合二百八十九道,白黑棋子,各一百五十枚 ” 。这段虽没明讲是何种棋类,但至少知道 远古就以漂亮的石头为棋子。因而规则简单的五子棋也可能出自当时,并是用石子作棋子。亦有传说,五子棋最初流行于少数民族地区,以后渐渐演变成围棋并在炎黄子孙后代中遍及开来。 五子棋发展于日本,流行于欧美。容易上手,老少皆宜,而且趣味横生,引人入胜;不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。在中国的文化里,倍受人们的青睐。古代五子棋的棋具与围棋相同,纵横各十七道。五子棋大约随围棋一起在我国南北朝时先后传入朝鲜、日本等地。本世纪初五子棋传入欧洲并迅速风靡欧洲。通过一系列的变化,使五子棋这一简单的游戏 复杂化、规范化,而最终 3 成为今天的职业连珠五子棋,同时也成为一种国际比赛棋。 发及运行环境 发环境 2G 内存, 160 行环境 2及以上处理器, 324 9X/上 800*600或以上的屏幕分辨率 要工作及文章结构 第一章:介绍开发背景及运行环境 第二章:需求分析及系统分析 第三章:程序设计开发及实施阶段 第四章:总结 4 2第二章 系统分析 统功能需求分析 件架构 如图 件架构图 考虑到整个的下棋过程(无论对方是电脑抑或其他网络玩家)可以分为:己 方落子、等待对方落子、对方落子、设置己方棋盘数据这一系列过程,因此一人游戏类、二人游戏类和棋盘类之间的关系参考了 象工厂)模式,以 实现对两个不同模块进行一般化的控制。 件功能 按照需求,本系统分为三大功能:绘图功能、数据处理功能和用户功能。 绘图功能:负责屏幕的绘制,向用户显示游戏的所有可见信息,包括棋盘、棋子、游戏状态等。其中主要是棋盘、棋子的绘制,游戏一开始首先要把棋盘绘制出来,然后一方为黑棋,一方为白棋,从而进行对弈。先手下黑棋,后手为白棋,绘制棋子 是在一方出棋后,后台已生成一个新的异色棋子。下面介绍绘图功能: 数据处理功能:负责内部数据的处理,是棋类游戏的核心功能,包括胜负判断、一人游戏类 二人游戏类 棋盘类 主界面 用户 游戏类指针 5 电脑下子等功能。 用户功能: 图 图 用户可以直接使用的游戏功能,通过按键进行操作。 每个用例的简要说明如下: (1) 网络对战 : 通过创建连接来建立游戏,等待对方加入,当连接成功,游戏开始,任意一方可以断开连接而停止游戏。 (2) 人机对战 : 初始化相关变量,清空棋盘,玩家先手,电脑后手。 (3) 游戏复位 : 初始化相关变量,清空棋盘,等待游戏开始。 (4) 退出游戏 : 关闭程序。 戏规则 传统五子棋的棋子分为黑白两色,采用 19 19 棋盘,棋子放置于棋盘线交叉点上。两人对局,各执一色,轮流下一子,先将横、竖或斜线的 5个或 5个以上同色棋子连成不间断的一排者为胜。 6 3第三章 系统设计实现 统总体设计 序流程图 图 序流程图 五子棋游戏通常为以上流程,首先是对战双方轮流落子,然后判断落子位置是否合法,最后进行游戏结束判断,整个流程分五步,采用线程驱动游 戏的方法。 统关键类的介绍 整个游戏由 12 个类组成。这个游戏共有两个模式:人机对战模式,网络对战模式。人机对战模式由 组成,是负责游戏落棋的控制, 供棋子,每当下一个棋子的话,就生成一个棋子对象。网络对战模式 7 是由 组成, 提供网络模式的棋子,每当下一个棋子的时候,生成一个棋子对象。 和 是建立网络协议的客户端和服务端,当服务端启动后,不断地监听来自客户端的请求,如果监听到,则连接协议,准备进行通信,客户端则在启动后向服务器端发送连接请求,如果被服务端监听到,则配合服务器端连接。 是负责连接客户 端和服务器端的。游戏规则的控制、游戏胜负的控制也由 制棋盘和人机对战模式的的机制相同。 机对战模式 机对战模式关键技术分析胜负判断 对游戏的胜负进行判断,每当下一个棋子的时候,会进行判断,在横、纵、正对角线、反对角线上,如果有连续的同色的五棋子,则判断出该色的玩家获胜 (图 从设计的思想上,需要它接受一个棋子颜色的参数,然后返回一个布尔值,这个值来指示是否胜利,算法所遵循的搜索顺序是从左到右、自上而下,这样也就提高了搜索的速度。 图 机对战模式的核心类及具体实现 下是在游戏中需要用到的变量设置: ; /判断胜负 ; /棋子数组 1 ; /棋子数组 2 8 下面这个构造函数对变量进行初始化,包括判断胜负值的返回,棋子数组的初始化,主要程序如下: 919; 919; 3; 下面这个方法是用来计算当前某一方的棋子数,把这个棋子数返给 i, j, k; i = 0; i ij; i; j; ij ij; i; j; 另外,游戏的初始化还需要 负责棋盘界面的绘制, 控制,由于篇幅的原因,此处不作介绍。 络对战模式 络对战模式关键技术分析 络编程的基本模型就是客户机到服务器模型,简单的说就是两个进程之间相互通讯,然后其中一个必须提供 11 一个固定的位置,而另一个则只需要知道这个固定的位置。并去建立两者之间的联系,然后完成数据的通讯就可以了,这里提供固定位置的通常称为服务器,而建立联系的通常叫做客户端 ,对于 言已经简化了 编程接口。 供 了对其进行支持 了固定位置 该请求由客户方首先提出要求。因此 样提供了一个 象来对其进行支持,只要客户方创建一个 实例对象进行支持。建立好连接,下面的工作就交给 I/O, I/O 操作总是和网络编程息息相关的。底层的网络是传输数据的,数据的交互还是依赖于 作的, 作提供了针对于字节流和后也提 供了一个缓冲用于数据的读写。当一个客户和服务器完成一次通讯之后下一个客户才可以进来和服务器交互,这时候出现了一个问题,那就是无法做到同时服务,下面我们就用到多线程,创建线程并使得其可以和网络连线取得联系。然后由线程来执行刚才的操作,要创建线程要么直接继承 么实现 建立和 然后执行线程。这样就完成了一次完整的通讯。 络对战模式的核心类及具体实现 网络对战模式的核心类及逻辑实现基本上和人机对战模式的实现差不多。网络对战模式的核 心类是 ,此版本游戏不再由电脑来控制一方玩家了,而是完全由人来玩,所以只要控制好玩家的游戏顺序以及游戏的规则即可。黑方先下一个棋子的话,进行判断,在横、纵、正对角线、反对角线上是否构成了连续的五个红棋子,如果构成,则结束游戏,得出黑方胜利,否则继续游戏,黑方下了后,游戏的权限交给白方。白方下一个棋子后,判断如果在横、纵、正对角线、反对角线上有连续的五个白色的棋子的话,同样结束游戏,得出白方胜利。主要的程序如下: ; /定义棋子坐标点变量 ; /定义玩家 1 ; /定义玩家 2 下面这个构造函数对变量进行初始化。 919; 12 0201919; 0201919; ; 下面这个方法主要是初始化获胜组合情况 i, j, k, 0; i = 0; i = 4; k = 0; k 5; k+) i + kj - k = i + kj - k = ; 下面的方法是修改棋子点的状态 x, y, xy = 游戏的初始化还需要服务端 和客户端 进行建立连接,面介绍一下 要源码如下: 3 /从 受客户连接请求 ; /创建一个新的连接 14 4第四 章 结论 “基于 的设计和论文都已经完成。代码量 1100行左右,共 12个文件,项目源码共 48终运行 为 31开发花费两周时间。这个游戏的可以在任何支持安装 在开发这个游戏期间,曾经遇到过很多的问题。虽说在开发过程中也遇到过一些程序上的困难,但是在老师和同学们的帮助下,我也克服了这个困难。经过几天的资料查找和学习,终于做出了适合自己的解决方案来,最后还是被克服。 通过编写这个程序,我总结出代码的组织都是非常重要的,作为一款 游戏,本设计可能在趣味性和挑战性上还有些不足,所有这关系到日后的维护以及扩展,几千行的代码需要通过合适的方法组织起来,使程序编写的代码更加有条理,更加符合软件工程的标准,这才是最重要的。 毕业设计是对大学所学知识的一次全面检验,通过本次毕业设计使我了解到理论与实践结合的重要性,同时也看到自己的不足。在以后的人生道路上,要不断探索求知,不断自我完善,使自己成为一名合格的软件工程师。 15 参考文献 1 谭浩强 . 程技术 2002: 103 123. 2 黄嘉辉 . 台湾 文魁资讯出版 , 2003: 760 850. 3 荣钦科技 . 戏程序设计 2004: 261 290. 4 (美 )希尔德 著 . 鄢爱兰 译 . 清华大学出版社, 2006: 172 195,513 539. 5 (美 )晓云 译 . 第二版 ) 2004: 281 306

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论