Код игры "Крестики-нолики" на с++
#include <iostream>
using namespace std;
char board[3][3]; // игровая доска
// функция отображения доски на экране
void drawBoard() {
cout << " 1 2 3" << endl;
for (int i = 0; i < 3; i++) {
cout << i+1 << " ";
for (int j = 0; j < 3; j++) {
cout << board[i][j] << " ";
}
cout << endl;
}
}
// функция проверки, выиграл ли игрок
bool checkWin(char player) {
// проверка по горизонтали
for (int i = 0; i < 3; i++) {
if (board[i][0] == player && board[i][1] == player && board[i][2] == player)
return true;
}
// проверка по вертикали
for (int i = 0; i < 3; i++) {
if (board[0][i] == player && board[1][i] == player && board[2][i] == player)
return true;
}
// проверка по диагонали
if (board[0][0] == player && board[1][1] == player && board[2][2] == player)
return true;
if (board[0][2] == player && board[1][1] == player && board[2][0] == player)
return true;
return false;
}
int main() {
int row, col;
char currentPlayer = 'X';
// заполнение игровой доски начальными значениями
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
board[i][j] = ' ';
}
}
// игровой цикл
while (true) {
drawBoard();
cout << "Ход игрока " << currentPlayer << endl;
// ввод координат клетки
cout << "Введите номер строки: ";
cin >> row;
cout << "Введите номер столбца: ";
cin >> col;
// проверка введенных координат
if (row < 1 || row > 3 || col < 1 || col > 3) {
cout << "Некорректные координаты! Попробуйте еще раз." << endl;
continue;
}
if (board[row-1][col-1] != ' ') {
cout << "Эта клетка уже занята! Попробуйте еще раз." << endl;
continue;
}
// установка символа на доску
board[row-1][col-1] = currentPlayer;
// проверка на выигрыш
if (checkWin(currentPlayer)) {
drawBoard();
cout << "Игрок " << currentPlayer << " выиграл!" << endl;
break;
}
// проверка на ничью
bool boardFull = true;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (board[i][j] == ' ') {
boardFull = false;
break;
}
}
if (!boardFull)
break;
}
if (boardFull) {
drawBoard();
cout << "Ничья!" << endl;
break;
}
// смена игрока
currentPlayer = (currentPlayer == 'X' ? 'O' : 'X');
}
return 0;
}
Две миланы в домике
Спс