Как получить данные о нажатии кнопки в этом условном выражении? - PullRequest
0 голосов
/ 25 апреля 2020

Я сейчас играю в ножницы из бумаги для камней. Я пытаюсь сравнить ввод пользователя и автоматически сгенерированный ответ компьютера в операторе if, но не могу понять, как найти ввод пользователя.

Редактировать: вот остальная часть моего кода. Я изменил несколько вещей из моей функции сравнения. Все еще ничего не работает. Но я надеюсь, что, добавив мои HTML и JavaScript, вы сможете выяснить, что происходит.

Вот мой код:

function showInstruct() {
            var show = document.getElementById('hideInstruct');
            if (show.style.display === "none") {
                show.style.display = "block";
            }
            else {
                show.style.display = "none"
            }
        }

        function hideButtons() {
            document.getElementById('buttonDiv').style.display = 'none';
            document.getElementById('countdown').style.display = 'flex';
            document.getElementById('nextRound').style.display = 'none';

            revealRps();

            setCountdown();
        }

        function setCountdown() {
            var numberS = 3;
            var x = setInterval(function() {
            document.getElementById("number").innerHTML = numberS;
            numberS--;
            if (numberS < 0) {
                clearInterval(x);
                document.getElementById("number").innerHTML = "VS";
                document.getElementById('rps').style.display = 'none';
                document.getElementById('nextRound').style.display = 'flex';
                document.getElementById('input').style.display = 'none';
                compare();
            }
            }, 950);
        }

        function revealRps() {
            document.getElementById('rps').style.display = 'flex';
            document.getElementById('nextRound').style.display = 'none';
        }

        function hideRps() {
            document.getElementById('rps').style.display = 'none';
            document.getElementById('input').style.display = 'flex';
        }

        function compare() {
            var random = ['rock', 'paper', 'scissors'];
            var comp = Math.floor(Math.random() * random.length);
            var compDraw = random[comp];
            if($('rock').click == true && compDraw == 'scissors')
            {
            document.getElementById('rockBeats').style.display = 'flex';
            trackedValue.rock = true
            }
            else if ($('paper').click == true && compDraw == 'rock')
            {
                document.getElementById('paperBeats').style.display = 'flex';
                trackedValue.paper = true
            }
            else if ($('scissors').click == true && compDraw == 'paper')
            {
                document.getElementById('scissorsBeats').style.display = 'flex';
                trackedValue.scissors = true
            }
            else if ($('rock').click == true && compDraw == 'paper')
            {
                document.getElementById('paperBeats').style.display = 'flex';
                trackedValue.paper = true
            }
            else if ($('paper').click == true && compDraw == 'scissors')
            {
                document.getElementById('scissorsBeats').style.display = 'flex';
                trackedValue.scissors = true
            }
            else if ($('scissors').click == true && compDraw == 'rock') 
            {
                document.getElementById('rockBeats').style.display = 'flex';
                trackedValue.rock = true
            }

        }

И мой HTML:

<!DOCTYPE html>
<html>
<head>
    <title>Extreme Rock Paper Scissors!</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0l">
    <link href="https://fonts.googleapis.com/css2?family=Indie+Flower&family=Open+Sans&display=swap" rel="stylesheet">
    <link href="https://fonts.googleapis.com/css2?family=Righteous&display=swap" rel="stylesheet">
    <link href="https://fonts.googleapis.com/css2?family=New+Rocker&display=swap" rel="stylesheet">
    <link href="https://fonts.googleapis.com/css2?family=New+Rocker&family=Schoolbell&display=swap" rel="stylesheet">
    <link href="https://fonts.googleapis.com/css2?family=Long+Cang&family=New+Rocker&family=Schoolbell&display=swap" rel="stylesheet">
    <link rel="stylesheet" type="text/css" href="RPS.css">
    <script type="text/javascript" src="RPS.js"></script>

    <div class="titleWords">
        <h1>EXTREME ROCK PAPER SCISSORS!</h1>
    </div>

</head>
<body>

    <div id="beats">
        <div id="rockBeats">ROCK BEATS SCISSORS</div>
        <div id="paperBeats">PAPER BEATS ROCK</div>
        <div id="scissorsBeats">SCISSORS BEATS PAPER</div>
        <div id="draw">DRAW</div>
        <div id="noInput">YOU DIDN'T CLICK ANYTHING. COMPUTER AUTOMATICALLY WINS</div>
    </div>
    <div id="buttonDiv">
        <button id="playButton" = onclick="hideButtons()">PLAY GAME</button>
        <button id="instructions" onclick="showInstruct()">INSTRUCTIONS<button>

    </div>


    <div id="hideInstruct">
        <p>The premise - This is war! And you must choose your attacks carefully.
        When you press PLAY GAME a countdown clock will countdown from 3. During that time you need to make a selection of how you're going to attack. Are you going to use Rock, Paper, or Scissors? 
        </p>
        <br>
        <p>The logistics - If you choose Rock and the computer chooses scissors, you crush those scissors into dust!  If you choose scissors and the computer chooses paper, you slice the paper into shreds! And if you choose paper and the computer chooses rock, you smear the rock with the a major paper-cut! However, if you choose Rock and the computer chooses Paper than you lose. In essense, the computer can do the same things to you that you can do to it. If you and the computer both draw the same thing, than it's considered a draw and nothing happens. And one more thing. If time runs out and you've selected nothing, than the computer automatically wins the point.</p>
        <br>
        <p>How to win - For each victory, that's one point. The first player to reach 3 points wins the game!</p>
    </div>

    <article id="countdown">
        <p id="number">3</p>
    </article>

    <footer id="rps">
        <button type="button" id="rock" onclick="hideRps()">ROCK</button>
        <button type="button" id="paper" onclick="hideRps()">PAPER</button>
        <button type="button" id="scissors" onclick="hideRps()">SCISSORS</button>
    </footer>

    <div id="input">
        <p id="locked">Your answer is locked in</p>
    </div>

    <div id="nextRound">
        <button id="nextButton" onclick="hideButtons()">Next Round</button>
    </div>

</body>
</html>

1 Ответ

0 голосов
/ 25 апреля 2020

Насколько я понимаю, вы можете использовать объект для отслеживания значения

let trackedValue = {rock:false,paper:false,sicssors:false };

        function compare() {
        var random = ['rock', 'paper', 'scissors'];
        var comp = Math.floor(Math.random() * random.length);
        var compDraw = random[comp];
        if($('rock').click == true && compDraw == 'scissors')
        {
            document.getElementById('rockBeats').style.display = 'flex';
            trackedValue.rock = true
        }
        // remaining code
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...