私は、問題にある程度の洞察を得るために、スタックオーバーフローの賢明なものに来ることに決めました。私はjavascriptの初心者で、私が出席している学校から、Lucky 7のプログラムを作成する課題が与えられています。生のJavascriptを使用してLucky 7のゲームを作成すると、何が間違っていますか?
命令は、ユーザは、賭け金を置くプレイをクリックすると、2個のダイスをロールしているということです。ダイスの合計が7の場合、ユーザーのベットに$ 4が追加され、そうでなければ$ 1が減算されます。
プレーヤーが$ 0に達すると、結果を示すテーブルが表示されます。結果は、「ベット開始」、「ブローする前の合計ロール数」、「最高額ウォン」、および「最高額ウォンからのロールカウント」です。
は、これまでのところ私は働いて、それのほとんどを持っているが、結果は常に似ています。すべての結果は、開始賭けと同じであり、最高額が勝っ除いて、それは常に起動賭けよりも1以下です。
私のwhileループと関係がありますか?私は物事を動かし、bet = bet + 4
ではなく代入演算子を+=
に変更しようとしましたが、常に同じです。どんな入力でも大変感謝しています!
function hideResults() {
document.getElementById("results").style.display = "none";
}
function play() {
var startingBet = document.getElementById("betInput").value;
var bet = startingBet;
var dice1 = Math.floor(Math.random() * 6) + 1;
var dice2 = Math.floor(Math.random() * 6) + 1;
var diceRoll = dice1 + dice2;
var betsArray = [];
while (bet > 0) {
if(diceRoll != 7) {
bet -= 1
} else {
bet += 4
}
betsArray.push(bet)
}
var rollCounter = betsArray.length;
var highestAmount = Math.max.apply(Math, betsArray);
var highestPosition = betsArray.indexOf(highestAmount);
var rollsFromHighest = rollCounter - highestPosition;
function showResults() {
document.getElementById("results").style.display = "inline";
document.getElementById("playButton").innerHTML = "Play Again";
document.getElementById("resultsBet").innerHTML = "$" + startingBet +".00";
document.getElementById("resultsRollCounter").innerHTML = rollCounter;
document.getElementById("resultsHighestHeld").innerHTML = "$" + highestAmount + ".00";
document.getElementById("resultsRollsFromHighest").innerHTML = rollsFromHighest;
};
showResults();
}
HTML:
<!DOCTYPE html>
<html>
<head>
<title>Lucky Sevens</title>
<link href="css/LuckySevensStyles.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="js/LuckySevensV1.js"></script>
</head>
<body onload="hideResults()">
<!-- BET STUFFS -->
<div id="gameDiv">
<h1>Lucky Sevens</h1>
<span>Starting Bet:<input type="number" name="Starting Bet" id="betInput" placeholder="$0.00"></span>
<br/>
<button onclick="play()" id="playButton">Play</button>
</form>
</div>
<!-- RESULT STUFFS -->
<div id="results">
<table>
<caption><h2>Results</h2></caption>
<tr>
<th>Starting Bet</th>
<th id="resultsBet"></th>
</tr>
<tr>
<td>Total Rolls Before Going Broke</td>
<td id="resultsRollCounter"></td>
</tr>
<tr>
<td>Highest Amount Won</td>
<td id="resultsHighestHeld"></td>
</tr>
<tr>
<td>Roll Count at Highest Amount Won</td>
<td id="resultsRollsFromHighest"></td>
</tr>
</table>
</div>
</body>
</html>
場合、それは後のループにdice1 & dice2とdiceRollのVARのインスタンスから、あなたの行をコピー&ペーストするのも簡単ですwhileループ内でダイスを巻き戻さない。 – James
あなたは決してサイコロを振ってはいけません。賭け金やロールの数に上限があると確信しています。プレイヤーが0ドルに達するまでのポイントが再生されない限り、 –
私のループ内のdiceRollはすべてのループの後にリセットされませんか?そしてポイントは、プレイヤーは、その後の結果は声明 – eric