首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用原始的Javascript创建Lucky 7的游戏,我做错了什么?

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

Stack Overflow用户
提问于 2016-05-21 21:49:03
回答 1查看 2K关注 0票数 0

我决定来看看堆栈溢出的聪明之处,希望能对我的问题有所了解。我是javascript的新手,我所在的学校给了我们一个任务,来创建一个Lucky 7的项目。

说明是一个用户放置一个赌注,点击播放,和两个骰子滚动。如果骰子总数为7,则将4美元添加到用户打赌中,如果没有,则减去1美元。

一旦播放器达到$0,就会显示一个显示结果的表。结果显示:“开始投注”、“破产前的总滚”、“最高金额韩元”和“最高金额韩元的滚数”。

到目前为止,我已经得到了它的大部分工作,但结果总是相似的:所有的结果都是相同的开始赌注,除了最高数额的韩元,即总是比开始赌注少1。

这跟我的时间循环有关吗?我尝试过移动东西,并将赋值操作符改为+=而不是bet = bet + 4,但始终是一样的。任何输入都将不胜感激!

代码语言:javascript
复制
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:

代码语言:javascript
复制
<!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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-21 22:43:27

变量diceRoll不会重新计算随机数。在将更新的投注推到数组后,您应该重新分配循环中的随机数。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37368351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档