一.回顾
我们上篇文章主要介绍了棋盘的打印,我们用到了DisplayBoard()函数,那么我们现在就需要来实现玩家下棋这一操作
二.玩家下棋功能的实现
与前几个函数一样我们将玩家下棋功能代码封装成一个函数,命名为PlayerMove()函数,我们前面说过玩家下棋的本质就是将数据填进二维数组中的元素中,那么这个函数我们也给它三个参数,分别是:board, ROW , COL ,所以我们可以写如下代码:
test.c:
PlayerMove(board,ROW,COL);
与前面相同,在使用自定义函数的时候需要先进行定义,所以我们在game.h的头文件中写入以下代码:
void PlayerMove(char board[ROW][COL],int row ,int col);
定义完函数后我们就可以来实现这个函数了,我们在game.c中写入以下代码
void PlayerMove(char board[ROW][COL],int row,int col){
//语句
}
我们既然要让玩家下棋那么势必就需要玩家输入坐标,这里我们用变量 x y 来表示玩家落子的坐标,则我们需要玩家线输入坐标,代码如下:
void PlayerMove(char board[ROW][COL],int row,int col){
int x = 0;
int y = 0;
printf("请输入坐标:");
scanf("%d%d",&x,&y);
}
获取完玩家输入的坐标我们还需要判断玩家输入的坐标是否合法,如果输入了超出数组大小的坐标我们就需要提示玩家输入非法,代码如下:
if(x>=1 && x<=row && y>=1 && y<=col)
{
//语句
}else{
printf("坐标非法,请重新输入!\n");
}
当玩家下棋时我们还需要判断棋盘是否被占用了,如果未被占用则将数据传入数组,若被电脑占用则提示玩家位置被占用,代码如下:
if(board[x-1][y-1] == ' '){
board[x-1][y-1] = '*';
break;
}else{
printf("棋盘被占用,请重新选择位置!\n");
}
2023/9/4
王起舟