Uploaded by vip.shepard123

игра в си

advertisement
#include <iostream>
#include <vector>
using namespace std;
// Размер игрового поля
const int ROWS = 3;
const int COLS = 3;
// Функция для вывода игрового поля
void drawBoard(const vector<vector<char>>& board) {
for (int i = 0; i < ROWS; ++i) {
for (int j = 0; j < COLS; ++j) {
cout << board[i][j] << " ";
}
cout << endl;
}
}
// Функция для проверки выигрышной комбинации
bool checkWin(const vector<vector<char>>& board, char player) {
// Проверка строк и столбцов
for (int i = 0; i < ROWS; ++i) {
if (board[i][0] == player && board[i][1] == player && board[i][2] == player)
return true;
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;
}
// Функция для выполнения хода игрока
void playerMove(vector<vector<char>>& board, char player) {
int row, col;
do {
cout << "Игрок " << player << ", введите координаты (строка и столбец): ";
cin >> row >> col;
} while (row < 0 || row >= ROWS || col < 0 || col >= COLS || board[row][col] != ' ');
board[row][col] = player;
}
// Основная функция
int main() {
vector<vector<char>> board(ROWS, vector<char>(COLS, ' ')); // Создание пустого игрового поля
char currentPlayer = 'X'; // Начинает игрок X
drawBoard(board); // Вывод начального игрового поля
// Игровой цикл
while (true) {
playerMove(board, currentPlayer); // Выполнение хода текущего игрока
drawBoard(board); // Вывод обновленного игрового поля
// Проверка на выигрыш или ничью
if (checkWin(board, currentPlayer)) {
cout << "Игрок " << currentPlayer << " выиграл!" << endl;
break;
} else if (board[0][0] != ' ' && board[0][1] != ' ' && board[0][2] != ' ' &&
board[1][0] != ' ' && board[1][1] != ' ' && board[1][2] != ' ' &&
board[2][0] != ' ' && board[2][1] != ' ' && board[2][2] != ' ') {
cout << "Ничья!" << endl;
break;
}
// Смена игрока
currentPlayer = (currentPlayer == 'X') ? 'O' : 'X';
}
return 0;
}
Download