三子棋c语言代码
时间: 2023-07-10 11:18:25 浏览: 50
以下是一个简单的三子棋游戏的C语言代码,希望对你有所帮助:
```
#include <stdio.h>
#include <stdlib.h>
char board[3][3]; // 棋盘
void initialize_board() {
int i, j;
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
board[i][j] = ' ';
}
}
}
void print_board() {
int i, j;
printf(" 1 2 3\n");
for (i = 0; i < 3; i++) {
printf("%d ", i+1);
for (j = 0; j < 3; j++) {
printf(" %c ", board[i][j]);
if (j != 2) {
printf("|");
}
}
printf("\n");
if (i != 2) {
printf(" -----------\n");
}
}
printf("\n");
}
int check_win(char player) {
int i, j;
// 检查行
for (i = 0; i < 3; i++) {
if (board[i][0] == player && board[i][1] == player && board[i][2] == player) {
return 1;
}
}
// 检查列
for (j = 0; j < 3; j++) {
if (board[0][j] == player && board[1][j] == player && board[2][j] == player) {
return 1;
}
}
// 检查对角线
if (board[0][0] == player && board[1][1] == player && board[2][2] == player) {
return 1;
}
if (board[0][2] == player && board[1][1] == player && board[2][0] == player) {
return 1;
}
return 0;
}
int main() {
int x, y, turn = 0;
char player = 'X';
initialize_board();
while (1) {
printf("Player %c's turn\n", player);
print_board();
printf("Enter coordinates (x,y): ");
scanf("%d,%d", &x, &y);
if (x < 1 || x > 3 || y < 1 || y > 3) {
printf("Invalid coordinates. Please try again.\n");
continue;
}
if (board[x-1][y-1] != ' ') {
printf("That spot is already taken. Please try again.\n");
continue;
}
board[x-1][y-1] = player;
if (check_win(player)) {
printf("Player %c wins!\n", player);
print_board();
break;
}
turn++;
if (turn == 9) {
printf("It's a tie!\n");
print_board();
break;
}
player = (player == 'X' ? 'O' : 'X');
}
return 0;
}
```