私のプログラムが正常に完了するようにするには、コマンドプロンプト変数ask
から値を取り込み、それが正しいかどうかチェックします。しかし、プレイヤーが時間内に応答しない場合、設定されたタイムアウト機能は実行され、したがって人生を減じます。設定されたタイムアウト機能がwin文をアクティブ化しないのはなぜですか?
私の問題は、ask
というプロンプトを入力すると、タイムアウト機能がまったくオフにならないということです。
また、私はfor-loopのすべてを持っているので、プレイヤーが正しい答えを得たときに、それは再び実行され、問題を解決する時間が減るので時間が減ります。私のコードは以下の通りです。
var win = null;
var product = "123456";
time = 3000;
for(var i = 0; i < 1; i++) {
confirm("Round will start after you close this confirm window.");
setTimeout(function() {
var ask = prompt("Enter code below: (QUICK) " + product + " (Answer for development purposes)");
if(ask === product){
win = true;
console.log("Hurrah!");
} else {
win = false;
console.log("Arr. Well get em next time.");
}
}, 1);
//Why is this not activating???
setTimeout(function() {
if (win === null || false) {
lives = lives - 1;
win = false;
console.log("Oh No! You ran out of time. Lives left: " + lives);
}
}, time);
time = time - 100;
}
「命」とは何ですか?また、 'win === null || false'は 'winでなければなりません。=== null || win === false'またはそれ以外の場合は実行されません – Li357
'prompt()'は単にタイムアウトをサポートしておらず、ブロッキング関数なので、完了するまで他のものは実行できません。 – jfriend00
あなたはこれのためのjavascriptの唯一のソリューションが欲しいですか? @ jfriend00がコメントしたことは何でもあなたの問題の理由です。そして、jQueryはあなたの問題を簡単に解決できます。 – Manish