软件综合设计报告

更新时间:2023-06-08 08:20:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验七:书写软件综合设计报告 附录A:软件综合设计报告格式

[封面] (注:每个同学的报告都要有封面,独占一页。用小四号宋体,行距18

-22磅,报告中可加上适当的小图形)

软件综合设计报告

设计题目:人机五子棋游戏软件

浙江师范大学 数理与信息工程学院 班级:计算机科学与技术121

报告人姓名: 王丹妮 学号:12190111 承担角色: 组员

同组组长: 涂文婷 同组其他成员:无

课程教师: 贾泂 实验指导教师:贾泂

实验地点:20-206

完成起止日期:2015/6/16—2015/6/23

[正文]

一、课程设计概述(目的、任务、开发环境、参考资料)

1.目的

五子棋是起源于中国古代的传统的黑白棋中之一。它不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。随着社会的发展,越来越多人接触和使用计算机,网上进行的棋类运动也随之普及。许多人喜欢上了下棋,但有时又苦于没有对手。作为一个计算机专业的学生,我对五子棋有很浓厚的兴趣,对计算机人机对弈智能算法如何与人脑对抗产生了极大的兴

趣,当然人机对弈的算法有很多种,许多人也对此有所研究。有些算法的智能程度甚至已经与人脑不相上下。这类程序的开发最重要的莫过于智能算法的实现,然后就是判断胜负的方法。完成项目作业,锻炼编程能力,培养思维,我们小组决定开发一个能够进行人机对战的五子棋游戏软件。

2.任务

以C#作为编译环境,实现五子棋的基本功能,达到界面整洁漂亮,游戏性强。

3.运行环境

编译调试环境:vs2010 C#编译环境;

运行系统环境:安装有微软.NET Framework 3.5的windows操

作系统

4.参考资料

[1] GB8567——88. 概要设计说明书.

[2] 王志新. 五子棋实战技巧. 江苏科学技术出版社, 2002.

[3] 中国五子棋网. /

二、项目的可行性研究与需求分析

1. 系统可行性研究

项目组成员熟知五子棋游戏的各项规则,熟悉项目开发环境,有一定的项目的开发经验,其中项目组涂文婷同学还有五子棋核心算法设计经验,更为重要的是项目组成员均对本项目的开发具有强烈的兴趣,有信心完成本项目的开发工作。在时间上也是可以完成的。综上所述,本系统在技术上是可行的。

不仅如此,五子棋游戏简单易学,为人民群众所喜闻乐见;本项目开发的五子棋游戏功能强大,界面友好,帮助文件详尽明确,用户在使用方面不存在任何障碍。综上所述,本项目在使用方面是可行的。

2. 系统需求分析

2.2 功能需求分析

系统的基本功能需求分析如下:

(1)游戏进入界面需要用户登录;

(2)进入游戏之后,显示一个十五行十五列的五子棋的棋盘及菜单。在界面上可以在棋盘落子操作和菜单操作之间进行切换,用鼠标来控制;

(3)在棋盘点击对应位置,可以落子,棋盘上将由黑白子显示相应的棋子,并且棋子在横纵交点处;

(4)对战的过程中有悔棋的功能;

(5)游戏的过程中会有历史落子点显示;

(6)可以自动判断胜负,胜利一方形成一列的五个或5个以上的棋子,显示是黑方或者白方已经胜利的字样,并且停止落子的功能;

(7)有投降和保存棋局的功能。

2.3 非功能需求分析

非功能需求如下:

(1)在程序运行的过程中程序不能崩溃,更不能使系统出现问题,造成灾难性的后果;

(2)希望在此项目的基础上不做改动或做很少的改动就能在其他的系统或设备上运行;

(3)界面清晰容易看懂,方便玩家操作;

(4)游戏运行速度不能太慢,要反应及时,以免影响玩家的兴趣。

三、项目设计的基本原理和采用的主要方法与技术

整个系统主要有两个地方比较难以实现,一个就是判断此时哪一方有更大的获胜可能,另一个就是判断我们的落子位置。前者我们是通过判断是否有5个相同的棋子连在一条线上。以一个棋子为中心,有4条线可以形成五子连线.中心棋子即为最后一步所下棋子,以水平方向为例,从中心棋子出发(设为白子),先向左进行判断,若棋子为白子,则计数器加1(初始值为1),否则(为黑子或无子),则返回中心棋子,向右进行判断,进行相同操作。水平方向判定结束后,若计数器为5,则判白子胜,否则,计数器归1,再从竖直、两个斜向按顺序进行判定。棋盘的每个坐标有3个状态,分别为无子(标记为0),白子(标记为1),黑子(标记为2),对棋盘点进行判断时,只需判定其所在状态即可。若棋盘下满,仍未有五子连线,则判和。

而下一步的落子地方,我们可以通过利用计算机的超强的计算能力,通过计算在以后的几步中出现的多种可能性中,哪一种可能性最有利于获胜来找到落子位置。遍历整个棋盘,找出所有空白点,在每个空白点判断与该点相邻的4个方向上各方连续的棋子数,在每一个方向上,判断白子和黑子的连续的个数,判断活3,冲4等各种棋形状况,为各种状况赋权值。然后将该方向上的权值返

回,将每个空白点的各个方向的权值相加,为该点权值。令设计一个数组,储存每个空白点权值,然后在遍历整个棋盘空白点,计算出每个空格点,找出权值最大点,也就是当前情况下,电脑最应该落子的点。返回权值最大的点的坐标。

四、本人实现项目的过程与步骤

确定项目的题目;

撰写立题的目的;

撰写项目的可行性研究报告;

撰写软件综合设计说明书(软件的详细设计)

进行界面的美化(这块代码的编写)

项目完成后对各个功能的测试。

五、个人遇到的困难与获得的主要成果(本节内容不得少于2页)

本次项目是我与涂文婷共同订的选题,由于此次课程的要求,我们决定做这个人机五子棋软件,由于这个游戏简单易学,游戏软件较小,较易完成,为了锻炼自身的编程能力,培养思维,巩固对c#语言进行程序设计、数据库建立的基本方法。了解和掌握游戏开发的原理与方法。但是我在代码编写上有很大的困难,但是好在通过组长和教师的帮忙,还是最终顺利的完成了这次项目。在本次项目中我深有体会的是要完成一个程序,先要建立一个完整的系统架构和设计模式,由于我对代码的不熟悉,所以我主要负责文件的撰写和系统架构的设计。在建立过程中,我们对代码的组织并不是很好,由于对这个程序思考的不够深入,导致我们在后期进行算法的改进和功能上的添加就遇到了困难,但是基本架构已经完成,所以我们只能在原来的基础上进行修改和补进,在同学和老师的帮助下最后我们项目所预期的功能全部实现了。在本次的项目中我主要负责了前期的准备,关于五子棋游戏软件资料的收集与整理,撰写可行性研究报告。调查和研究了人机五子棋的可行性。在后期我负责软件的美化与测试,对于美化,我对界面进行了色彩的设计,虽然不算高端大气,但也增加了可爱的元素,带有了趣味性,使整个游戏活泼生动其来,在界面的布局上我们讨论没有花多久的时间,但是在实现和测试的过程中花了很长的一段时间,在整个项目的实施过程中,写的东西很

多,多数都需要测试和实验,考虑的不会很周全,需要改写的地方也很多,我们也会经常加班加点的改写。我们相对来讲是把画界面的时间往后推了几天的,而用了五天左右的时间好好的把数据库进行设计,每一个人分开的模块都是联系的相当的紧密,这给我组合项目阶段带来了较大的困难,而且测试起来也不方便,很多时候出了问题都不知道到底是哪一个部份出了问题,所以我在组合的时候基本上都是把他们的代码几乎都看了一遍。但尽管这样,还是庆幸当时的决定,就是先把数据库文件做好,要不是这样,我们后面的问题会严重的多。后期也不断反复进行测试,总之我们还是基本上把人机五子棋游戏软件的所有功能都实现的差不多了,项目开发流程的锻炼的目的是达到了的。 我们基本完成了项目的可行性研究报告,项目的需求规格说明书,软件的详细设计说明、代码实现、测试、操作手册。

六、测试与运行记录

登录界面包含:登录、退出、忘记密码、新建用户按钮,见下图:

登录成功显示结果见下图:

点击忘记密码按钮结果见下图:

点击新建用户按钮结果显示见下图:

游戏界面包含:开始游戏、重新开始、悔棋、投降、保存棋局、加载棋局按钮,及先手选择框。

点击开始游戏后悔棋、投降、重新开始按钮将被开启,且可点击棋盘下棋,显示结果见下图:

点击投降按钮,将出现提示框,见下图:

若游戏出现胜者将显示结果见下图:

保存棋局(图1.1)和加载棋局(图1.2)的显示见下图:

图1.1 图1.2

七、课程设计完成结果分析与个人小结

课程设计完成结果分析:

在实施这次游戏软件的开发,已经完成了撰写此次游戏软件开发的可性报告,说明此次的游戏软件可以进行开发。以及软件的详细设计说明。(系统的结构,实现的功能,利用哪些原理)。在测试过程中,完成了登陆界面的设计,可以进行登录和退出,已经可以进行人机五子棋游戏。我们在游戏的过程中也设计了一块位置显示历史下棋的步骤。可让玩家游戏的过程中清楚地看到自己和电脑下的历史步骤,有助于玩家查看。在各个模块测试后,已经基本成功完成各个模块和功能的实现。

个人小结:

在项目实现的过程中,我学到了很多东西,在实践的能力上有所提高,真正做到了学以致用,在这短短的几周时间内,获得了宝贵的经验,相信一定会为我今后的成功奠定一些基础。在大学三年中,软件项目开发对我来说比较抽象,一个完整的项目要怎么分工及完成项目所要的基本步骤也不明确。而这次实践过程中,让我知道一个完整的项目开发,需要团队来分工合作,在每个阶段中进行必

要的总结。一个完整的项目开发它所要经历的阶段包括:项目的可行性研究报告,项目的需求规格说明书,软件的详细设计说明、代码实现、测试、操作手册。必须要有一个好的远景规划,这样才能在预定的时间内完成项目和项目计划所要实现的功能,一个好的软件详细说明书对一个项目的开发有着明确的指引作用,使我们对这个项目所要实现的功能在总体上有具体的认识,并在开发的过程中沿着既定的步骤一步步做下去,就不容易出错。代码的实现是一个项目开发成功与否的关键,可以说,前面所做的事情就是为代码的实现做铺垫。后期的美化与测试是为了更多使用这个软件的人喜爱上这个游戏软件。并在真实游戏时不会发生不必要的错误。感谢老师的培训,和组长涂文婷的帮助,希望在今后的生活学习与工作中充分发挥自己的作用将所学到的知识运用到生活实践中。可以说在我们毕业之前,这次软件实训意义重大,在以后的工作、学习中相信大家会非常努力,继续充实、完善自己,让自己争当一名对社会有所贡献的人!

注:课程设计报告着重说明个人所做工作、成果和体会,即四、五、七部分,页数控制在12页之内。报告不得与他人雷同,否则影响成绩,严重者无成绩。

本文来源:https://www.bwwdw.com/article/exd1.html

Top