软件工程课程设计五子棋游戏
计算机工程系课程设计报告 成绩: 指导教师 (签名) : 课程名称: 软件工程 课程设计题目: 五子棋游戏 班级 2013 2013 级计科级计科(4)(4)班班 姓名许婷娜许婷娜 学号 20152015 年年 1212 月月 2727 日日 目目录录 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 I 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 II 1.1. 引引 言言 1.11.1系统的开发背景(可行性分析)系统的开发背景(可行性分析) 人工智能是一门正在迅速发展的、新兴的、综合性很强的交叉科学。它与生物工程、 空间技术一起被并列为二十一世纪三大尖端技术。它的中心任务是研究如何使用计算机去 做那些过去只能靠人的智力才能做的工作。目前各发达国家都把人工智能作为重点项目, 列入本国的高科技发展计划当中,投入巨大的人力和物力。 随着计算机的普及,网络的飞速发展和网络技术的成熟,计算机成为了集办公、娱乐 于一体的新式工具。它的研究为人工智能带来了很多重要的方法和理论,产生了广泛的社 会影响和学术影响。在这一背景下,网络游戏的需求与日俱增,游戏软件是当今世界发展 最迅速,最有影响力,最有潜力与活力的领域之一。电脑游戏的出现为人们提供了一个新 的娱乐平台,同时也丰富了人们的业余活动。因此与游戏有关的软件深受广大青少年的喜 爱,大多数游戏普通人学几分钟就会玩,甚至连老年人也慢慢爱上了它。 计算机对弈也是其中之一。作为智能研究的一个重要分支,计算机博弈是检验人工水 平的一个重要方面。而五子棋游戏的诞生,更是吸引着不同年龄段的人群,无论男女老少 都可以玩,也都喜欢玩,用电脑来下五子棋是一种时尚。 五子棋游戏是一款较为常见的小游戏,通过双方下棋来实现胜负。五子棋相传起源 于四千多年前的尧帝时期,比围棋的历史还要悠久,可能早在“尧造围棋”之前,民 间就已有五子棋游戏。 有关早期五子棋的文史资料与围棋有相似之处,因为古代五子 棋的棋具与围棋是完全相同的。五子棋的实现价值方面是无法和围棋相比的,但刚好是 这点,造就了五子棋在社会上的可推广性。棋是培养习惯的一个载体,它的作用是为社会 培养更多懂得思考的人才。现阶段五子棋已经逐步被广大群众熟知,因此,一款网络五子 棋小游戏的诞生是符合社会发展趋势和潮流的。 五子棋对弈是计算机博弈中的一种。研究其计算机算法,可以让我们看到人工智能的 雏形,也有助于智力的开发。五子棋是我国发明的,研究它可以让更多的外国人了解五子 棋,这有助于我国优秀文化的推广。 使用 Java 语言开发的五子棋游戏程序,将五子棋游戏移植到网络中,更加符合现代 人的娱乐理念,满足用户异地自由选择游戏对手,实现单机和双人对战的游戏模式。同时, 从游戏的图形界面上优化,使得 Java 五子棋游戏软件具有很强的可操作性。 1 1.21.2 系统简介系统简介 1.2.11.2.1 系统介绍系统介绍 五子棋,又被称为“连五子、五子连、串珠、五目、五目碰、五格、五石、五法、 五联、京棋”。五子棋相传起源于四千多年前的尧帝时期,比围棋的历史还要悠久, 可能早在“尧造围棋”之前,民间就已有五子棋游戏。有关早期五子棋的文史资料与 围棋有相似之处,因为古代五子棋的棋具与围棋是完全相同的。 五子棋是一种两人对弈的纯策略型棋类游戏。五子棋游戏不但容易上手,而且它区别 于别的游戏,它不但能使人娱乐,而且能增长智慧。 对战开始时,先由执黑棋一方将一枚棋子落在天元点上,然后由执白棋一方在黑棋周 围的交叉点上落子。但是,为了尊重对方和礼貌起见,执白棋的一方通常将盘面的第二着 棋步在自己河界的一侧,即直止或斜止。此后黑白双方轮流落子,直到某一方首先在棋盘 的横线、纵线或斜线上形成连续五子,则该方就算获胜。 Java 的广泛流行是与它编写的程序可以在网络上运行且可以跨平台。事实上,支持 Java 的浏览器内置 Java 虚拟机,使得 Java 的小程序能够在网络上完全的传送和运行,这 样使得程序人员及时不具备有关的网络知识,也能编写出高质量的网络通信程序。 本程序是一个基于 Java 的对弈游戏,基本实现了五子棋游戏的一些功能。 我制作的游戏有两种模式:人机对弈和人人对弈,让玩家自己来选择所需要的对弈模 式,进行游戏,同时也实现了其他的基本功能,如外观的选择、棋盘的大小等。 人机对弈主要是通过使用线程调用人工智能算法来实现的。选择人机对战时,人工智 能线程启动。当你落下一个棋子之后,人工智能线程遍历所有棋盘的位置,然后算出所有 棋盘位置的权限值,选择权限值最大的位置落下棋子。然后,再根据赢的条件判定双方的 胜负。 人人对弈主要是让两个不同的玩家在同一台电脑上进行游戏,主要是将人机对战中的 人工智能算法去掉,直接由玩家控制棋子的落点,以此来完成游戏。 1.2.21.2.2 开发本系统所做的工作开发本系统所做的工作 1) 了解五子棋游戏基本运行流程 2) 掌握 Java、JDK 开发技术 3) 熟练应用 myEclipse 进行编程 2 4)熟悉软件开发的流程: 要用软件工程的结构化程序设计方法的思想开发软件。在软件开发步骤上要按照需 求分析、总体设计、详细设计、功能测试一步一步地进行。 2.2. 需求分析需求分析 2.12.1 需求的描述与分析需求的描述与分析 需求分析要根据用户的功能要求、界面以及其他要求进行分析。当然在此需求分析是 根据我自己对五子棋游戏的基本了解以及系统所需要的基本功能来进行的。 为了开发出真正满足用户需求量的软件产品,首先必须知道用户的需求。软件需求中 包括了多个方面来说明用户需求。第一,此系统为智力游戏,适合于各类游戏爱好者,由 于其经典性和游戏的简单