#include <iostream>
using namespace std;
const int SIZE = 15;
char board[SIZE][SIZE];
// 初始化棋盘
void initBoard() {
for (int i = 0; i < SIZE; i++) {
for (int j = 0; j < SIZE; j++) {
board[i][j] = '+';
}
}
}
// 打印棋盘
void printBoard() {
for (int i = 0; i < SIZE; i++) {
for (int j = 0; j < SIZE; j++) {
cout << board[i][j] << " ";
}
cout << endl;
}
}
// 判断是否获胜
bool checkWin(int row, int col, char player) {
int count = 1;
// 检查水平方向
for (int i = col - 1; i >= 0 && board[row][i] == player; i--) {
count++;
}
for (int i = col + 1; i < SIZE && board[row][i] == player; i++) {
count++;
}
if (count >= 5) {
return true;
}
// 检查竖直方向
count = 1;
for (int i = row - 1; i >= 0 && board[i][col] == player; i--) {
count++;
}
for (int i = row + 1; i < SIZE && board[i][col] == player; i++) {
count++;
}
if (count >= 5) {
return true;
}
// 检查左上到右下方向
count = 1;
for (int i = row - 1, j = col - 1; i >= 0 && j >= 0 && board[i][j] == player; i--, j--) {
count++;
}
for (int i = row + 1, j = col + 1; i < SIZE && j < SIZE && board[i][j] == player; i++, j++) {
count++;
}
if (count >= 5) {
return true;
}
// 检查右上到左下方向
count = 1;
for (int i = row - 1, j = col + 1; i >= 0 && j < SIZE && board[i][j] == player; i--, j++) {
count++;
}
for (int i = row + 1, j = col - 1; i < SIZE && j >= 0 && board[i][j] == player; i++, j--) {
count++;
}
if (count >= 5) {
return true;
}
return false;
}
int main() {
int row, col;
char player = 'X';
initBoard();
while (true) {
printBoard();
cout << "Player " << player << ", enter your move (row col): ";
cin >> row >> col;
if (row < 0 || row >= SIZE || col < 0 || col >= SIZE || board[row][col] != '+') {
cout << "Invalid move. Try again." << endl;
continue;
}
board[row][col] = player;
if (checkWin(row, col, player)) {
cout << "Player " << player << " wins!" << endl;
break;
}
player = (player == 'X') ? 'O' : 'X';
}
printBoard();
return 0;
}
代码在此,喜欢自取(点个赞吧)