Формула для трех конкурирующих героев, у каждого из которых есть один, которого они могут победить, и один, которого они избили


12

Я пытаюсь создать игру для проекта, который у меня есть. Основная идея:

3 типа героев
3 статистики на героя

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

Логика боя. Логика боя заключается в том, что type1hero имеет хорошие шансы на победу type2hero, type2hero имеет хорошие шансы type3hero, а type3hero имеет хорошие шансы на победу type1hero.

Больше недели я пытаюсь найти формулу на основе статистики, которая позволит мне это исправить, но я не могу, я вчера вмешивался в цифры, и это было прилично, но я не могу извлечь формулу из этого.

Не могли бы вы мне помочь или дать подсказки о том, как мне начать создавать формулы для игр не уровня Lvl, которые соответствуют логике боя?


1
«Уже больше недели я пытаюсь найти формулу на основе статистики, которая позволит мне это исправить» - что исправить? Это механик Рок-бумага-ножницы ; Вы не можете описать это математически, потому что нет x, y, z, по x > y ∧ z > x ∧ y > zкрайней мере, не в основных математиках, которые я знаю и использую.
Маркус фон Броади

2
Хотя вы получили отличный ответ, этот вопрос не очень хорош.
MichaelHouse

@MarkusvonBroady: Обычный способ математически описать порядок, подобный этому, - с помощью ориентированного графа / непереходного отношения. Вы правы, что вы не будете делать это с реальными числами.
Joren

5
@ Byte56: Хотя я согласен, что он представлен не очень хорошим способом, скрытый за ним вопрос остается интересным: как модулировать трехстороннюю боевую систему в общем виде, очень похожем на камень-ножницы-бумага, как выражено в ответах ниже. Не стоит -1, имхо.
Джесси Эмонд

@JesseEmond В одном ответе ниже *. Проблема очень проста, поскольку, как я прокомментировал ответ, это просто различные доспехи и типы атак, замаскированные под механику каменных ножниц. Хотя приведенная формула очень аккуратная.
Маркус фон Броади

Ответы:


38

Ваша игра - нетранзитивная игра . Вы можете реализовать это с 3 статами R , P и S , используя логику «камень-ножницы-бумага». Называйте эту статистику как хотите, но я буду придерживаться логики RPS.

Теперь предположим, что у вас есть два героя со статистикой R1 / P1 / S1 и R2 / P2 / S2. Нам нужно посчитать, какой урон они друг другу нанесут.

Вы хотите, чтобы камни наносили урон ножницам. Это означает, что герой 1 наносит «каменный» урон герою 2, если R1 > 0и если S2 > 0. Одна формула, которая работает, это просто min(R1, S2).

Что сразу дает нам формулы ущерба:

Damage(hero1 on hero2) = min(R1, S2) + min(S1, P2) + min(P1, R2)
Damage(hero2 on hero1) = min(R2, S1) + min(S2, P1) + min(P2, R1)

Давайте посмотрим, что происходит с реальным примером:

    Hero1  Hero2
R    120     50
S     30    130
P     15     30

Учитывая статистику, герой 1 - явно «рок», а герой 2 - «ножничный» тип. Вот результаты:

Damage(hero1 on hero2) = min(120, 130) + min(30, 30) + min(15, 50)
                       = 120 + 30 + 15
                       = 165
Damage(hero2 on hero1) = min(50, 30) + min(130, 15) + min(30, 120)
                       = 30 + 15 + 30
                       = 75

Конечные результаты: 165против 75. Герой 1 выигрывает, как и ожидалось.

У этих формул есть много недостатков, но я надеюсь, что они дадут вам представление о том, как реализовать непереходные правила боя.


2
+1, я бы описал это просто как различные типы атак и доспехов (отравление, стихия, физика)
Маркус фон Броади

1

Каждый герой тренируется в рукопашном бою (M), уклонении (D) и волшебстве (W).

Уклонение очень хорошо уклоняется от рукопашного боя, а магические атаки менее эффективны.

Каждый раунд герой наносит урон, равный (MD) + (W - 0,5D) (M и W - из характеристик атакующего, D - из характеристик защитника.)

Так что у Воина может быть статистика:

М: 100, Д: 20, Ш: 0

Разбойник может иметь статистику:

М: 30, D: 80, W: 30

И у волшебника может быть такая статистика:

М: 10, Д: 10, Ш: 80

Воин против Разбойника, воин наносит 20 DPS, в то время как разбойник наносит 30 DPS. Преимущество Rogue! Бродяга против Чародея, жулик наносит 20 дпс, а волшебник - 40 дпс. Advantage Wizard! Wizard vs. Warrior, волшебник наносит 70 DPS, в то время как воин наносит 90 DPS. Воин Преимущества!


Этот ответ не добавляет ничего, кроме ответа Сэма . Кроме того, мошенник имеет наименьшее преимущество ( 30 - 20 == 10по сравнению с 40 - 20 == 90 - 70 == 20двумя другими). Конечно, это означает, что жулики по своей сути находятся в невыгодном положении?
Анко

Прелесть этих нетранзитивных систем в том, что они уравновешиваются почти автоматически. Неблагоприятные жулики означают, что меньше людей будут играть в них, оставляя меньше целей для волшебника, чтобы победить, и меньше противников для воина, который будет побежден. И все же, если все выберут воина: возвращение разбойника.
отмечает Томас
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.