Страница иногда не загружается при обновлении

1

Я делаю простой рок, бумагу, ножницы. И иногда, когда я обновляю страницу, ничего не происходит. Когда это произойдет, ошибок не будет. Я попытался запустить этот код в онлайн-редакторе, например w3schools, но результат тот же. Что может вызвать эту проблему?

Вот мой код:

<body onload="game()">
    <script>
        function game(playerItem, computerSelection) {
        
            function computerSelection() {
                var arr = ["rock", "paper", "scissors"];
                var computerSelection = arr[Math.floor(Math.random() * 3)];
                return computerSelection;
            }
        
            var playerItem = "rock";
        
            if (playerItem == "rock" & computerSelection() == "paper") {
                document.write(rockVSpaper);
                return;
            };
            if (playerItem == "rock" & computerSelection() == "scissors") {
                document.write(rockVSscissors);
                return;
            };
            if (playerItem == "rock" & computerSelection() == "rock") {
                document.write(rockVSrock);
                return;
            };
        }
        var rockVSpaper = "You lose! The computer paper wraps your rock.";
        var rockVSscissors = "You won! Your rock make the computer scissors blunt.";
        var rockVSrock = "Tie! A Rock doesn't do anything with another rock.";
    </script>
</body>
  • 1
    Не полное решение вашей проблемы, но: вы используете оператор & bitwise, вместо этого вы должны использовать && логический оператор AND, если хотите, чтобы оба условия выполнялись ( stackoverflow.com/questions/7310109/… )
Теги:
function

1 ответ

3
Лучший ответ

Иногда это не работает, потому что вы выполняете computerSelection() три раза в своих условиях if. Это означает, что каждый раз, когда вы проверяете, вы создаете новый случайный выбор компьютера, который означает, что все три, if условия могут равняться false.

Чтобы решить эту проблему, вы должны запустить computerSelection() один раз и сохранить то, что она генерирует в переменной, а затем использовать ее в ваших операторах if. Вот так:

var playerItem = "rock";
var computerItem = computerSelection();

if (playerItem == "rock" && computerItem == "paper") {
    document.write(rockVSpaper);
    return;
};
// The rest of the if statements and code...

Здесь кодируется после применения указанных модификаций.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню