我决定找到堆栈溢出的明智之举,希望能够对我的问题有所了解。我是javascript的新手,我参加的学校给了我们一个创建Lucky 7计划的任务。
说明是用户下注,点击播放,并掷出两个骰子。如果骰子总数为7,则向用户下注4美元,如果没有,则减去1美元。
玩家达到$ 0后,会显示一个显示结果的表格。所显示的结果是"开始下注","去年前的总票数","最高金额赢得"和"从最高金额赢得的数量#&# 34。
到目前为止,我已经完成了大部分工作,但结果总是相似的:所有结果都与首发赌注相同,除了获胜的最高金额,总是比起始赌注少1。 / p>
它可能与我的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>
答案 0 :(得分:1)
VARIABLE diceRoll不会重新计算随机数。在将更新后的赌注推送到阵列后,您应该重新分配循环中的随机数。
如果你愿意,你可以编写一个函数来处理这个问题,但是从dice1&amp; amp;中复制和粘贴你的行也同样容易。 dice2和diceRoll var实例化到if块后的循环