MC Toolkit

MC Toolkit / Калькуляторы / Калькулятор разведения лошадей / Прогноз потомства — Калькулятор разведения лошадей

Прогноз потомства — Калькулятор разведения лошадей

Предскажите здоровье, прыжок и скорость жеребёнка по родителям, по точной формуле наследования из кода игры.

Parents

Parent A

Parent B

Допустимые диапазоны: Здоровье 15–30 HP, Прыжок 1.09–5.29 блоков, Скорость 4.74–14.23 б/с. Значения вне этого диапазона будут приведены к ближайшему допустимому значению перед симуляцией. Оба родителя должны быть накормлены Золотым яблоком или Золотой морковью в игре, прежде чем они смогут размножаться.

Foal Outlook

Per-Stat Prediction

How This Is Computed

Real Stat Ranges (Java Edition)

StatLegal rangeDisplayed as
Max Health15 – 30HP (2 HP per heart)
Jump Strength1.09 – 5.29Blocks of jump height
Movement Speed4.74 – 14.23Blocks per second

Сила прыжка и Скорость передвижения отображаются в блоках и блоках в секунду. В самой игре они хранятся как сырой атрибут (Сила прыжка 0.4–1.0, пропускаемый через кривую высоты прыжка height = -0.1817v³ + 3.689v² + 2.128v - 0.343, что даёт реальную минимальную высоту в блоках ~1.09, а не 0; Скорость 0.1125–0.3375 блоков за тик, примерно ×42.16 для перевода в блоки/секунду при 20 тиках/секунду). Симуляция работает на этом сыром атрибуте, как и игра, и переводит в блоки / блоки в секунду только для отображения — именно так эти числа показываются в большинстве модов на статистику.

The Offspring Formula

Каждый показатель жеребенка — Здоровье, Сила прыжка и Скорость передвижения — рассчитывается независимо, используя точно такую же формулу из AbstractHorse.createOffspringAttribute кода игры (это также относится к ослам и мулам):

  1. midpoint = (parentA + parentB) / 2
  2. range = statMax - statMin for that stat’s legal range
  3. spread = |parentA - parentB| + 0.3 × range
  4. roll = (random() + random() + random()) / 3 - 0.5 — три независимых броска от 0 до 1 усредняются, затем перецентрируются на нуле
  5. foalValue = midpoint + spread × roll
  6. Если результат выходит за допустимый диапазон, игра отражает его обратно на величину превышения (max - (foalValue - max)), и этот инструмент делает так же — поэтому два родителя с максимумом дают в среднем около 13.84 б/с скорости, а не предельные 14.23.

Усреднение трех случайных бросков (шаг 4) вместо использования одного плоского броска приводит к тому, что результат группируется вокруг средней точки, а не распределяется равномерно — большинство жеребят оказываются довольно близко к среднему значению своих родителей, с редкими выбросами к любому краю.

Используется реальная ванильная формула атрибутов потомства (средняя точка родителей + разброс, основанный на разнице, рассчитанный с помощью 3 усредненных случайных значений), запущенная как клиентская симуляция Монте-Карло — результаты являются вероятностными оценками из множества симулированных бросков, а не одним детерминированным ответом, что соответствует тому, как работает реальная игра. Сила прыжка и скорость показаны в более интуитивно понятных единицах блоков/блоков в секунду, а не в необработанных значениях атрибутов.