课程设计说明书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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