五子棋游戏设计与实现
1.1 系统开发思路(需求分析)
使用C语言,在VC环境下,利用VC绘图库、二维数组的基本操作设计一个双人五子棋对战游戏,某一色五子连珠表示该方胜出。白棋赢: 白棋子率先在一条直线上没有空位布满五个棋子;黑棋赢: 黑棋子率先在一条直线上没有空位布满五个棋子。根据五子棋的游戏规则,需要实现以下需求:
1、输出游戏规则并由用户决定是否遵守并开局;
2、要求动态画出棋盘大小;
3、画棋子并确定其颜色;
4、提示下棋规则;
5、玩家轮流下棋;
6、判断谁先落棋;
7、允许且只允许悔棋一步;
8、判断每局游戏输赢,显示每局游戏的获胜者及分数;
9、判断是否进行下一局;判最终赢家(三局两胜)。
1.2 系统功能设计
根据需求分析的结果,本系统至少要分为以下几个模块:界面提示模块和游戏功能模块。其中游戏功能模块又可以分为输入模块、判断模块、输出模块。
界面提示模块主要展示游戏规则并且提示玩家是否愿意遵守规则。游戏模块中输入模块实现了包括选择先手后手、落子等功能;判断模块的核心功能包括判断是否重下、判断胜负、判断是否悔棋、判断是否和棋等等;输出模块的核心功能包括输出每一小局的结果、输出三局过后的最终结果、提示是否继续下一局等等。
本系统的功能模块图2-1所示。
图2-1 五子棋游戏功能结构图
1.3 系统详细设计
1.3.1数据结构设计
写明使用的结构体类型和静态数组
#defineN 11 //控制棋盘的大小 ,通过点的数量
intv_w = 0;
intv_b = 0;
2.3.2系统实现的各个函数及接口说明
void checkerboard(); //构造棋盘
int Chessman_display(MOUSEMSG m, int n,int(*chess)[N], int i, int j); //在特定的位置显示棋子
void Drop_off(int chess[][N], int order);//操作系统;//order记录先后手
int first_Order_judgment(int