三子棋(井字棋)(C语言实现的步骤和代码)

三子棋(井字棋)

一、问题前述
二、基本流程
三、详细步骤
1.创建菜单界面
2.创建棋盘
3.棋盘初始化
4.打印棋盘
5.玩家落子
6.电脑落子
7.判断胜负
四、结果演示
1.玩家胜利
2.电脑胜利
3.和棋
五、完整代码

一 、问题前述

用C语言实现三子棋

二、基本流程

用二维数组创建一个棋盘。
‘x’表示玩家
‘o’表示电脑玩家
游戏流程:
1.创建棋盘,并且初始化(把所有位置设置为空)。
2.打印棋盘。
3.玩家进行落子(玩家通过输入坐标来进行落子)。
4.判定胜负。
5.电脑落子(电脑随机落子)。
6.判定胜负。

三、详细步骤

1.创建菜单界面

1.开始游戏。
0.退出游戏。

int menu() {
   
	printf("--------------------------\n");
	printf("--------1.开始游戏--------\n");
	printf("--------0.退出游戏--------\n");
	printf("--------------------------\n");
	int choice = 0;
	printf("请输入你的选择:");
	scanf("%d", &choice);
	return choice;
}

2.创建棋盘

棋盘:创建一个3*3的二维数组,每个元素都是一个char类型。

这里我们使用宏定义
目的是为了之后更易于理解,并且方便扩展棋盘大小。

#define MAX_ROW 3
#define MAX_COL 3

3.棋盘初始化

将二维数组里所有的元素都填充 ’ ’ 表示棋盘的空白区域。

void init(char chess[MAX_ROW][MAX_COL]) {
   
	for (int row = 0; row < MAX_ROW; row++) {
   
		for (int col = 0; col < MAX_COL; col++) {
   
			chess[row][col] = ' ';
		}
	}
}

4.打印棋盘

void print_chessBoard(char chessBoard[MAX_ROW][MAX_COL]) {
   
	for (int row = 0; row < MAX_ROW; row++) {
   
		for (int col = 0; col < MAX_COL; col++) {
   
			printf("%c", chessBoard[row][col]);
		}
		printf("\n");
	}

}

在这里插入图片描述
这里我们打印了一个看不到的简易棋盘,
好像不太容易理解。
接下来我们通过一些符号和线条来使棋盘稍微美观可见一些

void print(char chess[MAX_ROW][MAX_COL]) {
   
	printf("+---+---+---+\n");
	for (int row = 0; row < MAX_ROW; row++) {
   
		printf("|");
		for (int col = 0; col < MAX_COL; col++) {
   
			printf(" %c |", chess[row][col]);
		}
		printf("\n+---+---+---+\n");
	}
}

这下可以看到棋盘的样子了
在这里插入图片描述

5.玩家落子

告诉玩家输入坐标实现落子
玩家落子后在棋盘上用 ‘x’ 表示。


注意:
1.玩家输入的落子坐标必须在棋盘内。
2.不能在有子的地方落子。
3.落子坐标如果在棋盘外或者有子的地方需重新落子。

void plearMove(char chessBoard[MAX_ROW][MAX_COL]) {
   
	printf("玩家落子...\n");
	while (1) {
   
		printf("请输入坐标(row col): ");
		int row = 0;
		int col = 0;
		scanf("%d %d", &row, &col);
		if (row < 0 || row >= MAX_ROW || col < 0 || col >= MAX_COL) {
   
			printf("您的输入有误,请重新输入\
  • 10
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值