用c++编写简单的五子棋游戏,在vs2019中可以运行
时间: 2024-05-13 16:14:06 浏览: 19
好的,我可以为您提供一份简单的五子棋游戏的 C 语言代码,您可以在 VS2019 中运行它。
```c
#include <stdio.h>
#include <stdlib.h>
#define ROW 15 // 行数
#define COL 15 // 列数
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 show_board() {
int i, j;
printf(" ");
for (i = 0; i < ROW; i++) {
printf("%d ", i+1);
}
printf("\n");
for (i = 0; i < ROW; i++) {
printf("%d ", i+1);
for (j = 0; j < COL; j++) {
printf("%c ", board[i][j]);
}
printf("\n");
}
}
// 落子
void set_piece(int x, int y, char piece) {
board[x][y] = piece;
}
// 判断是否胜利
int is_win(char piece) {
int i, j, k;
// 横向判断
for (i = 0; i < ROW; i++) {
for (j = 0; j < COL-4; j++) {
for (k = 0; k < 5; k++) {
if (board[i][j+k] != piece) {
break;
}
if (k == 4) {
return 1;
}
}
}
}
// 纵向判断
for (i = 0; i < ROW-4; i++) {
for (j = 0; j < COL; j++) {
for (k = 0; k < 5; k++) {
if (board[i+k][j] != piece) {
break;
}
if (k == 4) {
return 1;
}
}
}
}
// 左上-右下斜向判断
for (i = 0; i < ROW-4; i++) {
for (j = 0; j < COL-4; j++) {
for (k = 0; k < 5; k++) {
if (board[i+k][j+k] != piece) {
break;
}
if (k == 4) {
return 1;
}
}
}
}
// 右上-左下斜向判断
for (i = 0; i < ROW-4; i++) {
for (j = 4; j < COL; j++) {
for (k = 0; k < 5; k++) {
if (board[i+k][j-k] != piece) {
break;
}
if (k == 4) {
return 1;
}
}
}
}
return 0;
}
int main() {
int x, y;
char piece = 'O'; // 默认先落 O 子
init_board();
while (1) {
show_board();
printf("请 %c 方落子(输入坐标,如:3 4):", piece);
scanf("%d %d", &x, &y);
if (x < 1 || x > ROW || y < 1 || y > COL) { // 判断输入是否合法
printf("坐标不合法,请重新输入!\n");
continue;
}
if (board[x-1][y-1] != '+') { // 判断该位置是否已落子
printf("该位置已有子,请重新输入!\n");
continue;
}
set_piece(x-1, y-1, piece); // 落子
if (is_win(piece)) { // 判断是否胜利
show_board();
printf("%c 方获胜!\n", piece);
break;
}
if (piece == 'O') { // 切换落子方
piece = 'X';
} else {
piece = 'O';
}
}
return 0;
}
```
您可以将上述代码复制到 VS2019 中,然后编译运行即可。希望能对您有所帮助!