Bearbeiten : Ich habe D & D noch nie gespielt. Als ich diese Frage zum ersten Mal stellte, habe ich sie nicht richtig recherchiert. Ich entschuldige mich dafür und nehme einige Änderungen vor, die die Antworten ungültig machen könnten, um den dnd 5e-Regeln so treu wie möglich zu bleiben. Es tut uns leid.
Ein D & D-Fan aus einer aktuellen Hot Network-Frage scheint Schwierigkeiten zu haben, herauszufinden, ob die von einem Zauberer gewählten Zaubersprüche mit den Möglichkeiten übereinstimmen - und ich denke, wir sollten helfen!
Einführung
(All dies ist bereits in der zuvor genannten Frage beschrieben)
Ein Zauberer kennt von Anfang an zwei Zaubersprüche der Stufe 1 (Stufe 1): [1, 1]
Jedes Mal, wenn ein Zauberer eine Stufe erreicht (mit Ausnahme der Stufen 12, 14, 16, 18, 19 und 20), lernt er einen neuen Zauber (obligatorisch).
Außerdem, wenn man wählen (optional) Nivellierung kann ersetzen eine der Zauber mit einem anderen.
Die gelernten und ersetzten Zaubersprüche müssen eine gültige Zauberslot-Stufe sein, die die Hälfte der aufgerundeten Stufe Ihres Zauberers ist. Siehe diese Tabelle:
Sorcerer level Highest spell level possible
1 1
2 1
3 2
4 2
5 3
6 3
7 4
8 4
9 5
10 5
11 6
12 6
13 7
14 7
15 8
16 8
17 9
18 9
19 9
20 9
Dies bedeutet, dass man auf Stufe 3 die folgenden Zauberstufen haben kann [1, 1, 2, 2]:
Level 1: [1, 1] (initial)
Level 2: [1, 1, 1 (new)]
Level 3: [1, 1, 2 (replaced), 2 (new)]
Es ist nicht erforderlich, die Zaubersprüche der höchsten Stufe auszuwählen, auf die Sie Zugriff haben.
Die Zauberstufen [1, 1, 1, 1]gelten perfekt für Stufe 3.
Denken Sie zum Schluss daran, dass das Ersetzen eines Zaubers eine optionale Option für jedes Level ist . Dies bedeutet, dass einige Ebenen das Ersetzen überspringen können, während andere davon Gebrauch machen.
Die Herausforderung
Erstellen Sie ein Programm oder eine Funktion, die eine Ganzzahl (Ebene) zwischen 1 und 20 annimmt.
Es sollte auch ein Array von ganzen Zahlen (Zauberstufen) mit Werten zwischen 1 und 9 in beliebiger Reihenfolge verwendet werden (9 ist die maximale Zauberstufe).
Die Ausgabe des Programms sollte ein Wahrheits- / Falschwert sein, der überprüft, ob die gewählten Zauberstufen für einen Zauberer der gegebenen Stufe gültig sind.
Testfälle
Level: 1
Spells: [1, 1]
Output: true
Level: 8
Spells: [1, 1, 2, 3, 3, 5]
Ouput: false
Reason: A level 8 can't ever have access to a level 5 spell.
Level: 5
Spells: [1, 1, 1, 2, 2, 2, 3]
Output: false
Reason: A level 5 can't have access to 7 spells
Level: 11
Spells: [3, 4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6]
Output: false
Reason: Too many spell upgrades.
The highest valid selection for level 11 is
[3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6]
Das ist Code-Golf - die wenigsten Bytes gewinnen!
[2,2,3,3]wären die Zauberstufen jedoch nicht möglich, da mehr Ersatz erforderlich ist, als ein Zauberer dieser Stufe Zugriff haben würde." - Ist die Tatsache, dass die Liste eher Länge 4 als 5 hat, hier kein grundlegenderer Grund? (Ich nehme an, dass [1,3,2,2,3]es für ein Level 4 möglich ist, von Level 3 [1,1,2(replaced),2(new)]zu [1,3(replaced),2,2,3(new)]?)
