我决定来看看堆栈溢出的聪明之处,希望能对我的问题有所了解。我是javascript的新手,我所在的学校给了我们一个任务,来创建一个Lucky 7的项目。
说明是一个用户放置一个赌注,点击播放,和两个骰子滚动。如果骰子总数为7,则将4美元添加到用户打赌中,如果没有,则减去1美元。
一旦播放器达到$0,就会显示一个显示结果的表。结果显示:“开始投注”、“破产前的总滚”、“最高金额韩元”和“最高金额韩元的滚数”。
到目前为止,我已经得到了它的大部分工作,但结果总是相似的:所有的结果都是相同的开始赌注,除了最高数额的韩元,即总是比开始赌注少1。
这跟我的时间循环有关吗?我尝试过移动东西,并将赋值操作符改为+=而不是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>发布于 2016-05-21 22:43:27
变量diceRoll不会重新计算随机数。在将更新的投注推到数组后,您应该重新分配循环中的随机数。
如果您愿意,可以编写一个函数来处理这个问题,但是从dice1 & dice2和diceRoll var实例化中复制和粘贴行到If块之后的循环也同样容易。
https://stackoverflow.com/questions/37368351
复制相似问题