Andrey Titarenko
Ученик
(204)
1 год назад
// Создаем пустое поле 3х3
var gameBoard = [
["_", "_", "_"],
["_", "_", "_"],
["_", "_", "_"]
];
// Отображаем текущее состояние игры
function displayBoard() {
console.log(" " + gameBoard[0][0] + " | " + gameBoard[0][1] + " | " + gameBoard[0][2] + " ");
console.log("---+---+---");
console.log(" " + gameBoard[1][0] + " | " + gameBoard[1][1] + " | " + gameBoard[1][2] + " ");
console.log("---+---+---");
console.log(" " + gameBoard[2][0] + " | " + gameBoard[2][1] + " | " + gameBoard[2][2] + " ");
}
// Проверяем, допустим ли ход
function makeMove(row, col, player) {
if (gameBoard[row][col] === "_") {
gameBoard[row][col] = player;
return true;
} else {
return false;
}
}
// Проверяем, выиграл ли игрок
function checkWin(player) {
// Проверяем по строкам
for (var i = 0; i < gameBoard.length; i++) {
if (gameBoard[i][0] === player && gameBoard[i][1] === player && gameBoard[i][2] === player) {
return true;
}
}
// Проверяем по столбцам
for (var j = 0; j < gameBoard.length; j++) {
if (gameBoard[0][j] === player && gameBoard[1][j] === player && gameBoard[2][j] === player) {
return true;
}
}
// Проверяем по диагоналям
if (gameBoard[0][0] === player && gameBoard[1][1] === player && gameBoard[2][2] === player) {
return true;
}
if (gameBoard[0][2] === player && gameBoard[1][1] === player && gameBoard[2][0] === player) {
return true;
}
// Игрок не выиграл
return false;
}
// Проверяем, закончилась ли игра в ничью
function checkTie() {
for (var i = 0; i < gameBoard.length; i++) {
for (var j = 0; j < gameBoard.length; j++) {
if (gameBoard[i][j] === "_") {
return false;
}
}
}
return true;
}
// Пример игры
console.log("Давайте начнем игру!");
var currentPlayer = "X";
while (true) {
// Отображаем текущее состояние игры
console.log("Ход игрока " + currentPlayer);
displayBoard();
// Получаем ввод от пользователя
var row = parseInt(prompt("Выберите строку (1-3):")) - 1;
var col = parseInt(prompt("Выберите столбец (1-3):")) -
// Проверяем, допустим ли ход
if (makeMove(row, col, currentPlayer)) {
// Проверяем, выиграл ли игрок
if (checkWin(currentPlayer)) {
displayBoard();
console.log("Игрок " + currentPlayer + " выиграл!");
break;
}
// Проверяем, закончилась ли игра в ничью
if (checkTie()) {
displayBoard();
console.log("Игра закончилась в ничью!");
break;
}
// Меняем игрока
currentPlayer = (currentPlayer === "X") ? "O" : "X";
} else {
console.log("Эта клетка уже занята. Попробуйте еще раз.");
}
}