Как отложить ответ в игре "Каменные ножницы"

Я сделал простую игру с ножницами из каменной бумаги с помощью Javascript, я хотел бы сделать задержку до появления результата, я попытался seTimeout() разными способами, но не могу заставить его работать.

Вот мой Javascript

function game(opt) {
var comp = Math.random();
var pers = opt.value;
if (comp < 0.33) {
    comp = "rock"
} else if (comp < 0.66) {
    comp = "paper"
} else {
    comp = "scissors"
}


if (comp == pers) {
    document.getElementById("answer").innerHTML = "Draw, I chose: <b>" + comp+"</b>";
} else if (pers == "rock" && comp == "scissors" || pers == "paper" && comp == "rock" || pers == "scissors" && comp == "paper") {
    document.getElementById("answer").innerHTML = "Well done you won, I chose: <b>" + comp+"</b>";
} else if (pers == "rock" && comp == "paper" || pers == "paper" && comp == "scissors" || pers == "scissors" && comp == "rock") {
    document.getElementById("answer").innerHTML = "Sorry you lose, I chose: <b>" + comp+"</b>";
}

document.getElementById("info").innerHTML = pers+" V "+comp;
};

Вот мой HTML

 <body>
 <div id="alignCenter">


<h1 onclick="rock()" align="center">Rock, Paper, Scissors...</h1>
<h2 align="center">Pick one</h2>


<div id="images">



<button value="rock" id="rock" onclick="game(rock)"> <img src="images/rock.gif" alt="rock"  onclick="rock()" width="196" height="144"> </button>
<button value="paper" id="paper" onclick="game(paper)"> <img src="images/paper.png" alt="paper" onclick="paper()" width="196" height="263"> </button>
<button value="scissors" id="scissors" onclick="game(scissors)"> <img src="images/scissors.png" alt="scissors" width="196" height="200"> </button>

</div>

<div align="center" id="answer">


</div>


Игра работает идеально, я просто хотел бы, чтобы была задержка. Также, если во время задержки есть возможность, чтобы она вспыхнула: "качайте", затем мигайте "бумагу", а затем мигайте "ножницами" около секунды каждый, как я бы сделал это?

Заранее спасибо:)

1 ответ

Решение

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

document.getElementById("answer").innerHTML = ""; 
setTimeout(function(){
    if (comp == pers) {
        document.getElementById("answer").innerHTML = "Draw, I chose: <b>" + comp+"</b>";
    } else if (pers == "rock" && comp == "scissors" || pers == "paper" && comp == "rock" || pers == "scissors" && comp == "paper") {
        document.getElementById("answer").innerHTML = "Well done you won, I chose: <b>" + comp+"</b>";
    } else if (pers == "rock" && comp == "paper" || pers == "paper" && comp == "scissors" || pers == "scissors" && comp == "rock") {
        document.getElementById("answer").innerHTML = "Sorry you lose, I chose: <b>" + comp+"</b>";
    }
},1000); 
Другие вопросы по тегам