gpt4 book ai didi

javascript - 如何在我的文本冒险中的 If/Else 语句中打印正确的随机数组值?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:15:06 25 4
gpt4 key购买 nike

我正在尝试进行文本冒险,根据特定输入输出正确的控制台日志语句。我想要这样,如果地精造成足够的攻击伤害,使玩家的防御小于 0,那么控制台日志将打印出“地精做了”x 量的“伤害!”。这是我在代码顶部的变量列表:

//player stats
var atk= 1;
var def= 1;
var hp= 10;
var mp= 0;
var block= 1;
var magic= 0;
//goblin stats
var gobAtk= [3,4,5];
var gobDef= 1;
var gobHp= 5;
var gobMagDef= 0;
var rand= Math.floor(Math.random()* gobAtk.length);

在我的代码底部,只要玩家在代码的前面部分攻击地精后地精的生命值 (var gobHp) 没有降为零,就会调用特定的 if/else 条件。在这里:

else {
def-=rand;
if(def<0) {
hp-=Math.abs(rand);
console.log("The Goblin did"+ " "+ Math.abs(rand)+ " "+ "Damage!");
if(hp<=0) {
console.log("The Goblin defeated you! You died");
console.log("Game Over.");

}

}
else {
console.log("The Goblin did 0 damage!");
}
}

但无论我运行代码多少次,控制台日志总是打印出“The Goblin did 0 damage!”即使地精的攻击减去玩家的防御小于 0。如果玩家的防御小于 0,控制台日志应该打印出正确的伤害量。

最佳答案

根据评论,您的随机生成器应包括下限和上限:

function getRandomArbitrary(min, max) {
return Math.random() * (max - min) + min;
}
var rand = getRandomArbitrary(3,5)

评论:

正如另一个(已删除的)答案所述,您应该重新计算地精每次攻击的随机数,否则地精将始终具有相同的攻击力

关于javascript - 如何在我的文本冒险中的 If/Else 语句中打印正确的随机数组值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33468262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com