C语言 实现 tic-tac-toe

这是一个开源项目,提供PVP和PVE模式的棋盘游戏,玩家可以控制一个或两个角色进行对战。游戏允许自定义获胜条件,并能调整棋盘大小。已进行PVE测试,确保无误。欢迎在评论中提出问题,或者给予支持。

已传入github,可直接下载:

https://github.com/frankRenlf/c_programs.githttps://github.com/frankRenlf/c_programs.git

 可以选择pvp对战,两人对战,当然也可以一个人控制两个

也可以pve对战人机,只能操控一个人,另一个自动生成

可自由选择获胜条件,几点一线都行,

但是如需控制棋盘的上限,需要去改变最初定义的ROW,COL

以下是pve测试,判断全部通过,程序无bug 

 

有问题可在评论指出,觉得还行就给个赞和关注吧

C语言实现井字棋游戏是一个不错的练习项目,主要涉及二维数组的运用以及整个游戏逻辑的构建,能够巩固代码能力和训练解决具体问题的思路 [^2]。 一般的井字棋为3*3的格式,但可以设计成能任意调节为n*n的编译方法,规则是人与电脑任意一方标记成横、竖、斜任意一种直线时获胜 [^1]。 以下是实现井字棋游戏的一些关键部分: - **棋盘打印**:可以用简单的竖线和空格打印一个棋盘,示例代码如下: ```c void showBoard(char Board[ROW][COL], int row, int col) { int r = 0; int c = 0; printf("\n------------\n"); for (r = 0; r < ROW; r++) { for (c = 0; c < COL; c++) { if (c == 2) { printf(" %c ", Board[r][c]); } else { printf(" %c ", Board[r][c]); printf("|"); } } printf("\n------------\n"); } printf("\n"); } ``` - **玩家下棋函数**:遵循只有空格处才能下棋,落过子的地方不能再下子的规则,同时要注意用户理解的棋盘坐标是从1开始的,与数组从0下标开始不同。示例代码如下: ```c void PlayerInput(char(*arr)[COL], int row, int col) { int x = 0; int y = 0; printf("玩家回合:\n"); printf("请输入要下棋的坐标(中间用空格隔开):"); while (scanf("%d%d", &x, &y)==2) { while (getchar() != '\n') { ; } if (x >= 1 && x <= row && y >= 1 && y <= col) { if (arr[x - 1][y - 1] == ' ') { arr[x - 1][y - 1] = 'O'; break; } else { printf("此处已下过棋子,请重新下子:"); } } else { printf("非法输入,请重新输入:"); } } } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Frank.Ren

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值