Вопрос или проблема
Я создаю игру в угадывание, и мне нужна помощь, чтобы сделать так, чтобы в моей игре было ограниченное количество попыток, и чтобы отображалось количество оставшихся попыток после каждой попытки, сделанной пользователем.
Я пытался создать оператор else if для этого, но это, похоже, не работает.
function main() {
const minNum = 0;
const maxNum = 100;
const answer = Math.floor(Math.random() * (maxNum - minNum + 1));
let attempts = 0;
let inGame = true;
let guess;
while (inGame) {
guess = readInt("угадайте число от 1 до 100: ");
if (guess == answer) {
inGame = false;
console.log("вы успешно нашли число");
} else if (guess < answer) {
inGame = true;
console.log("ваше предположение слишком низкое");
} else if (guess > answer) {
inGame = true;
console.log("ваше предположение слишком высокое");
} else if (guess == 7) {
inGame = false;
console.log("вы не смогли угадать число");
}
}
}
main();
Предполагая, что вы запускаете свой скрипт с помощью node, вы можете использовать readline, чтобы получить входные данные от пользователя.
Таким образом, ваш код может выглядеть примерно так:
const readline = require('readline');
function main() {
const minNum = 0;
const maxNum = 100;
const maxAttempts = 2; // Максимальное количество разрешенных попыток
const answer = Math.floor(Math.random() * (maxNum - minNum + 1));
let attempts = 0;
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
function askQuestion() {
rl.question("Угадайте число от 1 до 100: ", (input) => {
const guess = parseInt(input, 10);
attempts++;
if (guess === answer) {
console.log("Вы успешно нашли число");
rl.close();
} else if (attempts >= maxAttempts) {
console.log("Вы не смогли угадать число в пределах разрешенных попыток.");
rl.close();
} else if (guess < answer) {
console.log("Ваше предположение слишком низкое");
askQuestion();
} else if (guess > answer) {
console.log("Ваше предположение слишком высокое");
askQuestion();
} else {
console.log("Неверный ввод. Пожалуйста, введите число.");
askQuestion();
}
});
}
askQuestion();
}
main();
Ответ или решение
Конечно! Чтобы создать игру «Угадай число» на JavaScript с ограниченным количеством попыток и отображением оставшихся попыток, вы можете воспользоваться пакетом readline
для чтения ввода пользователя в среде Node.js. Давайте подробно рассмотрим, как это сделать.
Шаг 1: Установка и подготовка
Если у вас еще нет Node.js в системе, его нужно установить. Затем создайте новый .js
файл, например guessingGame.js
, и откройте его в вашем текстовом редакторе.
Шаг 2: Импортирование модуля readline
Ваша игра будет взаимодействовать с пользователем, поэтому первый шаг — это импорт модуля readline
, который мы будем использовать для получения пользовательского ввода.
const readline = require('readline');
Шаг 3: Определение основных переменных
Задайте диапазон случайных чисел, максимальное количество попыток и инициализируйте переменные, которые будут использоваться в игре:
function main() {
const minNum = 1;
const maxNum = 100;
const maxAttempts = 5; // Максимальное количество попыток
const answer = Math.floor(Math.random() * (maxNum - minNum + 1)) + minNum; // Случайное число от 1 до 100
let attempts = 0; // Подсчет попыток пользователя
Шаг 4: Создание интерфейса для чтения ввода
Создайте интерфейс для ввода и вывода:
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
Шаг 5: Логика игры
Реализуйте итерацию через попытки с помощью рекурсивной функции:
function askQuestion() {
rl.question(`Угадайте число от ${minNum} до ${maxNum}. Осталось попыток: ${maxAttempts - attempts}: `, (input) => {
const guess = parseInt(input, 10);
attempts++;
if (isNaN(guess) || guess < minNum || guess > maxNum) {
console.log("Пожалуйста, введите допустимое число.");
askQuestion(); // Запрашиваем еще раз
} else if (guess === answer) {
console.log("Поздравляю! Вы угадали число!");
rl.close();
} else if (attempts >= maxAttempts) {
console.log(`Вы исчерпали попытки. Правильное число было: ${answer}.`);
rl.close();
} else if (guess < answer) {
console.log("Ваше предположение слишком низкое.");
askQuestion(); // Запрашиваем еще раз
} else {
console.log("Ваше предположение слишком высокое.");
askQuestion(); // Запрашиваем еще раз
}
});
}
askQuestion(); // Начинаем игру
}
main(); // Запуск основной функции
Результат
Теперь ваша игра будет принимать ввод от пользователя, проверять его правильность и показывать количество оставшихся попыток. Если пользователь угадает число, игру можно завершить, в противном случае, после исчерпания попыток, программа откроет правильный ответ.
Заключение
Этот пример иллюстрирует, как создать игру «Угадай число» на JavaScript с использованием модуля readline
в Node.js. Учтите, что сделать игру более интересной можно, добавив больше фидбэка для пользователя или настройку максимального количества попыток.
Если у вас возникнут дополнительные вопросы или потребуются уточнения, не стесняйтесь задавать их!