0

math.random を使用して乱数 (var = randomDigit) を生成し、ユーザーに 1 より大きい数を考えるように求める、学校の課題用の単純な JavaScript 数字ゲームを作成しています。番号を付けて出力します。彼らは数字を足し合わせてから、2 で割って元の数字を引き、(var = randomDigit) を残します。

これが私が立ち往生している部分です。ユーザーがプレイしたくない場合は続行しないようにする必要があります...そして、「if」ステートメントは1つしか使用できません。私は prompt() メソッドを使用することにしました...そして、ダイアログが言うように YES と入力すると機能し、キャンセルを押しても機能しません (良いニュースです)。しかし、ゲームをプレイしたくないように「いいえ」と入力しても、機能します。

プロンプト ダイアログに「YES」と入力した場合にのみプログラムが動作するようにしたいのです。

これが私のJSフィドルです:http://jsfiddle.net/JrYAq/

 function dialog(){
var x;

var randomDigit = Math.floor((Math.random()*20)+1);

var doubleDigit = +randomDigit * 2;

var play = prompt("Would you like to play a game? If not, press cancel below.\n\nThink of a number greater than 1. Confirm you thought of a number by typing the word: YES","Type Here");

if (play==='false')
    {
    document.getElementById("pick").innerHTML="Sorry, maybe next time.";
    }       

else (play= "YES");
{
    x="1. Now double the number you thought of. I'm going to think of a number too:" + ' ' + doubleDigit +  '<br><br>' + "2. Now add my number and your doubled number together." + '<br><br>' + "Now divide the added numbers by 2, then subtract your original number. Did you get" + ' ' + randomDigit + "?" + '<br><br>' + "Pretty cool, right?"  ;
    document.getElementById("pick").innerHTML=x;
}
}
4

3 に答える 3

2

prompt() 関数は、ユーザーがクリックしたボタンの値ではなく、ユーザーがテキスト ボックスに入力した値を返します。したがって、playユーザーがテキスト ボックスに「false」と入力しない限り、 の値が「false」になることはありません。

代わりにこれを試してください:

var play = prompt("Would you like to play a game? If not, press cancel below.\n\nThink of a number greater than 1. Confirm you thought of a number by typing the word: YES","Type Here");

if (play === "YES")
{
    x="1. Now double the number you thought of. I'm going to think of a number too:" + ' ' + doubleDigit +  '<br><br>' + "2. Now add my number and your doubled number together." + '<br><br>' + "Now divide the added numbers by 2, then subtract your original number. Did you get" + ' ' + randomDigit + "?" + '<br><br>' + "Pretty cool, right?"  ;
    document.getElementById("pick").innerHTML=x;

}       
else 
{
    document.getElementById("pick").innerHTML="Sorry, maybe next time.";
}

また、これは yes または no タイプの状況であるため、prompt() の代わりに confirm() を使用することをお勧めします。

于 2013-06-21T03:50:35.530 に答える
1

マイナーな調整で十分です

if (play== "YES")
{
    x="1. Now double the number you thought of. I'm going to think of a number too:" + ' ' + doubleDigit +  '<br><br>' + "2. Now add my number and your doubled number together." + '<br><br>' + "Now divide the added numbers by 2, then subtract your original number. Did you get" + ' ' + randomDigit + "?" + '<br><br>' + "Pretty cool, right?"  ;
    document.getElementById("pick").innerHTML=x;
} else {
    document.getElementById("pick").innerHTML="Sorry, maybe next time.";
}

デモ:フィドル

于 2013-06-21T03:42:46.533 に答える