C语言版三子棋游戏实现代码
三子棋是一款简单而又有趣的策略游戏,它可以锻炼我们的思考和逻辑能力。本文将介绍如何使用C语言实现三子棋游戏。
1.游戏规则
三子棋是一种简化版的五子棋,在一个3x3的方格中进行。玩家轮流将黑子或白子放入空格中,谁先使三个相同颜色的棋子在同一直线上(包括横线、竖线、对角线)相连,谁就赢得胜利。
2.实现思路
在实现三子棋游戏时,需要考虑以下几个方面:
2.1 游戏的显示界面
在游戏开始前,需要先显示游戏界面,以便玩家在游戏中操作。可以使用字符数组来表示游戏界面,以便随时更新棋盘上的棋子位置。
2.2 棋子的落子位置
玩家可以选择在棋盘上落子,需要获取玩家输入的坐标位置,然后在棋盘上更新对应的棋子。
2.3 游戏的输赢判断
在玩家每次落子后,需要进行游戏的输赢判断,即判断是否有三个相同颜色的棋子在同一直线上相连。如果有,则判定该玩家为赢家。
3.代码实现
以下是使用C语言实现三子棋游戏的代码。
#include <stdio.h>
void show_board(char board[3][3])
{
printf("
");
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
printf("%c ", board[i][j]);
}
printf("
");
}
printf("
");
}
int check_win(char board[3][3], char player)
{
for (int i = 0; i < 3; i++) {
if (board[i][0] == player && board[i][1] == player && board[i][2] == player) {
return 1;
}
if (board[0][i] == player && board[1][i] == player && board[2][i] == player) {
return 1;
}
}
if (board[0][0] == player && board[1][1] == player && board[2][2] == player) {
return 1;
}
if (board[2][0] == player && board[1][1] == player && board[0][2] == player) {
return 1;
}
return 0;
}
int main()
{
char board[3][3] = {{'-', '-', '-'}, {'-', '-', '-'}, {'-', '-', '-'}};
char player = 'X';
int row, col;
printf("Welcome to the game of Tic Tac Toe!
");
printf("Player 1 is X and Player 2 is O.
");
show_board(board);
for (int i = 0; i < 9; i++) {
printf("Player %c, enter row (0-2): ", player);
scanf("%d", &row);
printf("Player %c, enter col (0-2): ", player);
scanf("%d", &col);
if (board[row][col] == '-') {
board[row][col] = player;
} else {
printf("Invalid move. Please try again.
");
i--;
continue;
}
show_board(board);
if (check_win(board, player)) {
printf("Player %c wins!
", player);
return 0;
}
if (player == 'X') {
player = 'O';
} else {
player = 'X';
}
}
printf("It's a tie!
");
return 0;
}
在上述代码中,我们使用char类型的二维数组board来表示棋盘,'-'表示该位置未落子,'X'表示玩家1的棋子,'O'表示玩家2的棋子。
在游戏的主循环中,先提示当前玩家,然后获取玩家的输入坐标位置,并进行输入的有效性检查。如果输入的坐标位置已经存在棋子,则提示无效输入,并重新获取输入。然后更新棋盘上对应位置的棋子,显示棋盘,并进行输赢判断。
check_win函数用来判断当前玩家是否赢得了比赛,通过判断棋盘中是否有三个相同的棋子在同一直线上即可。
4.运行结果
以下是运行上述代码的结果:
Welcome to the game of Tic Tac Toe!
Player 1 is X and Player 2 is O.
- - -
- - -
- - -
Player X, enter row (0-2): 1
Player X, enter col (0-2): 1
- - -
- X -
- - -
Player O, enter row (0-2): 0
Player O, enter col (0-2): 0
O - -
- X -
- - -
Player X, enter row (0-2): 0
Player X, enter col (0-2): 1
O X -
- X -
- - -
Player O, enter row (0-2): 2
Player O, enter col (0-2): 0
O X -
- X -
O - -
Player X, enter row (0-2): 2
Player X, enter col (0-2): 2
O X -
- X -
O - X
Player X wins!
