我正在开展我的第五个JavaScript项目,这是一场RPG式的战斗。玩家开始时有20个生命值和1个可恢复5点生命值的药水。一切顺利,但事实上如果你使用完全健康的药水(20),你的健康就会达到25.我想限制它以使玩家的最大生命值达到20,所以如果你使用了完全健康的药水,它什么都不做,或者如果你在16健康中使用它,它恢复到20,而不是21.我已经研究了Math.min
/ Math.max
方法,以及将它们与parseInt
一起使用来创建最小/最大限制,但是当我将其集成到我的代码中时,它并没有起作用。任何帮助表示赞赏。
答案 0 :(得分:0)
使用Math.min()
,如下所示:
var health = 16;
var potion = 5;
health = Math.min(20, health + potion)
这可能有点违反直觉,但你使用Math.min()
作为" max"上限和Math.max()
表示" min"帽。
答案 1 :(得分:0)
我很欣赏答案(好吧,至少有一个),但我有一位朋友指出了一个非常简单的解决方案,这让我觉得有点愚蠢。
var itemSelection = prompt("HP: " + playerHp + "\nItems:\n1.Potion - INFO: Restores 5 HP. Can attack after use" + "\nQTY: " + potions + "\n2.Exit");
switch (itemSelection) {
case '1':
if(playerHp === 20){
alert("You are already at full health.");
}else{
playerHp += 5;
potions -= 1;
if (playerHp > 20) {
playerHp = 20;
}
}
playerTurn();
break;
case '2':
playerTurn();
break;
default:
alert("Invalid choice.");
itemMenu();
}