如何在我的文本冒险中打印If/Else语句中正确的随机数组值
How Do I Print Correct Random Array Value Within If/Else Statement in my Text Adventure?
我正在尝试进行一次文本冒险,它将根据特定的输入输出正确的控制台日志语句。我希望这样,如果妖精造成足够的攻击伤害,使玩家的防御低于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);
在我的代码底部,只要玩家在代码的前一部分攻击妖精后,妖精的hp(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!");
}
}
但无论我在代码中运行多少次,控制台日志都会打印出"地精造成了0伤害!"即使地精的atk将玩家的def减至小于0。如果玩家的def小于0,控制台日志应该打印出正确的伤害量。
根据注释,您的随机生成器应该包括下限和上限:
function getRandomArbitrary(min, max) {
return Math.random() * (max - min) + min;
}
var rand = getRandomArbitrary(3,5)
评论:
正如另一个(已删除的)答案所说,你应该重新计算妖精每次攻击的随机数,否则妖精将始终具有相同的攻击力
相关文章:
- 循环通过数组的If语句不起作用
- 在Javascript中将一个值和字符串数组转换为if语句
- JavaScript 数组使用 if 语句扁平化
- javascript中的数组和if语句存在问题
- 使用 Javascript switch 语句,如何计算数组中元素的数量(仅数字)
- 如何使用for循环语句通过Ajax发送大数据数组
- 将数组放入if语句的变量中
- 使用数组填充if语句值
- 在Javascript中,有没有一种方法可以用一个语句创建一个索引对象数组
- 如何在单个语句中的 $$('selector') 数组上使用 PrototypeJS .wrap()
- 无法访问我在条件语句/循环不启动的循环中的数组或对象值
- 如何将用户输入放入数组中?对于语句可以进入 if/else 语句吗?(Javascript)
- 在嵌套在 for 循环 (JavaScript/jQuery) 中的 switch 语句中计算 jQuery 数组的元素
- 如何通过最小化语句数来简化数组的以下编码
- 在 if 语句内向 javaScript 数组添加更多元素
- JQuery If 语句使用数组中的每个值
- for 语句不从数组返回值
- 如何在Jquery中搜索类似SQL like value%语句的数组
- Jquery数组.如何同时显示与if语句匹配的数组元素
- javascript if语句优化数组长度标志