c语言实现单人三子棋代码
时间: 2023-11-12 18:59:23 浏览: 63
好的,我可以回答这个问题。以下是一个简单的C语言实现单人三子棋游戏的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define BOARD_SIZE 3
void init_board(char board[][BOARD_SIZE]);
void print_board(char board[][BOARD_SIZE]);
int make_move(char board[][BOARD_SIZE], int row, int col, char player_char);
int check_win(char board[][BOARD_SIZE], char player_char);
int main()
{
char board[BOARD_SIZE][BOARD_SIZE];
int row, col, win;
char player_char = 'X';
init_board(board);
print_board(board);
while (1)
{
printf("\nPlayer %c's turn.\n", player_char);
printf("Enter row number: ");
scanf("%d", &row);
printf("Enter column number: ");
scanf("%d", &col);
if (make_move(board, row, col, player_char))
{
print_board(board);
win = check_win(board, player_char);
if (win)
{
printf("\nPlayer %c wins!\n", player_char);
break;
}
player_char = (player_char == 'X') ? 'O' : 'X';
}
else
{
printf("Invalid move. Try again.\n");
}
}
return 0;
}
void init_board(char board[][BOARD_SIZE])
{
int i, j;
for (i = 0; i < BOARD_SIZE; i++)
{
for (j = 0; j < BOARD_SIZE; j++)
{
board[i][j] = '-';
}
}
}
void print_board(char board[][BOARD_SIZE])
{
int i, j;
printf("\n");
for (i = 0; i < BOARD_SIZE; i++)
{
for (j = 0; j < BOARD_SIZE; j++)
{
printf("%c ", board[i][j]);
}
printf("\n");
}
}
int make_move(char board[][BOARD_SIZE], int row, int col, char player_char)
{
if (row < 0 || row >= BOARD_SIZE || col < 0 || col >= BOARD_SIZE || board[row][col] != '-')
{
return 0;
}
board[row][col] = player_char;
return 1;
}
int check_win(char board[][BOARD_SIZE], char player_char)
{
int i, j;
int row_win, col_win, diag_win1, diag_win2;
for (i = 0; i < BOARD_SIZE; i++)
{
row_win = 1;
col_win = 1;
for (j = 0; j < BOARD_SIZE; j++)
{
if (board[i][j] != player_char)
{
row_win = 0;
}
if (board[j][i] != player_char)
{
col_win = 0;
}
}
if (row_win || col_win)
{
return 1;
}
}
diag_win1 = 1;
diag_win2 = 1;
for (i = 0; i < BOARD_SIZE; i++)
{
if (board[i][i] != player_char)
{
diag_win1 = 0;
}
if (board[i][BOARD_SIZE-1-i] != player_char)
{
diag_win2 = 0;
}
}
if (diag_win1 || diag_win2)
{
return 1;
}
return 0;
}
```
这个程序实现了基本的单人三子棋游戏,并且包括了判断胜负的函数。您可以根据需要修改和扩展此代码。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)