Javascript 在这个简单的任务中重新分配youHit变量的意义是什么?
这是我的作业,我知道我在做什么,因为这是我的第三节简单课。然而,我知道重新分配you Hit课程是有意义的,但我看不出来。有人能解释一下目的吗?Javascript 在这个简单的任务中重新分配youHit变量的意义是什么?,javascript,Javascript,这是我的作业,我知道我在做什么,因为这是我的第三节简单课。然而,我知道重新分配you Hit课程是有意义的,但我看不出来。有人能解释一下目的吗?youHit在循环中被选中。你感兴趣的重新分配将改变循环下一次迭代的行为:当它再次到达if(youHit)时,它将检查youHit的新值。我的猜测是,它将根据对龙的伤害模拟下一次命中。但是,youHit将永远不会变为负值,因为Math.random()返回的值介于0和1之间(每个MDN包含0,不包含1) 如果youHitwhere to go negat
youHit
在循环中被选中。你感兴趣的重新分配将改变循环下一次迭代的行为:当它再次到达if(youHit)
时,它将检查youHit
的新值。我的猜测是,它将根据对龙的伤害模拟下一次命中。但是,youHit
将永远不会变为负值,因为Math.random()
返回的值介于0和1之间(每个MDN包含0,不包含1)
如果youHit
where to go negative,那么If(youHit)
将为假,龙将获胜。while
循环一直持续到战斗结束。我们无法看到所有代码,但解决方案可能是将youHit
更改为可能为负值
我想这样做:
var slaying = true;
var youHit = Math.floor(Math.random() * 2);
var damageThisRound = Math.floor(Math.random() * 5 + 1);
var totalDamage = 0;
while (slaying) {
if (youHit) {
console.log("Congrats you hit the dragon!");
totalDamage += damageThisRound;
if(totalDamage >= 4) {
//This one right here.....
youHit = Math.floor(Math.random() * 5 + 1);
};
}else {
console.log("The dragon beat you boyeeeeee");
};
我不确定这个分布可能是50%的负值和50%的正值,但就我们这里的目的而言,它足够接近了。我想说的是,除了+1部分之外,它没有任何意义。添加+1将使其始终返回1或更高,因此不是0,也不是false。一旦你对龙造成了超过4点的伤害,它现在太虚弱了,无法躲避在杀戮过程中对它的任何攻击:)为什么它不是你命中=1?没有线索。如果它没有被分配,你永远不会改变你是否被击中,因为杀人时总是一样。这不是你问题的答案,但我想说的是,
youHit
不是一个类,它是一个变量。EcmaScript 5(普通JavaScript)没有类。是的,哎呀,只是键入了错误的内容而已。我太习惯css.lolWell了,在那之前我有一个Math.floor,所以如果它小于0.5,它将被四舍五入到0,这也是错误的……我想你在这一轮也看到了损伤,但这都是好人。谢谢你的回答。@kingbumworthyphhacktivist是的,但是你+1它,所以它不会降到0。
(Math.random() - 0.5) * 5