Треки
/
Arturo
Arturo
/
Вправи
/
Персонаж D&D
Персонаж D&D

Персонаж D&D

Легка

Вступ

Після тижнів очікування ми з друзями збираємося на свою найпершу гру в Dungeons & Dragons (D&D). Оскільки це перша сесія гри, кожен гравець має згенерувати персонажа, яким гратиме. Характеристики персонажа визначаються кидками шестигранних кубиків, але де ж взяти кубики? З жахом ми розуміємо, що друзі чекають, коли кубики дістанемо саме ми; зрештою, пограти в D&D була наша ідея! Панікуючи, ми розуміємо, що забули взяти кубики, а це означало б, що гри в D&D не буде. Оскільки ми маємо базові навички програмування, ми швидко знаходимо рішення: напишемо програму, яка імітує кидки кубиків.

Вказівки

Для гри в Dungeons & Dragons кожен гравець починає зі створення персонажа, яким можна грати. Цей персонаж має, серед іншого, шість характеристик: силу, спритність, статуру, інтелект, мудрість і харизму. Значення цих шести характеристик визначаються випадково. Для цього ми кидаємо чотири шестигранні кубики й записуємо суму трьох найбільших. Робимо це шість разів, по одному разу для кожної характеристики.

Початкові хіти персонажа дорівнюють 10 + модифікатор статури персонажа. Модифікатор статури персонажа ми знаходимо так: віднімаємо 10 від статури персонажа, ділимо на 2 і округлюємо вниз.

Напишіть генератор випадкових персонажів, який дотримується наведених вище правил.

Наприклад, шість кидків чотирьох кубиків можуть мати такий вигляд:

  • 5, 3, 1, 6: відкидаємо 1, додаємо 5 + 3 + 6 = 14 і присвоюємо цю суму силі.
  • 3, 2, 5, 3: відкидаємо 2, додаємо 3 + 5 + 3 = 11 і присвоюємо цю суму спритності.
  • 1, 1, 1, 1: відкидаємо 1, додаємо 1 + 1 + 1 = 3 і присвоюємо цю суму статурі.
  • 2, 1, 6, 6: відкидаємо 1, додаємо 2 + 6 + 6 = 14 і присвоюємо цю суму інтелекту.
  • 3, 5, 3, 4: відкидаємо 3, додаємо 5 + 3 + 4 = 12 і присвоюємо цю суму мудрості.
  • 6, 6, 6, 6: відкидаємо 6, додаємо 6 + 6 + 6 = 18 і присвоюємо цю суму харизмі.

Оскільки статура дорівнює 3, модифікатор статури становить -4, а хіти дорівнюють 6.

Note

Більшість мов програмування мають (псевдо)випадкові генератори, але мало які мови програмування призначені для кидання кубиків. Одна з таких мов - Troll.

Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
Arturo Exercism

Час розпочати Персонаж D&D?

Зареєструйтеся на Exercism, щоб вивчати й опановувати Arturo, а також 79 вправ та справжнє наставництво від людей, і все це безкоштовно.

Глибоке занурення у Персонаж D&D!

Ми розглянемо, як генерувати (начебто) випадкові кидки кубиків. Дізнаємося про зерна, псевдовипадкові числа та кілька типових пасток. Нарешті, побачимо, чим тестування на основі властивостей добре підходить для перевірки функцій, що повертають випадкові значення.