我试图让虚拟赌场用Javascript练习。我已经让轮盘赌工作,所以现在我想添加一个"货币"特征。基本上,玩家以200美元进入赌场,当他或她赌博时,他们的货币金额会发生变化。
这是我尝试做的事情。在文档的html部分,有一个句子写着"你现在有200美元。" 200被括在一个名为" m。"的div中。变量" money"然后从那个句子/ div中取这个数字。当玩家旋转轮盘赌时,钱被减去或加到可变货币上,然后是div的内容" m"相应地改变了。
我希望的是,在玩家转动方向盘之后,这将改写div' m的内容,这反过来会改变变量" money。& #34;但是,这不起作用。这是代码示例:
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&#39; m&#39;会闪现一个数字&#34; -7&#34;或&#34; 21&#34;如果,显示玩家赢了或输了多少,然后立即恢复为200.如果我放了一个&#34; parseInt()&#34;围绕变量&#34; money&#34;的分配,只会导致它闪现&#34; NaN。&#34;即使我放弃了这个概念,只要把#34; var money = 200&#34;,它就会闪现&#34; 193&#34;在返回200之前。
如何使这项工作?如何根据投注结果增加或减少货币变量,并且可以跨越多个旋转?
答案 0 :(得分:1)
您在文档的头部定义了money
,它在<div id="m">
可用之前执行。您还要将值设置为元素而不是元素中的文本。结果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>