javascript - JS帮助: While Loop

标签 javascript html while-loop

帮助: 我对 JS 有点陌生,需要函数方面的帮助。 我需要修改这个函数,使其仅在分数 < 20 时运行, 我还想做一个变体,你划船 4 次,然后就不能再滚动了。

<html>
<head>
<font face="verdana">
<title>The Game Of Pig</title>
<body background="h.jpg">
<center>
<table border="1">
<script>
alert("Welcome to the Game of Pig!");
function roll() {
    return Math.floor(Math.random() * 6) + 1;
}
function game() {
    var die = document.getElementById("die"),
        score = document.getElementById("score"),
        d,
        d = roll();
    die.innerHTML = d;
    if (d !== 1) {
        score.innerHTML = parseInt(score.innerHTML, 10) + d;
    }
    if (d === 1) {
        score.innerHTML = 0;
    }
} 

</script>
</head>
<body>
<form>

<h1>Dice Roll</h1>
<br>
<br>
<br>
<br>
<div style="width:200px;height:108px;border:4px solid black;">
    <h2>Total: <span id="score">0</span></h2>

    <div>
        <span id="die">0</span>
    </div>
    <input type="button" value="Roll" id="roll" onclick="game();">  
    </center>
</form>
</body>
</font>
</html>

最佳答案

不需要解析回dom元素的内容。在全局范围内使用变量。他们将在游戏调用之间保持其值(value)。

var die, score = 0, attempts = 0;
var die_div = document.getElementById("die");
var score_div = document.getElementById("score");

function game() {
  var d = roll();
  if(score + d > 20) return;
  if(attempts > 3) return;    
  die_div.innerHTML = d;
  score =  (d=== 1)?0:(score+d);
  score_div.innerHTML = score;
  attempts++;
} 

关于javascript - JS帮助: While Loop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26877888/

相关文章:

javascript - 使用表单发送数据并从 Request.Form 中读取数据

javascript - JEST : "Async callback was not invoked within the 5000ms timeout specified by jest.setTimeout.", 尽管已经配置

html - 为什么 Chrome 在这种情况下不尊重负边距?

php - fatal error mysql和登录表单

javascript - JS while 循环数组[i++]。它是如何工作的?

javascript - 从图像数组动画转换?

javascript - 浏览器图像上的像素到米的转换

javascript - 淡化动态更改的 (jQuery) 背景图像?

css - HTML/CSS : Extra spacing above and below text-type input

objective-c - Xcode Objective C while 循环无法访问全局变量