我很难记住升级D&D角色时要做的一切。无论出于什么原因,给我带来麻烦的事情之一就是弄清楚它们的新最大HP值应该是多少。为应对这一挑战,您将编写一个程序或函数来自动计算正确的值。
术语
要计算最大HP,您需要了解的第一件事是“宪法修改器”。每个DND角色都有六个整数能力得分,其中一个是体质得分。这项挑战所需的唯一相关知识是宪法能力得分如何影响另一个属性,即宪法修正。简而言之,修饰符等于floor( (ability_score - 10) / 2 )。冒险者只能获得1到20(含)之间的能力得分。您的代码将永远不必处理超出该范围的分数,这也意味着它将永远不必处理小于-5或大于+5的修饰符。尽管“体质”修改器可以随着角色升级而改变,但它对HP的影响会追溯应用,因此仅需要其当前值即可计算当前的最大HP。
(这与挑战完全无关,但是如果您对它如何影响最大HP感到好奇:您可以假设“强壮”专长在角色的体质修改器中增加2,以进行HP计算,因为这实际上是它的作用这不是专长的文字,但数学公式完全相同。您不必在回答中处理此专长。)
接下来,每个类别都有一个分配的“命中失败”类型,该类型涉及计算HP。下表列出了每个班级的命中骰子。
Sorcerer: d6
Wizard: d6
Bard: d8
Cleric: d8
Druid: d8
Monk: d8
Rogue: d8
Warlock: d8
Fighter: d10
Paladin: d10
Ranger: d10
Barbarian: d12
最后是角色的等级。所有影响的是下一部分中将值添加到运行总计中的次数。字符级别是1到20之间的整数,包括1。您的代码将永远不必处理超出该范围的级别。要达到等级n,角色将从等级1开始并提升n-1时间。例如,一个3级角色通过成为1级角色并升级两次而达到了他们所在的位置。
如何计算最大生命值
角色的最大生命值等于其在等级1处的生命值加上在每个等级中获得的增加值之和。
1级
在等级1上,角色的HP等于其命中骰子上的最高掷骰数(骰子名称中的数字,对于不熟悉骰子且面数多于6的那些人)加上其体质修改器。请记住,在以后计算HP时,您可能会假定角色的体质始终是相同的,因为每次更改体质时都会重新计算此部分。
升级时
每次角色升级时,都有两个选择。他们可以掷一个命中骰子,也可以掷该骰子的平均骰子(四舍五入)。无论选择哪种方法,都会将其“宪法”修改器添加到结果中。这个总数就是他们的HP增加的数量。对于此挑战,始终采用平均滚动,因此输出是确定性的。(同样,如果您不熟悉> 6面骰子,则可以将向上舍入的平均掷骰计算为(highest_possible_roll / 2) + 1。)
有一个值得注意的例外。角色每次升级2时,其最大HP总是至少增加1 。如果上段中的说明在升级时导致增加0或更少,则增加1。
挑战
您的程序或函数将接受三个输入:
- 字符的类,作为字符串
- 角色等级
- 角色的体质能力得分(不是修正值)
它只会输出一件事:角色当前的最大HP。
例子
在此链接上可以找到输入及其关联输出的每种可能组合。为了让您在此页面上有所了解,这里随机选择了30个测试用例:
Barbarian, 15th level, 13 CON: 125
Rogue, 10th level, 18 CON: 93
Wizard, 15th level, 18 CON: 122
Wizard, 16th level, 1 CON: 16
Barbarian, 15th level, 7 CON: 80
Warlock, 15th level, 3 CON: 18
Ranger, 14th level, 1 CON: 18
Warlock, 3rd level, 14 CON: 24
Druid, 3rd level, 4 CON: 9
Cleric, 11th level, 5 CON: 25
Bard, 20th level, 11 CON: 103
Barbarian, 11th level, 13 CON: 93
Bard, 8th level, 19 CON: 75
Bard, 16th level, 17 CON: 131
Fighter, 10th level, 6 CON: 44
Monk, 10th level, 2 CON: 13
Cleric, 14th level, 17 CON: 115
Cleric, 6th level, 5 CON: 15
Rogue, 7th level, 13 CON: 45
Cleric, 4th level, 14 CON: 31
Rogue, 19th level, 15 CON: 136
Paladin, 13th level, 13 CON: 95
Cleric, 13th level, 15 CON: 94
Bard, 8th level, 5 CON: 19
Monk, 20th level, 11 CON: 103
Barbarian, 8th level, 20 CON: 101
Monk, 1st level, 4 CON: 5
Bard, 5th level, 17 CON: 43
Monk, 18th level, 7 CON: 57
Wizard, 17th level, 5 CON: 19
1.严格来说,我认为没有规则说最高水平是20。但是,21不再是本书中的表格,可以告诉您规则中的各种数字应该是什么,包括达到该规则所需的经验。这对我来说已经足够了。
2.实际上,我认为RAW并非如此。我在rpg.se上问,这样的事情似乎在任何地方都没有写下来。但是,D&D的首席设计师Mike Mearls 在2015年3月发布了推文。您不能以这种方式来争辩主要规则开发人员Jeremy Crawford的推文,但有证据表明这正是他们的意图,因此我将其用于挑战。