У мене виникають труднощі з запам'ятовуванням всього, що я маю робити, коли вирівнювати характер науково-дослідної роботи. З будь-якої причини однією з речей, яка доставляє мені клопоту, є з'ясування того, яким має бути їх новий максимальний показник HP. Для цього завдання ви напишете програму або функцію для автоматичного обчислення правильного значення.
Термінологія
Перше, про що потрібно знати, щоб розрахувати максимум HP, - це "модифікатор конституції". У кожного символу DND є шість цілочисельних балів здібностей, включаючи одне для Конституції. Єдині відповідні знання, необхідні для цього завдання, - це те, як оцінка здатності Конституції впливає на інший статистичний стан, який є модифікатором Конституції. Коротше кажучи, модифікатор дорівнює floor( (ability_score - 10) / 2 ). Авантюристи можуть мати лише оцінки балів від 1 до 20 включно. Ваш код ніколи не повинен обробляти бали за межами цього діапазону, що також означає, що йому ніколи не доведеться обробляти модифікатор нижче -5 або більше +5. Хоча модифікатор Конституції може змінюватися в міру збільшення символів, його вплив на HP застосовується заднім числом, тому для розрахунку поточного максимуму HP потрібно лише його поточне значення.
(Це зовсім не має значення для виклику, але якщо вам цікаво, як це впливає на максимальний рівень HP: Ви можете припустити, що подвиг "Жорсткий" додає 2 до модифікатора конституції персонажа для розрахунку HP, оскільки це ефективно те, що він робить . Це не текст подвигу, але математика виходить точно такою ж. Вам не потрібно обробляти цей подвиг у своїй відповіді.)
Далі, кожному класу присвоєний тип "hit die", який бере участь у обчисленні 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 рівня дістався до місця, де вони знаходяться, будучи символом першого рівня та зростаючи вдвічі.
Як розрахувати Макс. HP
Максимальна кількість символів HP дорівнює їх HP на рівні 1 плюс сума збільшення, яке вони отримували на кожному рівні.
На рівні 1
На рівні 1 HP-персонаж персонажа дорівнює максимально можливій котушці їх ударної матриці (число в назві штампу, для тих, хто вам не знайомий з кістками, які мають більше 6 сторін) плюс їх модифікатор конституції. Пам’ятайте, що під час обчислення HP на більш пізньому рівні, ви можете припустити, що Конституція персонажа завжди була однаковою, оскільки ця частина розрахунку повторюється щоразу, коли зміниться Конституція.
При вирівнюванні
Кожен раз, коли персонаж зростає, у них є два варіанти. Вони можуть або закатати одну зі своїх вбитих кісток, або взяти середній рулон, що гине (округлений). Що б вони не вибрали, до результату додається їх модифікатор конституції. Це загальна сума, яку збільшує їх HP. За цей виклик завжди приймається середній перелік, тому вихід є детермінованим. (Знову ж таки, якщо ви не знайомі з> двосторонніми кістками, ви можете обчислити округлий середній рулон як (highest_possible_roll / 2) + 1.)
Є один помітний виняток. Максимум HP символів завжди збільшується щонайменше на 1 щоразу, коли вони вирівнюють 2 . Якщо вказівки у наведеному вище пункті призвели до збільшення 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, написав твіт у березні 2015 року . Це не є авторитетним способом, яким ви могли б стверджувати твіт від головного розробника правил Джеремі Крофорда, але це свідчення того, що це те, що вони задумали, тому я використаю це для цього завдання.