D&Dキャラクターをレベルアップするときにやらなければならないことすべてを思い出すのに苦労しています。なんらかの理由で、私を困らせることの1つは、新しい最大HP値がどうあるべきかを理解することです。この課題では、正しい値を自動的に計算するプログラムまたは関数を作成します。
用語
最大HPを計算するために最初に知っておく必要があるのは、「構成修飾子」です。各DNDキャラクターには、6つの整数アビリティスコアがあり、1つは憲法のものです。この課題に必要な唯一の関連知識は、憲法の能力スコアが別の統計値、つまり憲法修正因子にどのように影響するかです。つまり、修飾子はに等しくなりfloor( (ability_score - 10) / 2 )ます。冒険者は、1〜20の能力スコアのみを持つことができます。コードがその範囲外のスコアを処理する必要はありません。つまり、-5未満または+5より大きい修飾子を処理する必要はありません。Constitution修飾子はキャラクターがレベルアップするにつれて変化する可能性がありますが、HPへの影響は遡及的に適用されるため、現在の最大HPを計算するには現在の値のみが必要です。
(これは、チャレンジとは全く無関係であるが、それは最大HPにどのような影響を与えるかについて、あなたがしている好奇心の場合:あなたは、それはだから「タフ」偉業は、HPの計算の目的のために、文字の憲法の修正に2を加えると仮定することができます効果的にそれが何をしますか。それは偉業のテキストではありませんが、数学はまったく同じになるように機能します。答えでこの偉業を処理する必要はありません。)
次に、すべてのクラスには「ヒットダイ」タイプが割り当てられており、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のキャラクターになり、2回レベルアップすることで、現在の位置に到達しました。
最大HPの計算方法
キャラクターの最大HPは、レベル1のHPと各レベルで受け取った増加の合計に等しくなります。
レベル1
レベル1では、キャラクターのHPは、ヒットダイス(ダイスの名前に含まれる数字で、6面以上のサイコロに不慣れな方)の可能な限り高いロールに、憲法修正値を加えたものに等しくなります。後のレベルでHPを計算するとき、計算のこの部分は憲法が変わるたびにやり直されるため、キャラクターの憲法は常に同じであると仮定することができます。
レベルアップするとき
キャラクターがレベルアップするたびに、2つのオプションがあります。彼らは、ヒットしたサイコロの1つを振るか、そのサイコロの平均のロールを取る(切り上げ)ことができます。どちらを選択しても、構成修飾子が結果に追加されます。この合計は、HPが増加する量です。この課題では、常に平均ロールが取られるため、出力は決定的です。(繰り返しますが、6面以上のサイコロに慣れていない場合は、切り上げた平均ロールをとして計算できます(highest_possible_roll / 2) + 1。)
注目すべき例外が1つあります。キャラクターの最大HPは、レベルが上がるたびに少なくとも1増加します2。上記の段落の指示がレベルアップ時に0以下の増加をもたらす場合、代わりに1増加します。
チャレンジ
プログラムまたは関数は3つの入力を受け取ります。
- 文字列としてのキャラクターのクラス
- キャラクターのレベル
- キャラクターの憲法能力スコア(修飾子ではない)
出力されるのは、キャラクターの現在の最大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の主任デザイナーであるマイク・ミアーズは、2015年3月にツイートしました。これは、リードルールの開発者であるJeremy Crawfordからのツイートを議論する方法とは異なりますが、それが彼らが意図したものである証拠であるため、このチャレンジに使用します。