Formuła dla trzech konkurujących bohaterów, z których każdy ma jednego do pokonania i jednego, przez którego zostaje pokonany

12

Próbuję zaprojektować grę dla mojego projektu. Główną ideą jest:

3 rodzaje bohaterów
3 statystyki na bohatera

Poziomy nie są zaangażowane, więc różnice muszą znajdować się w statystykach.

Logika walki - logika walki polega na tym, że typ1hero ma duże szanse na wygraną typ2hero, typ2hero ma duże szanse na typ3hero, a typ3hero ma duże szanse na wygraną typ1hero.

Przez ponad tydzień staram się znaleźć formułę opartą na statystykach, która pozwoli mi to naprawić, ale nie mogę, mieszałem się wczoraj z liczbami i było to przyzwoite, ale nie mogę wyciągnąć z tego formuły.

Czy mógłbyś mi pokierować lub dać mi wskazówki, jak mam zacząć tworzyć formuły w grze Non lvl, która spełnia logikę walki?

Georgiadis Abraam
źródło
1
„Od ponad tygodnia próbuję znaleźć formułę opartą na statystykach, która pozwoli mi to naprawić” - Co naprawić? To jest mechanik papier-kamień-nożyce ; nie da się tego opisać matematycznie, ponieważ nie ma x, y, z, x > y ∧ z > x ∧ y > zprzynajmniej w podstawowych matematykach, które znam i których używam.
Markus von Broady
2
Chociaż otrzymałeś świetną odpowiedź, to pytanie nie jest zbyt dobre.
MichaelHouse
@MarkusvonBroady: Zwykle matematycznie opisujemy takie uporządkowanie za pomocą ukierunkowanej relacji graf / nieprzechodnia. Masz rację, że nie będziesz robić tego z liczbami rzeczywistymi.
Joren
5
@ Byte56: Chociaż zgadzam się, że nie zostało to przedstawione w bardzo przyjemny sposób, pytanie ukryte za nim pozostaje interesujące: jak modulować 3-drożny system walki w sposób ogólny, podobnie jak nożyce z papieru skalnego, jak wyrażono w odpowiedziach poniżej. Nie warte -1, imho.
Jesse Emond,
@JesseEmond W jednej odpowiedzi poniżej *. Problem jest bardzo prosty, ponieważ skomentowałem odpowiedź, są to po prostu różne rodzaje zbroi i rodzajów ataku przebrane za mechanika z kamienia i nożyczek. Chociaż podana formuła jest bardzo schludna.
Markus von Broady,

Odpowiedzi:

38

Twoja gra jest nieprzechodnia . Możesz to zaimplementować za pomocą 3 statystyk R , P i S. , używając logiki papier-kamień-nożyce. Nazwij te statystyki, jak chcesz, ale pozostanę przy logice RPS.

Załóżmy teraz, że masz dwóch bohaterów ze statystykami R1 / P1 / S1 i R2 / P2 / S2. Musimy obliczyć, ile szkód wyrządzą sobie nawzajem.

Chcesz, aby kamienie zadawały obrażenia nożyczkom. Oznacza to, że bohater 1 zadaje obrażenia typu „rock” bohaterowi 2, jeśli R1 > 0i jeśli S2 > 0. Jedna formuła, która działa, jest po prostumin(R1, S2) .

Co natychmiast daje nam formuły uszkodzeń:

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)

Zobaczmy, co stanie się z prawdziwym przykładem:

    Hero1  Hero2
R    120     50
S     30    130
P     15     30

Biorąc pod uwagę statystyki, bohater 1 jest wyraźnie typem „rocka”, a bohater 2 jest wyraźnie typem „nożycowym”. Oto wyniki:

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

Ostateczne wyniki: w 165porównaniu z 75. Hero 1 wygrywa zgodnie z oczekiwaniami.

Istnieje wiele niedociągnięć w tych formułach, ale mam nadzieję, że dają one wyobrażenie o tym, jak wdrożyć nieprzechodnie reguły walki.

sam hocevar
źródło
2
+1, opisałbym to po prostu jako różnego rodzaju ataki i zbroje (celne, żywiołowe, fizyczne)
Markus von Broady,
1

Każdy bohater trenuje w walce w zwarciu (M), unik (D) i czarodziejstwo (W).

Unikanie uników bardzo dobrze unika walki w zwarciu, a rzadziej magiczne ataki.

W każdej rundzie bohater zadaje obrażenia równe (MD) + (W - 0,5D) (M i W pochodzą ze statystyk atakującego, D pochodzi ze statystyk obrońcy.)

Więc Wojownik może mieć statystyki:

M: 100, D: 20, W: 0

Łotrzyk może mieć statystyki:

M: 30, D: 80, W: 30

A czarodziej może mieć statystyki takie jak:

M: 10, D: 10, W: 80

Warrior vs. Rogue, wojownik zadaje 20 DPS, podczas gdy łotrzyk 30 DPS. Advantage Rogue! Łotrzyk kontra Czarodziej, ten nieuczciwy zadaje 20 DPS, zaś czarodziej 40 DPS. Advantage Wizard! Wizard vs. Warrior, czarodziej zadaje 70 DPS, podczas gdy wojownik 90 DPS. Advantage Warrior!

Simon Strange
źródło
Ta odpowiedź nie dodaje nic poza Samem . Ponadto łotrzyk ma najmniejszą przewagę (w 30 - 20 == 10porównaniu do 40 - 20 == 90 - 70 == 20pozostałych dwóch). Z pewnością oznacza to, że łotrzykowie są z natury pokrzywdzeni?
Anko
Piękno tych nieprzechodnich systemów polega na tym, że równoważą się prawie automatycznie. Nieuprzywilejowani łotrzykowie oznaczają, że będzie grało w nie mniej ludzi, pozostawiając mniej celów do pokonania przez czarodzieja i mniej przeciwników do pokonania przez wojownika. Ale jeśli wszyscy wybiorą wojownika: powrót łotra.
Marcks Thomas