Javascript 从一个变量中提取一个随机数,存储这个新值,然后重复这个过程直到它达到0?

Javascript 从一个变量中提取一个随机数,存储这个新值,然后重复这个过程直到它达到0?,javascript,Javascript,通过不断降低随机数,试图使hp条从200降到0,但我只能设法存储一次新值。然后,如果我点击调用函数的按钮,它会再次从200中减去,而不是之前存储的值。我该如何解决这个问题?在这里发疯 以下是我的javascript: window.onload = function() { document.getElementById("hpLeft1").innerHTML= "200/200"; document.getElementById("hpLeft2").innerHTML =

通过不断降低随机数,试图使hp条从200降到0,但我只能设法存储一次新值。然后,如果我点击调用函数的按钮,它会再次从200中减去,而不是之前存储的值。我该如何解决这个问题?在这里发疯

以下是我的javascript:

window.onload = function() { 
    document.getElementById("hpLeft1").innerHTML= "200/200";
    document.getElementById("hpLeft2").innerHTML = "200/200";
};

var myHit = Math.floor(Math.random() * 40 + 1);
var dragonHit = Math.floor(Math.random() * 40 + 1);
var playerHitpoints, dragonHitpoints = 200;


function play() {

    var myHit = Math.floor(Math.random() * 40 + 1);
    var dragonHit = Math.floor(Math.random() * 40 + 1);

    dragonHitpoints -= dragonHit;
    playerHitpoints -= myHit;

    document.getElementById("DragonHit").innerHTML = dragonHit;
    document.getElementById("MyHit").innerHTML = myHit;

    document.getElementById("hpLeft1").innerHTML = dragonHitpoints + "/200";
    document.getElementById("hpLeft2").innerHTML = playerHitpoints + "/200";
}

您想更新
dragonHitpoints
playerHitpoints
的值

function play() {
  var myHit = Math.floor(Math.random() * 40 + 1);
  var dragonHit = Math.floor(Math.random() * 40 + 1);

  // Update the dragon's HP
  dragonHitpoints -= dragonHit;
  // Update the player's HP
  playerHitpoints -= myHit;      

  document.getElementById("DragonHit").innerHTML = dragonHit;
  document.getElementById("MyHit").innerHTML = myHit;

  document.getElementById("hpLeft1").innerHTML = dragonHitpoints + "/200";
  document.getElementById("hpLeft2").innerHTML = playerHitpoints + "/200";
}

您的代码中有一个问题。您正在声明局部变量,这些变量将覆盖外部变量:

function play() {

var myHit = Math.floor(Math.random() * 40 + 1);
var dragonHit = Math.floor(Math.random() * 40 + 1);
这应该是

function play() {

myHit = Math.floor(Math.random() * 40 + 1);
dragonHit = Math.floor(Math.random() * 40 + 1);

从外部重复使用变量。

减法在哪里?@Barmar'var dragonHit=Math.floor(Math.random()*40+1);'需要从“var dragonHitpoints=200;”中减去并存储到“var storeDragon”中,这是我的观点。如果这是你想做的,为什么不减去它呢?因为我真的很笨,没有想到要做什么显而易见的事情haha@Barmar看看我更新的代码,为什么playerHitpoints显示为NaN而dragonHitpoints不显示?这些变量不需要重用。我应该惩罚自己,尝试了所有的高级解决方案,但没有明显的简单解决方案lol。。干杯