Bestimmung des Siegers aus einem Schere-Stein-Papiersiegerkampf



  • In meinem Spiel sollen es zu einem Kampf zweier Armeen kommen können, die jeweils mehrere Einheiten von "Scheren", "Steinen" und "Papier" enthalten (nicht wirklich, aber verdeutlicht das Problem). Nun sollen die Einheiten jedoch nicht wirklich kämpfen sondern nur das Ergebnis anzeigen (keine richtige Kampfsimulation).

    Das Problem ist, das ich nicht einfach die größere Armee gewinnen lassen kann, da (z.B. drei "Papier" z.B.: gegen drei "Stein" verlieren soll) anderseits soll auch der Zufall soweit wie möglich ausgeschlossen werden können

    Wie mache ich das?

    In einem Mathebuch stand mal so etwas wie Marklow-ketten, jedoch haben wir das noch nie im Unterricht behandelt 🙄 Geht das damit?



  • Soweit ich weiß wären Markow-Ketten erst nötig wenn du das ganze Schrittweise mit einer Zufallskomponente simulieren willst.

    Für das was du willst könntest du jeder Einheit eine gewisse Stärke zuordnen, diese dann für jede Armee zusammenrechnen und dann vergleichen. Die Stärke bestimmt sich dann anhand der Wahrscheinlichkeit das diese Einheit auf eine stärkere oder schwächere Einheit trifft.


  • Mod

    Das Problem kann man mit Markov-Ketten beschreiben, aber ich glaube nicht, dass du viel über Markov-Ketten lernen musst, um das Problem zu lösen.

    Wenn du einen Computer hast, würde ich systematisch alle möglichen Paarungen durchgehen und dann hinterher vergleichen, welche Seite wie oft gewonnen hat. Das entspricht mathematisch der Konstruktion von Markov-Ketten, aber das ist dabei eher unerheblich. Ich sehe nämlich nicht, wie dir die Theorie der Markov-Ketten nützen könnte, das Problem zu vereinfachen.

    Wenn es jedoch so viele Möglichkeiten geben sollte, dass systematisches durchprobieren selbst auf einem Computer unmöglich ist (ich kenne ja deine Armeegröße nicht), dann würde es nützen, sich näher mit der Materie zu beschäftigen. Denn dann könntest du nur einen gewissen Anteil der möglichen Kombinationen durchgehen. Die Theorie würde dann dabei helfen, die Kombinationen zu gewichten und die wichtigen Kombinationen zu finden.



  • Ich würde einfach bei gleichartigen Armeen die Stärken nehmen (ich nenne sie mal a und b) und daraus Verluste berechnen.
    Zum Beispiel erstmal nur

    verlust=min(a,b);
    a-=verlust;
    b-=verlust;
    

    womit die kleinere Armee vernichtet wurde.

    Dann würde ich für für jede Paarung einen Stärkenmodifikationsfaktor festlegen, und reinrechnen. Zum Beispiel Stein/Stein=1.0, Stein/Schere=1.2, Stein/Papier=0,8...

    Aufstellung:
    ArmeeA: Stein=200, Schere=20, Papier=20
    ArmeeB: Stein=60, Schere=70, Papier=80

    StärkeA:
    Stein=200*(60/240*1.0+70/240*1.2+80/240*0.8)
    und so weiter

    Also
    StärkemodifikatorA=GesamtstärkeA/GesamtaufstellungA

    Dann würde ich sie mit der Stärke kloppen lassen und dann die neue Stärke durch den Modifikator teilen und die neue Aufstellung ausrechnen.

    Nur so ein erster Gedanke.

    Ach, und nicht einfach die kleinere Stärke von der größeren abziehen, sondern einbauen, daß deutliche Überlegenheiten auch noch weniger Verluste haben. Und meistens kann die unterlegene Armee auch unter nicht so erheblichen Verlusten fliehen.

    Irgendwie habe ich das Gefühl, daß es wirklicher wird, die Verluste bei den 9 Paarungen einzeln zu berechnen. Andererseits würde ich ungern den Spieler damit nerven, daß nach jeder Schlacht seine Stein/Schere/Papier-Verhältnisse über den Haufen geworfen sind. Obwohl, wenn der andere viele Steine hat, haut er mir halt alle Scheren weg, sind ja eh nur unnütze Kostenfaktoren.


  • Mod

    Ich sehe gerade, dass du gar nicht an exakten Ergebnissen interessiert bist, sondern nur ein einfaches Spiel machen willst. Da soll das Ergebnis ja wahrscheinlich mit wenigen Schritten berechenbar sein. Dann vergiss das was ich oben gesagt habe, das ist dann viel zu umständlich. Etwas wie volkards Ansatz ist da viel geeigneter. Ist jetzt ein bisschen spät mir noch selber was zu überlegen. Wenn das Thema morgen noch heiß ist, denke ich nochmal darüber nach.


Anmelden zum Antworten