写一个c++五子棋代码
时间: 2023-03-19 09:21:13 浏览: 93
以下是一个简单的 C 语言实现的五子棋代码,你可以在控制台运行它。
```c
#include <stdio.h>
#include <stdlib.h>
#define SIZE 15
char board[SIZE][SIZE];
void print_board() {
for (int i = 0; i < SIZE; i++) {
for (int j = 0; j < SIZE; j++) {
printf("%c ", board[i][j]);
}
printf("\n");
}
}
void init_board() {
for (int i = 0; i < SIZE; i++) {
for (int j = 0; j < SIZE; j++) {
board[i][j] = '+';
}
}
}
void put_piece(int x, int y, char piece) {
board[x][y] = piece;
}
int check_win(int x, int y, char piece) {
int count = 0;
// 检查水平方向
for (int i = y - 4; i <= y; i++) {
if (i < 0 || i + 4 >= SIZE) {
continue;
}
if (board[x][i] == piece && board[x][i+1] == piece && board[x][i+2] == piece && board[x][i+3] == piece && board[x][i+4] == piece) {
return 1;
}
}
// 检查竖直方向
for (int i = x - 4; i <= x; i++) {
if (i < 0 || i + 4 >= SIZE) {
continue;
}
if (board[i][y] == piece && board[i+1][y] == piece && board[i+2][y] == piece && board[i+3][y] == piece && board[i+4][y] == piece) {
return 1;
}
}
// 检查斜向方向
for (int i = x - 4; i <= x; i++) {
for (int j = y - 4; j <= y; j++) {
if (i < 0 || j < 0 || i + 4 >= SIZE || j + 4 >= SIZE) {
continue;
}
if (board[i][j] == piece && board[i+1][j+1] == piece && board[i+2][j+2] == piece && board[i+3][j+3] == piece && board[i+4][j+4] == piece) {
return 1;
}
}
}
// 检查反斜向方向
for (int i = x - 4; i <= x; i++) {
for (int j = y + 4; j >= y; j--) {
if (i < 0 || j >= SIZE || i + 4 >= SIZE || j - 4 < 0) {
continue;
}
if (board[i][j] == piece && board[i+1][j-1] == piece && board[i+2][j-2] == piece && board[i+3][j-3] == piece && board[i+4][j-4] == piece) {
return 1;
}
}
}
return 0;
}
int main() {
init_board();
print_board();
int x, y;
char piece = 'X';