使用原始Javascript创建Lucky 7&#39的游戏,我做错了什么?

时间:2016-05-21 21:49:03

标签: javascript

我决定找到堆栈溢出的明智之举,希望能够对我的问题有所了解。我是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>

1 个答案:

答案 0 :(得分:1)

VARIABLE diceRoll不会重新计算随机数。在将更新后的赌注推送到阵列后,您应该重新分配循环中的随机数。

如果你愿意,你可以编写一个函数来处理这个问题,但是从dice1&amp; amp;中复制和粘贴你的行也同样容易。 dice2和diceRoll var实例化到if块后的循环