R50 f43bf59797266dc98cb64e4ef7925c3a
с++ любая работа на данном язы

крестики нолики

Добавлено 09 мар 2024 в 11:37
#include <iostream>
using namespace std;

char gameBoard[3][3]; // Игровое поле
char currentPlayer; // Текущий игрок (X или O)

// Инициализация игрового поля
void initBoard() {
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
gameBoard[i][j] = '-';
}
}
}

// Отрисовка игрового поля
void drawBoard() {
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
cout << gameBoard[i][j] << " ";
}
cout << endl;
}
}

// Проверка наличия победителя
bool checkWin() {
// Проверка по горизонтали
for (int i = 0; i < 3; i++) {
if (gameBoard[i][0] != '-' && gameBoard[i][0] == gameBoard[i][1] && gameBoard[i][0] == gameBoard[i][2]) {
return true;
}
}
// Проверка по вертикали
for (int i = 0; i < 3; i++) {
if (gameBoard[0][i] != '-' && gameBoard[0][i] == gameBoard[1][i] && gameBoard[0][i] == gameBoard[2][i]) {
return true;
}
}
// Проверка по диагоналям
if (gameBoard[0][0] != '-' && gameBoard[0][0] == gameBoard[1][1] && gameBoard[0][0] == gameBoard[2][2]) {
return true;
}
if (gameBoard[2][0] != '-' && gameBoard[2][0] == gameBoard[1][1] && gameBoard[2][0] == gameBoard[0][2]) {
return true;
}
return false;
}

// Ход игрока
void makeMove() {
int row, col;
cout << "Ход игрока " << currentPlayer << endl;
cout << "Введите номер строки (от 1 до 3): ";
cin >> row;
cout << "Введите номер столбца (от 1 до 3): ";
cin >> col;
row--;
col--;

// Проверка корректности введенных координат
if (row < 0 || row >= 3 || col < 0 || col >= 3 || gameBoard[row][col] != '-') {
cout << "Некорректный ход. Попробуйте еще раз." << endl;
makeMove();
return;
}

gameBoard[row][col] = currentPlayer;
}

int main() {
initBoard();
currentPlayer = 'X';
bool gameFinished = false;

while (!gameFinished) {
drawBoard();
makeMove();
if (checkWin()) {
cout << "Игрок " << currentPlayer << " победил!" << endl;
gameFinished = true;
} else if (currentPlayer == 'X') {
currentPlayer = 'O';
} else {
currentPlayer = 'X';
}
}

drawBoard();
return 0;
}
C6354de657