【问题标题】:"Currency" currency variable in virtual casino not working, instantly resets虚拟赌场中的“货币”货币变量不起作用,立即重置
【发布时间】:2017-10-24 10:26:14
【问题描述】:

我正在尝试制作一个虚拟赌场来练习使用 Javascript。我已经开始使用轮盘赌,所以现在我想添加一个“货币”功能。基本上,玩家带着 200 美元进入赌场,随着他或她赌博,他们的货币金额会发生变化。

这是我尝试做的。在文档的 html 部分,有一句话是“你目前有 200 美元”。 200 包含在一个名为“m”的 div 中。变量“money”然后从那个句子/div 中获取这个数字。当玩家旋转轮盘时,货币被减去或加到变量money中,然后div“m”的内容相应地改变。

我希望的是,在玩家转动方向盘后,它会重写 div 'm' 的内容,这反过来会改变变量“money”。但是,这只是行不通。以下是代码示例:

var money = document.getElementById("m");

function spin(){
  var landing = Math.floor(Math.random() * 4) + 1;   

  var nsvalue = parseInt(document.regular_roulette.num_select.value);

  var betvalue = parseInt(document.regular_roulette.bet.value);

  if (landing === nsvalue) {
    alert("You win $" + betvalue * 3);

    money = money + (betvalue * 3);
  } else {
    alert("You lose $" + betvalue);

    money = money - betvalue;
  }

  document.getElementById("m").innerText = money;
}

//why is it fleeting?  I've seen this before.
        </script>
</head>
<body>

    You currently have $<div id = "m">200</div>

假设玩家下注 7 美元。发生的情况是 div 'm' 将闪烁一个数字“-7”或“21”,如果显示玩家赢或输了多少,然后立即恢复为 200。如果我在周围放置一个“parseInt()”变量“money”的赋值,只会导致它闪烁“NaN”。即使我抛弃这个概念,只输入“var money = 200”,它也会在返回到 200 之前闪烁“193”。

我该如何进行这项工作?如何根据投注结果增加或减少货币变量并且可以跨越多次旋转?

【问题讨论】:

    标签: javascript html


    【解决方案1】:

    您在文档头部定义money,在&lt;div id="m"&gt; 可用之前执行。您还将值设置为元素而不是元素中的文本。因此,money 未定义。

    您需要将它放在 onload 处理程序中或在结束正文标记之前。

    我不知道document.regular_roulette 的情况如何,所以这只是使用静态值,但它可能会有所帮助:

    var money
    
    function spin() {
      var landing = Math.floor(Math.random() * 4) + 1;
      var nsvalue = parseInt(10);
      var betvalue = parseInt(10);
      if (landing === nsvalue) {
        document.getElementById('alert').innerHTML = "You win $" + betvalue * 3
        money = money + (betvalue * 3);
      } else {
        document.getElementById('alert').innerHTML = "You lose $" + betvalue
        money = money - betvalue;
      }
      document.getElementById("m").innerText = money;
    }
    window.onload = function() {
      money = parseInt(document.getElementById("m").innerText);
    }
    You currently have $
    <div id="m">200</div>
    <div id="alert"></div>
    <button onclick="spin()">spin</button>

    【讨论】:

    • 对不起,我应该把 onload 处理程序放在哪里?
    • @DennisMarkham 我添加了一个示例。如果这是我的,我会在 javascript 中设置资金并将其添加到 div 中,而不是从 div 中读取它——但这是一个不同的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-29
    • 1970-01-01
    • 2014-08-01
    • 2011-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多