如何限制数字以使其低于JavaScript中的特定上限数字

时间:2014-03-22 05:13:23

标签: javascript numbers

我正在开展我的第五个JavaScript项目,这是一场RPG式的战斗。玩家开始时有20个生命值和1个可恢复5点生命值的药水。一切顺利,但事实上如果你使用完全健康的药水(20),你的健康就会达到25.我想限制它以使玩家的最大生命值达到20,所以如果你使用了完全健康的药水,它什么都不做,或者如果你在16健康中使用它,它恢复到20,而不是21.我已经研究了Math.min / Math.max方法,以及将它们与parseInt一起使用来创建最小/最大限制,但是当我将其集成到我的代码中时,它并没有起作用。任何帮助表示赞赏。

2 个答案:

答案 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();
}