Ich kann mich nur schwer an alles erinnern, was ich tun muss, um einen D & D-Charakter zu verbessern. Aus irgendeinem Grund ist eines der Dinge, die mir Probleme bereiten, herauszufinden, wie hoch ihr neuer maximaler HP-Wert sein sollte. Für diese Herausforderung schreiben Sie ein Programm oder eine Funktion, um den korrekten Wert automatisch zu berechnen.
Terminologie
Das erste, was Sie wissen müssen, um die maximale HP zu berechnen, ist der "Konstitutionsmodifikator". Jedes DND-Zeichen hat sechs ganzzahlige Fähigkeitswerte, darunter einen für die Konstitution. Das einzige relevante Wissen, das für diese Herausforderung erforderlich ist, ist, wie sich die Bewertung der Konstitutionsfähigkeit auf einen anderen Wert auswirkt, nämlich den Konstitutionsmodifikator. Kurz gesagt, der Modifikator ist gleich floor( (ability_score - 10) / 2 ). Abenteurer können nur Fähigkeitswerte von 1 bis einschließlich 20 haben. Ihr Code muss niemals Punkte außerhalb dieses Bereichs verarbeiten, was auch bedeutet, dass er niemals einen Modifikator verarbeiten muss, der kleiner als -5 oder größer als +5 ist. Obwohl sich der Konstitutionsmodifikator mit zunehmender Charakterstufe ändern kann, werden seine Auswirkungen auf HP rückwirkend angewendet, sodass nur sein aktueller Wert zur Berechnung der aktuellen maximalen HP benötigt wird.
(Dies ist für die Herausforderung völlig irrelevant, aber wenn Sie neugierig sind, wie sich dies auf die maximale HP auswirkt: Sie können davon ausgehen, dass das Talent "Tough" dem Konstitutionsmodifikator eines Charakters für die Zwecke der HP-Berechnung 2 hinzufügt, da dies effektiv der Fall ist Das ist nicht der Text des Kunststücks, aber die Mathematik funktioniert genau gleich. Sie müssen dieses Kunststück in Ihrer Antwort nicht behandeln.)
Als nächstes hat jede Klasse einen "Trefferwürfel" -Typ zugewiesen, der an der Berechnung der HP beteiligt ist. In der folgenden Tabelle sind die Trefferwürfel für jede Klasse aufgeführt.
Sorcerer: d6
Wizard: d6
Bard: d8
Cleric: d8
Druid: d8
Monk: d8
Rogue: d8
Warlock: d8
Fighter: d10
Paladin: d10
Ranger: d10
Barbarian: d12
Schließlich das Level des Charakters. Dies wirkt sich lediglich darauf aus, wie oft im laufenden Abschnitt ein Wert zur laufenden Summe hinzugefügt werden soll. Die Stufe eines Charakters ist eine ganze Zahl von 1 bis 20, einschließlich 1 . Ihr Code muss niemals eine Ebene außerhalb dieses Bereichs verarbeiten. Um ein Level zu erreichen n, beginnt ein Charakter mit Level 1 und erhöht die n-1Zeiten. Zum Beispiel kam ein Charakter der Stufe 3 dahin, wo er sich befindet, indem er ein Charakter der Stufe 1 war und zweimal aufstieg.
So berechnen Sie die maximale HP
Die maximale HP eines Charakters entspricht seiner HP auf Stufe 1 plus der Summe der Erhöhung, die er auf jeder Stufe erhalten hat.
Auf Stufe 1
Auf Stufe 1 entspricht die HP eines Charakters dem höchstmöglichen Wurf auf seinem Trefferwürfel (die Zahl im Namen des Würfels für diejenigen unter Ihnen, die mit Würfeln mit mehr als 6 Seiten nicht vertraut sind) plus ihrem Konstitutionsmodifikator. Denken Sie daran, dass Sie bei der Berechnung von HP auf einer späteren Ebene davon ausgehen können, dass die Konstitution eines Charakters immer dieselbe war, da dieser Teil der Berechnung jedes Mal wiederholt wird, wenn sich die Konstitution ändert.
Beim Aufstieg
Jedes Mal, wenn ein Charakter aufsteigt, haben sie zwei Möglichkeiten. Sie können entweder einen ihrer Trefferwürfel werfen oder den durchschnittlichen Wurf dieses Würfels (aufgerundet) nehmen. Unabhängig davon, was sie wählen, wird ihr Konstitutionsmodifikator zum Ergebnis hinzugefügt. Diese Summe ist der Betrag, um den sich ihre HP erhöhen. Für diese Herausforderung wird immer der durchschnittliche Wurf genommen, sodass die Ausgabe deterministisch ist. (Wenn Sie nicht mit> 6-seitigen Würfeln vertraut sind, können Sie den aufgerundeten Durchschnittswurf als berechnen (highest_possible_roll / 2) + 1.)
Es gibt eine bemerkenswerte Ausnahme. Die maximale HP eines Charakters erhöht sich jedes Mal um mindestens 1, wenn er 2 erhöht . Wenn die Anweisungen im obigen Absatz beim Aufsteigen zu einer Erhöhung von 0 oder weniger führen würden, wird sie stattdessen um 1 erhöht.
Die Herausforderung
Ihr Programm oder Ihre Funktion benötigt drei Eingaben :
- Die Klasse des Charakters als Zeichenfolge
- Das Level des Charakters
- Die Konstitutionsfähigkeit des Charakters ( kein Modifikator)
Es wird nur eines ausgegeben : die aktuellen maximalen HP des Charakters.
Beispiele
Jede mögliche Kombination von Eingängen und den dazugehörigen Ausgängen finden Sie unter diesem Link. Um auf dieser Seite etwas zu sehen, sind hier 30 zufällig ausgewählte Testfälle:
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. Genau genommen glaube ich nicht, dass es eine Regel gibt, die besagt, dass 20 das maximale Level ist. 21 ist jedoch der Punkt, an dem es keine Tabellen mehr im Buch gibt, die Ihnen sagen, welche der verschiedenen Zahlen in den Regeln enthalten sein sollten, einschließlich der Menge an Erfahrung, die Sie benötigen, um sie zu erreichen. Das ist eine gute Levelobergrenze für mich.
2. Ich glaube nicht, dass dies bei RAW der Fall ist. Ich habe auf rpg.se gefragt und so etwas scheint nirgendwo aufgeschrieben zu sein. Mike Mearls, Hauptdesigner von D & D, hat es jedoch im März 2015 getwittert . Dies ist nicht maßgeblich, wie Sie einen Tweet des führenden Regelentwicklers Jeremy Crawford argumentieren könnten, aber es ist ein Beweis dafür, dass es das ist, was sie beabsichtigt haben, also werde ich es für diese Herausforderung verwenden.