我们将五子棋的棋盘用二维字符数组来进行表示,如何在其中一方下完棋之后判断场上的胜负呢?
五子棋盘用空格表示空位置,用字符*和#表示玩家,判断模块使用函数:
char if_win(char board[ROW][COL], int row, int col, int WIN);
这里提供了一种简单的遍历算法:
这是一个棋盘
判断胜负的方式有两种情况:
1,判断方式
这个棋盘是一个14*14的正方形,将棋盘数据用宏定义常量来存储,同时存下胜利需要的连珠个数
#define ROW 14
#define COL 14
#define WIN 5
以从左向右判断为例:定义一个变量flag=1
如果这个位置和右侧的子相同且不为空,就把flag的值加1。如果不符合上面的条件,就将flag设为1;flag值到了胜利条件:检测到连珠成立,则返回这个位置的字符,表明胜方,结束判断过程。不符合,一行检测完之后,换到下一行,继续检测,遍历所有的行。
flag1 = 1;
for (int b = 0; b < row-1; b++)
{
if ((board[b][a] == boar