Я недавно начал изучать JavaScript и работал над окончательным заданием для класса, где мы должны создать игру «Rock, Paper, Scissors». Хотя мне удалось решить один и тот же тип игры на codecademy.com - это было в основном с помощью нескольких функций If Statement и 1. Однако для этого задания мы должны использовать функции, массивы и циклы, сохраняя при этом оценку прогресса каждого игрока, уведомляя пользователя о обновленных оценках, а также предоставляя возможность выйти из игры в любое время ... вот подробное объяснение того, что требуется для этого задания:JavaScript - рок, бумага, ножницы - пользовательский ввод не подтвержден
Написать игру Rock, Paper, Scissors. Ваша задача - создать логику для игры Rock, Paper Scissors. Игра будет приветствовать пользователя и затем запрашивает у пользователя их первого раунда игры, попросив их типа рок, бумагу или ножницы Каждый раунд будет иметь следующие шаги:
- пользователю будет предложено ввести , рок, бумага, ножницы или выход
- компьютер случайным образом выберет либо рок, бумагу или ножницы и предупреждает пользователь этого выбора
- победитель будет объявлен и точка будет вручена победителю.
- Пользователь будет предупрежден о текущем счете как для себя, так и для компьютера.
- Круглый будет повторяться
Вы должны оценить, победит ли или нет пользователя, теряет или привязывает раунда, на основе правил здесь: http://www.rinkworks.com/games/rps.shtml Игра должна иметь бесконечное количество патронов , пока пользователь не выберет exit в игре . Если пользователь вводит слово exit в приглашение, сообщите пользователю , кто выиграл игру и окончательный счет. В конечном итоге я оставлю архитектуры программы, но для этого требуются: Вы будете иметь необходимо включить условные обозначения, циклы, массивы и использовать вызовы функций и comments для создания этой программы. - компьютер создает новый случайный выбор между камнем, бумагой и ножницами, вызывая функцию, которую вы создаете, чтобы вернуть либо «камень», «бумага», «ножницы» - логика определения победителя раунда содержится внутри функция вам дизайн принять как пользователь и выбор компьютера в качестве параметров
Я проверил это в консоли Chrome для ошибок и проблема, что я имею что код, кажется, работает ... только то, что это компьютер, который является единственным победителем здесь ... следовательно, кажется, что пользовательский ввод полностью игнорируется. Кроме того, если я нажал кнопку «Отмена» я получаю сообщение об ошибке (в соответствии с консоли Хрома) в строке 20 говорил мне:
Не удается прочитать свойство «toLowerCase» нулевых
... Я «в первоначально добавили следующую строку коды по причине, которая должна убедиться, что пользовательский ввод соответствует всем вариантам строчных ...
return userInput.toLowerCase();
Когда я удалил.toLowerCase() метод только, чтобы просто вернуть UserInput (а затем побежал код в консоли Chrome снова), я застрял в бесконечном цикле ...
Вот весь мой код:
var choice1Score = 1;
var choice2Score = 1;
function compChoice() {
\t var choiceArr = ["rock", "paper", "scissors"];
\t var random = choiceArr[Math.floor(Math.random() * 3)];
\t return random;
}
function userChoice(){
\t var userInput = prompt("Please enter your choice of either rock, paper or scissors. To exit, hit the 'Cancel' button.");
\t return userInput.toLowerCase();
}
while (userChoice != "Cancel") {
function scoring(choice1, choice2) {
if (choice1 === choice2) {
return "The result is a tie.";
} if (choice1 === "rock") {
if (choice1 === "scissors") {
return "Rock wins. Your score is: " + choice1Score++;
} else {
return "Paper wins. The computer's score is: " + choice2Score++;
}
} if (choice1 === "paper") {
if (choice1 === "rock") {
return "Paper wins. Your score is: " + choice1Score++;
} else {
return "Scissors win. The computer's score is: " + choice2Score++;
}
} if (choice1 === "scissors") {
if (choice1 === "paper") {
return "Scissors win. Your score is: " + choice1Score++;
} else {
return "Rock wins. The computer's score is: " + choice2Score++;
}
}
}
alert(scoring(userChoice(), compChoice()));
}
Любая помощь, предложения и комментарии будут высоко оценены!
для аварии на отмене, скорейшее возвращение нулевой чтобы показать, что пользователь не вошел ничего. вам понадобится специальный случай для этого – litelite
. Одна проблема, которую я вижу сразу, заключается в том, что в цикле 'while' вы сравниваете строку' cancel' с самой 'function' * * *, в отличие от результата функции. В этом разница между 'while (func! =" Cancel ")' и 'while (func()!= «отменить») '- первый всегда будет равен false –
Вы сценарий не удовлетворяет первому шагу:« Пользователю будет предложено ввести тип, камень, бумага, ножницы ** ИЛИ выйти ** » – Andreas