软件综合设计报告

  • 格式:doc
  • 大小:1.54 MB
  • 文档页数:10

下载文档原格式

  / 10
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验七:书写软件综合设计报告

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