Fórmula para tres héroes en competencia, cada uno tiene uno que pueden vencer y uno por el que son derrotados

12

Estoy tratando de diseñar un juego para un proyecto que tengo. La idea principal es:

3 tipos de héroes
3 estadísticas por héroe

No hay niveles involucrados, por lo que las diferencias deben ubicarse en las estadísticas.

Lógica de lucha: la lógica de la lucha es que type1hero tiene buenas posibilidades de ganar type2hero, type2hero tiene buenas posibilidades type3hero y type3hero tiene buenas posibilidades de ganar type1hero.

Durante más de una semana, estoy tratando de encontrar una fórmula basada en estadísticas que me permita arreglar esto, pero no puedo, ayer me estaba entrometiendo con los números y era decente, pero no puedo extraer la fórmula.

¿Podrías guiarme o darme pistas sobre cómo debo comenzar a crear fórmulas en un juego Non lvl que cumpla con la lógica de lucha?

Georgiadis Abraam
fuente
1
"Durante más de una semana intenté encontrar una fórmula basada en estadísticas que me permitiera arreglar esto" - ¿Arreglar qué? Este es un mecánico de piedra, papel, tijera ; no puedes describirlo matemáticamente, porque no hay x, y, z para x > y ∧ z > x ∧ y > zal menos no en matemáticas básicas que conozco y uso.
Markus von Broady
2
Si bien ha recibido una gran respuesta, esta pregunta no es muy buena.
MichaelHouse
@MarkusvonBroady: La forma habitual de describir matemáticamente un orden como este es con una relación gráfica / intransitiva dirigida. Tienes razón en que no harás esto con números reales.
Joren
55
@ Byte56: Si bien estoy de acuerdo en que no se presenta de una manera muy agradable, la pregunta que se esconde detrás sigue siendo interesante: cómo modular un sistema de lucha de 3 vías de manera genérica, al igual que las tijeras de piedra, como se expresa en las respuestas abajo. No vale un -1, en mi humilde opinión.
Jesse Emond el
@JesseEmond En la respuesta a continuación *. El problema es muy simple, como comenté en la respuesta, son solo varias armaduras y tipos de ataque disfrazados de una mecánica de piedra, papel o tijera. Aunque la fórmula proporcionada es muy clara.
Markus von Broady

Respuestas:

38

Tu juego es un juego no transitivo . Puede implementarlo con 3 estadísticas R , P y S , utilizando la lógica piedra-papel-tijera. Llama a estas estadísticas como quieras, pero me quedaré con la lógica RPS.

Ahora suponga que tiene dos héroes, con estadísticas R1 / P1 / S1 y R2 / P2 / S2. Necesitamos calcular cuánto daño se harán entre sí.

Quieres que las rocas causen daño a las tijeras. Eso significa que el héroe 1 inflige daño de "roca" al héroe 2 si R1 > 0y si S2 > 0. Una fórmula que funciona es simplemente min(R1, S2).

Lo que inmediatamente nos da las fórmulas de daño:

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)

Veamos qué sucede con un ejemplo real:

    Hero1  Hero2
R    120     50
S     30    130
P     15     30

Dadas las estadísticas, el héroe 1 es claramente un tipo de "roca" y el héroe 2 es claramente un tipo de "tijera". Aquí están los resultados:

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

Resultados finales: 165versus 75. Hero 1 gana, como se esperaba.

Hay muchas deficiencias con estas fórmulas, pero espero que te den una idea de cómo implementar reglas de combate intransitivas .

sam hocevar
fuente
2
+1, lo describiría simplemente como varios tipos de ataques y armaduras (veneno, elemental, físico)
Markus von Broady, el
1

Cada héroe se entrena en combate cuerpo a cuerpo (M), esquivar (D) y hechicería (W).

Esquivar evade el combate cuerpo a cuerpo muy bien, y los ataques mágicos menos bien.

Cada ronda, un héroe inflige daño igual a (MD) + (W - 0.5D) (M y W son de las estadísticas del atacante, D es de las estadísticas del defensor).

Entonces un Guerrero podría tener las estadísticas:

M: 100, D: 20, W: 0

Un pícaro podría tener las estadísticas:

M: 30, D: 80, W: 30

Y un mago podría tener estadísticas como:

M: 10, D: 10, W: 80

Guerrero contra pícaro, el guerrero reparte 20 DPS, mientras que el pícaro reparte 30 DPS. Ventaja Rogue! Pícaro contra mago, el pícaro reparte 20 DPS, mientras que el mago reparte 40 DPS. Ventaja Asistente! Mago contra Guerrero, el mago reparte 70 DPS, mientras que el guerrero reparte 90 DPS. Advantage Warrior!

Simon extraño
fuente
Esta respuesta no agrega nada más allá de Sam . Además, el pícaro tiene la menor ventaja (en 30 - 20 == 10comparación con 40 - 20 == 90 - 70 == 20los otros dos). ¿Seguramente esto significa que los pícaros están inherentemente en desventaja?
Anko el
La belleza de estos sistemas no transmisivos es que se equilibran casi automáticamente. Los pícaros desfavorecidos significan que menos personas los jugarán, dejando menos objetivos para que el mago los derrote y menos oponentes para que el guerrero sea derrotado. Sin embargo, si todos eligen al guerrero: el regreso del pícaro.
Marca Thomas el