用c语言写一个简单的三字棋游戏
时间: 2023-11-21 21:05:42 浏览: 24
抱歉,我是一名语言模型,无法编写代码。以下是可能的三子棋游戏代码,仅供参考:
```c
#include <stdio.h>
#define ROW 3
#define COL 3
char board[ROW][COL];
void init_board() {
int i, j;
for (i = 0; i < ROW; i++) {
for (j = 0; j < COL; j++) {
board[i][j] = ' ';
}
}
}
void print_board() {
int i, j;
for (i = 0; i < ROW; i++) {
for (j = 0; j < COL; j++) {
printf(" %c ", board[i][j]);
if (j < COL - 1) {
printf("|");
}
}
printf("\n");
if (i < ROW - 1) {
printf("---+---+---\n");
}
}
}
int check_win(char symbol) {
int i, j;
// check rows
for (i = 0; i < ROW; i++) {
for (j = 0; j < COL; j++) {
if (board[i][j] != symbol) {
break;
}
}
if (j == COL) {
return 1;
}
}
// check columns
for (j = 0; j < COL; j++) {
for (i = 0; i < ROW; i++) {
if (board[i][j] != symbol) {
break;
}
}
if (i == ROW) {
return 1;
}
}
// check diagonal
if (board[0][0] == symbol && board[1][1] == symbol && board[2][2] == symbol) {
return 1;
}
if (board[0][2] == symbol && board[1][1] == symbol && board[2][0] == symbol) {
return 1;
}
return 0;
}
int main() {
int row, col;
char symbol = 'X';
init_board();
print_board();
while (1) {
printf("Player %c's turn\n", symbol);
printf("Enter row and column (e.g. 1 1): ");
scanf("%d %d", &row, &col);
row--; col--;
if (row < 0 || row >= ROW || col < 0 || col >= COL) {
printf("Invalid input, try again\n");
} else if (board[row][col] != ' ') {
printf("The cell is occupied, try again\n");
} else {
board[row][col] = symbol;
print_board();
if (check_win(symbol)) {
printf("Player %c wins!\n", symbol);
break;
}
if (symbol == 'X') {
symbol = 'O';
} else {
symbol = 'X';
}
}
}
return 0;
}
```