0

私のコードにいくつか問題がある場合は、事前にお詫び申し上げます。私はまだこれに非常に慣れていません。

私は単純な小さな RNG ベッティング ゲームを作成しました。

var funds = 100;
var betting = true;


function roll_dice() {
    var player = Math.floor(Math.random() * 100);
    var com = Math.floor(Math.random() * 100);
    var bet = prompt("How much do you bet? Enter a number between 1 and " + funds + " without the $ sign.");
    if (player === com) {
        alert("tie.");
    }
    else if (bet > funds) {
    alert("You don't have that much money. Please try again");
    roll_dice();
    }
    else if (player > com) {
        funds += bet;
        alert("Your roll wins by " + (player - com) + " points. You get $" + bet + " and have a total of $" + funds + ".");
    }
    else {
        funds -= bet;
        alert("Computer's roll wins by " + (com - player) + " points. You lose $" + bet + " and have a total of $" + funds + ".");
    }
}

while (betting) {
    var play = prompt("Do you wish to bet? Yes or no?");
    if (funds <= 0) {
        alert("You have run out of money.");
        betting = false;
    }
    else if (play === "yes") {
        roll_dice();
    }
    else {
        alert("Game over.");
        betting = false;
    }
}

このコードは、負け (つまり、引き算) を問題なく処理しますが、足し算の部分を処理できないようです。たとえば、50 を賭けて勝った場合、最終的に 10050 になります。ギャンブルのソフトウェア プログラマーとしての仕事を探していないこと以外に、どうすればよいでしょうか?

4

1 に答える 1

7

prompt文字列を返します。文字列に数値を追加すると、文字列になります。

> "12" + 13
"1213"

文字列の連結のみがプラス記号で行われるため、減算の結果は整数になります。

> "12" - 13
-1

ユーザーの入力を整数に変換する必要があります。

 var bet = parseInt(prompt("How much do you bet? Enter a number between 1 and " + funds + " without the $ sign."), 10);
于 2013-06-10T01:25:14.063 に答える