课程设计说明书

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

课程设计说明书

设计题目:黑白棋游戏

学院、系:

专业班级:

学生姓名:

指导教师:

成绩:

2008 年 6 月28 日

目录

一.需求分析-----------------------------------------------------------(1)

a)设计任务-----------------------------------------------------------(1)

b)设计要求-----------------------------------------------------------(1)

二.详细设计-----------------------------------------------------------(1)

a)使用数据及结构定义-------------------------------------------(1)

b)程序中的主要函数----------------------------------------------(2)

c)函数调用及流程图----------------------------------------------(5)

三.调试分析-----------------------------------------------------------(8)

a)调试过程----------------------------------------------------------(8)

b)设计与实现的回顾和分析-------------------------------------(8)

c)设计的体会与感受----------------------------------------------(8)

四.用户手册-----------------------------------------------------------(9)

a)游戏说明----------------------------------------------------------(9)

b)操作说明------------------------------------------------------------(9)

五.测试结果----------------------------------------------------------(9)六.附录---------------------------------------------------------------(11)

1)需求分析

设计任务:制作一个五子棋游戏程序,能实现人与电脑一起下五子棋且能够公平地判断最后的输赢。

设计要求:棋盘的大小为15×15, 输入的方式为键盘输入,输出为黑屏输出,输入的范围为1到9,A到F;输出的形式为#(表示黑子棋)或0(表示白子棋)。

2)详细设计

使用数据及结构定义:

1.二维数组棋盘格子状态“m_gridState[][]”

存储大小: size×size,既为15×15.

存储元素:字符串类型

基本操作:取数组元素的值

2.二维数组棋盘格子分数“m_gridMark[][]”

存储大小:size×size,size默认该为15.

存储元素;int类型,记录每个格子的分数

基本操作:取数组元素的值

3 程序中所用到的一些类的定义:

class chessboard

{

public:

chessboard();

~chessboard();

void outputStates() const; 功能: 根据棋盘状态输出棋盘, 黑棋|白棋|空分别用'#'|'O'|' '表示 void updateMarks(states chessmanColor); 功能: 更新棋盘各个格子的分数

void renew();功能: 重新初始成员数据的值

void setGridState(const point& pt, states gridState); 功能: 设置棋盘上的一个格子的状态,分black white blank

states getGridState( const point& pt); 功能: 得到棋盘上的一各格子的状态,分black white blank void getMaxGridMark( point& pt ) const; 功能: 得到棋盘分数最大的格子

states m_gridState[size][size]; 棋盘各个格子的状态

private:

int m_gridMark[size][size]; 棋盘各个格子的分数*/

void initiGridMark();功能: 初始棋盘上各个格子的分数

void updateGridMark(const point& pt, states chessmanColor); 功能: 更新棋盘单个格子的分数

class gobangPlayer

{

public:

gobangPlayer();

~gobangPlayer();

void setMove(char x, char y);

void getMove(char& x, char& y);

void autoMove(); 功能: 自动下棋

bool checkMove(); 功能: 检查棋步的合法性.

void setChessmanColor(states color);功能: 设置棋子颜色

bool isWin(); 功能: 检查是否胜利

static chessboard m_chessboard;

static unsigned int count;

point m_Move; 存储棋步

private:

states m_chessmanColor; 棋子颜色

};

程序中的主要函数:

void displayInformation(void);

// 函数名: displayInformation

// 功能: 打印信息

// 参数: void

// 返回值: void

bool isPlayAgain(void);

// 函数名: isPlayAgain

// 功能: 询问是否继续游戏

// 参数: void

// 返回值: bool 如果继续游戏, 返回true, 否则返回flase

char getChoice(void);

// 函数名: getChoice

// 功能: 决定先手还是后手

// 参数: void

// 返回值: char 先下, 返回'1'; 后下, 返回'2'

void input(char* A, char* B, int max);

// 函数名: input

相关文档
最新文档