当前位置:文档之家› 软件工程课程设计五子棋游戏

软件工程课程设计五子棋游戏

计算机工程系课程设计报告课程名称:软件工程课程设计题目:五子棋游戏班级 2013级计科(4)班姓名许婷娜学号 ***********2015年12月27日目录1. 引言 (1)1.1系统的开发背景(可行性分析) (1)1.2 系统简介 (2)1.2.1系统介绍 (2)1.2.2开发本系统所做的工作 (2)2. 需求分析 (3)2.1 需求的描述与分析 (3)2.2 需求定义 (3)2.2.1 功能需求 (3)2.2.2 性能需求 (4)3. 系统设计 (4)3.1总体设计 (4)3.1.1设计思想 (4)3.1.2五子棋游戏的功能的结构图 (5)3.2程序设计分析 (5)4. 五子棋游戏的详细设计 (6)4.1五子棋游戏的主窗口界面 (6)4.2五子棋游戏的核心模块的详细设计 (10)4.2.1五子棋游戏程序核心代码 (10)4.2.2五子棋游戏程序主面板与鼠标事件 (13)4.2.3五子棋游戏程序流程图 (17)4.3五子棋游戏的游戏功能模块的详细设计 (18)4.3.1五子棋游戏的开局功能模块 (18)4.3.2五子棋游戏的棋盘功能模块 (18)4.3.3五子棋游戏的模式功能模块 (19)4.3.4五子棋游戏的退出功能模块 (19)4.4五子棋游戏的外观功能模块的详细设计 (19)4.5五子棋游戏的版本功能模块的详细设计 (20)5. 五子棋游戏的测试 (20)5.1系统测试的类型 (20)5.2测试举例 (21)5.2.1测试用户的对弈结果 (21)5.2.2测试用户切换棋盘类型功能 (22)5.2.3测试用户切换模式类型功能 (23)5.2.4测试用户切换外观类型功能 (24)5.2.5测试版本功能 (26)小结 (27)致谢 (28)参考文献 (29)1. 引言1.1系统的开发背景(可行性分析)人工智能是一门正在迅速发展的、新兴的、综合性很强的交叉科学。

它与生物工程、空间技术一起被并列为二十一世纪三大尖端技术。

它的中心任务是研究如何使用计算机去做那些过去只能靠人的智力才能做的工作。

目前各发达国家都把人工智能作为重点项目,列入本国的高科技发展计划当中,投入巨大的人力和物力。

随着计算机的普及,网络的飞速发展和网络技术的成熟,计算机成为了集办公、娱乐于一体的新式工具。

它的研究为人工智能带来了很多重要的方法和理论,产生了广泛的社会影响和学术影响。

在这一背景下,网络游戏的需求与日俱增,游戏软件是当今世界发展最迅速,最有影响力,最有潜力与活力的领域之一。

电脑游戏的出现为人们提供了一个新的娱乐平台,同时也丰富了人们的业余活动。

因此与游戏有关的软件深受广大青少年的喜爱,大多数游戏普通人学几分钟就会玩,甚至连老年人也慢慢爱上了它。

计算机对弈也是其中之一。

作为智能研究的一个重要分支,计算机博弈是检验人工水平的一个重要方面。

而五子棋游戏的诞生,更是吸引着不同年龄段的人群,无论男女老少都可以玩,也都喜欢玩,用电脑来下五子棋是一种时尚。

五子棋游戏是一款较为常见的小游戏,通过双方下棋来实现胜负。

五子棋相传起源于四千多年前的尧帝时期,比围棋的历史还要悠久,可能早在“尧造围棋”之前,民间就已有五子棋游戏。

有关早期五子棋的文史资料与围棋有相似之处,因为古代五子棋的棋具与围棋是完全相同的。

五子棋的实现价值方面是无法和围棋相比的,但刚好是这点,造就了五子棋在社会上的可推广性。

棋是培养习惯的一个载体,它的作用是为社会培养更多懂得思考的人才。

现阶段五子棋已经逐步被广大群众熟知,因此,一款网络五子棋小游戏的诞生是符合社会发展趋势和潮流的。

五子棋对弈是计算机博弈中的一种。

研究其计算机算法,可以让我们看到人工智能的雏形,也有助于智力的开发。

五子棋是我国发明的,研究它可以让更多的外国人了解五子棋,这有助于我国优秀文化的推广。

使用Java语言开发的五子棋游戏程序,将五子棋游戏移植到网络中,更加符合现代人的娱乐理念,满足用户异地自由选择游戏对手,实现单机和双人对战的游戏模式。

同时,从游戏的图形界面上优化,使得Java五子棋游戏软件具有很强的可操作性。

1.2 系统简介1.2.1系统介绍五子棋,又被称为“连五子、五子连、串珠、五目、五目碰、五格、五石、五法、五联、京棋”。

五子棋相传起源于四千多年前的尧帝时期,比围棋的历史还要悠久,可能早在“尧造围棋”之前,民间就已有五子棋游戏。

有关早期五子棋的文史资料与围棋有相似之处,因为古代五子棋的棋具与围棋是完全相同的。

五子棋是一种两人对弈的纯策略型棋类游戏。

五子棋游戏不但容易上手,而且它区别于别的游戏,它不但能使人娱乐,而且能增长智慧。

对战开始时,先由执黑棋一方将一枚棋子落在天元点上,然后由执白棋一方在黑棋周围的交叉点上落子。

但是,为了尊重对方和礼貌起见,执白棋的一方通常将盘面的第二着棋步在自己河界的一侧,即直止或斜止。

此后黑白双方轮流落子,直到某一方首先在棋盘的横线、纵线或斜线上形成连续五子,则该方就算获胜。

Java的广泛流行是与它编写的程序可以在网络上运行且可以跨平台。

事实上,支持Java的浏览器内置Java虚拟机,使得Java的小程序能够在网络上完全的传送和运行,这样使得程序人员及时不具备有关的网络知识,也能编写出高质量的网络通信程序。

本程序是一个基于Java的对弈游戏,基本实现了五子棋游戏的一些功能。

我制作的游戏有两种模式:人机对弈和人人对弈,让玩家自己来选择所需要的对弈模式,进行游戏,同时也实现了其他的基本功能,如外观的选择、棋盘的大小等。

人机对弈主要是通过使用线程调用人工智能算法来实现的。

选择人机对战时,人工智能线程启动。

当你落下一个棋子之后,人工智能线程遍历所有棋盘的位置,然后算出所有棋盘位置的权限值,选择权限值最大的位置落下棋子。

然后,再根据赢的条件判定双方的胜负。

人人对弈主要是让两个不同的玩家在同一台电脑上进行游戏,主要是将人机对战中的人工智能算法去掉,直接由玩家控制棋子的落点,以此来完成游戏。

1.2.2开发本系统所做的工作1)了解五子棋游戏基本运行流程2)掌握Java、JDK开发技术3)熟练应用myEclipse进行编程4)熟悉软件开发的流程:要用软件工程的结构化程序设计方法的思想开发软件。

在软件开发步骤上要按照需求分析、总体设计、详细设计、功能测试一步一步地进行。

2. 需求分析2.1 需求的描述与分析需求分析要根据用户的功能要求、界面以及其他要求进行分析。

当然在此需求分析是根据我自己对五子棋游戏的基本了解以及系统所需要的基本功能来进行的。

为了开发出真正满足用户需求量的软件产品,首先必须知道用户的需求。

软件需求中包括了多个方面来说明用户需求。

第一,此系统为智力游戏,适合于各类游戏爱好者,由于其经典性和游戏的简单性,各类人士都可以玩。

第二,人们在与电脑对战、享受娱乐的同时也能体会到自己智力的提升。

通过需求分析阶段对五子棋的整个应用情况作全面的、详细的调查,确定五子棋游戏的目标,收集支持系统总的设计目标的基础数据和并对这些数据进行分析,确定游戏者的需求,并把这些写成用户和游戏设计者都能够接受的文档。

事实上,需求分析是数据开发中最难的任务之一。

2.2 需求定义2.2.1功能需求该款游戏主要由以下几个模块组成:(1)人人对弈模式:选择该模式可以实现人与人之间的对弈,系统默认黑棋先下,然后玩家之间交替下棋,同时系统能够准确判断哪一方先将五子连成一行,即获胜者。

如果有一方获胜,则提示玩家是赢还是输,并由玩家决定是否重新开局。

(2)人机对弈模式:选择该模式可以实现人与电脑之间的对弈,系统默认玩家先下,玩家是黑棋,然后人与电脑之间交替下棋,同时系统能够准确判断哪一方先将五子连成一行,即获胜者。

如果有一方获胜,则提示玩家是赢家还是输家,并由玩家决定是否重新开局。

(3)自由选择棋盘大小:此功能用户可以根据需要选择棋盘大小,分为“标准棋盘”、“改进棋盘”和“扩大棋盘”三种。

如果对弈双方水平相差较大,不出几个回合就出现了获胜方,那么小些的棋盘就完全能够满足用户的需要;如果对弈双方水平旗鼓相当,一时难分谁赢谁输,那么小些的棋盘就无法满足用户的需要,用户需要更大的棋盘来进行长时间的对弈。

因此这项功能是非常必要的。

(4)自由选择棋盘外观:此功能用户可根据自己的喜好来选择棋盘的外观,分为“类型一”“类型二”“类型三”三种。

由于每个人对外观的喜好不一样,因此这个功能也是非常必要的。

2.2.2性能需求该款五子棋游戏功能虽然简单,但最重要的还是实现了“人人对弈”和“人机对弈”功能。

该游戏能够很好的在这两种模式下自由转换。

人人对弈模式可以满足对弈双方的游戏需求,也能提高对弈双方的水平和能力。

同时,在一时找不到对手的情况下,人机对弈能够满足玩家的游戏需求。

在玩家是新手的情况下,人机对弈能够给与新手一定的帮助,同时也能提高新手的游戏水平。

3. 系统设计3.1总体设计3.1.1设计思想(1)本程序要实现五子棋的游戏功能,必须要有一个棋盘,所以,通过继承JPanel,然后在JPanel上画出一个14*14的棋盘,另外还有三个按钮:游戏、外观和版本,提醒用户进行相应的操作。

当然,JPanel必须放在JFrame中,所以,又通过继承JFrame得到一个实例。

(2)对于下棋的操作,通过对JPanel增加鼠标事件监听器MouseListener,每次当用户点击鼠标时,先取得点击的坐标值,然后换算成对应棋盘上(即棋盘数组)的位置(数组的下标)。

(3)判断此处是否已经有棋子。

如果有,则玩家不能再次在此处下子;如果没有,则通过Java里的画图函数在此处画上棋子,重新刷新输出棋盘。

(4)判断该颜色棋子的上下左右是否满足连续五个,是的话提醒相应玩家获胜,不是的话,更换玩家下棋。

对于玩家的更换是程序自动的,每次用户点击鼠标后,若本局还未结束则会变换玩家,从而画出对应的黑方白方的棋子,直到有一方获胜为止。

3.1.2五子棋游戏的功能的结构图图3.1 五子棋游戏结构图3.2程序设计分析(1)本款游戏有“游戏”、“外观”和“版本”三个选项。

其中“游戏”包括“开局”、“棋盘”、“模式”、“退出”四个选项;“外观”则包含“类型一”、“类型二”、“类型三”三个选项;“版本”包含“关于”一个选项。

“棋盘”又包含了“标准棋盘”、“改进棋盘”和“扩大棋盘”;“模式”包含了“人机对弈”和“人人对弈”。

(2)绘制棋盘。

以标准棋盘为例,绘制14条横线,14条竖线,在直线交点处下棋子,棋子为实心黑白圆形。

(3)首先程序会判断是人机对弈模式还是人人对弈模式。

若是人机对弈模式,则是玩家先下,玩家为黑棋,电脑为白棋;若是人人对弈模式,则是为黑棋的玩家先下,而后是白色棋子的玩家下。

不论哪种模式,都是黑白交替下子。

(4)棋盘处于鼠标监听状态。

相关主题