0
点赞
收藏
分享

微信扫一扫

C语言数组(12)——写一个三子棋游戏(3)

一.回顾

我们上篇文章主要介绍了棋盘的打印,我们用到了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

王起舟 


举报

相关推荐

0 条评论