一.回顾
我们上篇文章写了三子棋游戏的菜单以及初始化棋盘(利用的函数是:InitBoard())那么接下来就让我们继续来写这个游戏的其他部分
二.打印棋盘
我们之前说过棋盘本质就是一个二维数组,那么打印棋盘就是打印二维数组中的元素,我们将打印棋盘的代码封装成函数:DisplayBoard()
这个函数与InitBoard()函数一样都需要接收三个参数,分别是:数组名、行、列,那么我们就可以写成以下形式:
DisplayBoard(board,ROW,COL);
相应的我们需要在 game.h 的头文件中定义这个函数,代码如下:
void DisplayBoard(char board[ROW][COL], int row, int col);
定义完函数接下来我们就需要在源文件 game.c 中声明这个函数,代码如下:
void DisplayBoard(char board[ROW][COL], int row, int col){
//语句
}
我们可以看到上篇文章中要求我们打印的棋盘是有分割线的,用来分割数据,所以我们既要打印数据也需要打印分割线,所以我们创建一个for循环,for循环中需要打印数据与分割线,代码如下:
void DisplayBoard(char board[ROW][COL], int row, int col){
int i = 0;
for (i = 0; i < row; i++){
printf(" %c | %c | %c \n",board[i][0],board[i][1],board[i][2]);
//打印数据
printf("---|---|--- \n");
//打印分割线
}
}
我们尝试运行程序就可以发现一个棋盘成功的打印了出来,如图所示:
但是打印的结果与我们之前想象中的有些不同,分割行应该只有两条但是程序中出现了三条,要解决这个问题也很简单我们只要在打印分割行代码前面写入这段代码:
if(i<row-1){
printf("---|---|---\n");
}
这样子问题就解决了,如图所示:
2023/9/3
王起舟