Hallo,
ich würde mir gerne zum Spiel "Baccarat" durch im Prinzip Ausprobieren aller Möglichkeiten gerne den Erwartungswert bzw. die Wahrscheinlichkeiten herausfinden.
zu Baccarat:
Nach vorgegebenen Regeln ziehen 2 Parteien Karte und hinterher wird nach ebenso festen Regeln festgelegt ob A gewinnt, B gewinnt oder Gleichstand.
Zum Endergebnis bestimmen wird jeder der Karten ein Zahlenwert zugeordnet und modulo 10 die Kartenwerte zusammengezhält.
Hat A bspw. die Karten "4,7,Bube", dann entspricht die 4 dem wert 4, die 7 dem wert 7 und Bube hat einen Wert von 0.
die modulo 10 addiert ergibt also 1 (weil 4+7+0=11 und das modulo 10 ergibt 1).
analog wird für B ein Wert seiner Hand bestimmt.
Und verglichen.
Nun gibt es ja nur eine endliche (wenngleich auch ziemlich große) Anzahl an Möglichkeiten wie so ein Spiel verlaufen kann.
Und hängt einfahc nur davon ab, welche Karte zufallsbedingt gezogen wird.
Ich will also jedes einzelne mögliche Spiel durchspielen und rausfinden wer gewinnt.
zu jedem Spiel lässt sich mit Stochastik die Eintrittswahrscheinlichkeit bestimmen.
Durch addieren aller Wahrscheinlichkeiten von spielen, in denen A gewinnt, findet man eben die Gewinnwahrshceinlichkeit für A raus.
Analog die für B sowie die für Gleichstand.
Nur bin ich mir unsicher wie ich datentyptechnisch und organisatorsich am Besten so ein Spiel simuliere.
Weil ich fange an mit der "Spielsituation" wo A und B keine Karte haben, dann passiert eine Aktion wie "A zieht Karte mit Wert 5" (was natürlich gemäß der Regeln des Spiels) erfolgt, dann haben wir entsprechend eine neue Spielsituation wo A die Karten [5] hat und B [].
Dann passiert die gemäß Regeln nachfolgende Aktion, Spielsituation wird geupdated, etc.
Bis wir irgendwann in der Spielsitation angkeommen sind, wo Alles "zu Ende gespielt ist" und der Gewinner feststeht.
Ich gehe also jede SPielsituation Schritt für Schritt durch von Anfang bis Ende.
Und das für alle möglichen Spiele, in einem Spiel zieht A ein As, im Anderen spiel zieht er ne 3 als erste Karte.
Zur Wahrscheinlichkeitsbestimmung muss natürlich getrackt werden welche Karten gezogen wurden.
im primitivsten Fall hätte ich die sich mit jedem Schritt verändernde Spielsituation simpel als mehrfach Array aufgefasst, wo bspw. das erste Unterarray die in der aktuellen Situation vorliegenden karten von A beschreibt, das 2. unterarray die von B, etc.
Also sowas wie {{As,5}{7}} die Situation beschreibt wo A erst ein As und dann eine 5 zog und B eine 7 hat.
Aber vermutlich ist das , wie es einer so shcön ausdrückt, mal wieder "ein Griff ins Klo", wie Alles was nicht sauumständliche Datentypen, Enums und Whatnots benutzt um zu zeigen was für ein geiler Fcker und Nerd man ist.
Daher dachte ich, ich frage hier mal die Überprofis wie ihr so hochprofessionell sowas programmieren würdet.
Ein "Frontend" sozusagen ist übrigens nicht nötig, ich will das nicht mit einer Gui, buttons und Co. anzeigen lassen, ich will es nur theoretisch im hintergrund ruchrechnen lassen. Muss nciht groß fanvy dargestellt und visualisiert werden, es geht mir um den harten Mathekern.
ich würde mir gerne zum Spiel "Baccarat" durch im Prinzip Ausprobieren aller Möglichkeiten gerne den Erwartungswert bzw. die Wahrscheinlichkeiten herausfinden.
zu Baccarat:
Nach vorgegebenen Regeln ziehen 2 Parteien Karte und hinterher wird nach ebenso festen Regeln festgelegt ob A gewinnt, B gewinnt oder Gleichstand.
Zum Endergebnis bestimmen wird jeder der Karten ein Zahlenwert zugeordnet und modulo 10 die Kartenwerte zusammengezhält.
Hat A bspw. die Karten "4,7,Bube", dann entspricht die 4 dem wert 4, die 7 dem wert 7 und Bube hat einen Wert von 0.
die modulo 10 addiert ergibt also 1 (weil 4+7+0=11 und das modulo 10 ergibt 1).
analog wird für B ein Wert seiner Hand bestimmt.
Und verglichen.
Nun gibt es ja nur eine endliche (wenngleich auch ziemlich große) Anzahl an Möglichkeiten wie so ein Spiel verlaufen kann.
Und hängt einfahc nur davon ab, welche Karte zufallsbedingt gezogen wird.
Ich will also jedes einzelne mögliche Spiel durchspielen und rausfinden wer gewinnt.
zu jedem Spiel lässt sich mit Stochastik die Eintrittswahrscheinlichkeit bestimmen.
Durch addieren aller Wahrscheinlichkeiten von spielen, in denen A gewinnt, findet man eben die Gewinnwahrshceinlichkeit für A raus.
Analog die für B sowie die für Gleichstand.
Nur bin ich mir unsicher wie ich datentyptechnisch und organisatorsich am Besten so ein Spiel simuliere.
Weil ich fange an mit der "Spielsituation" wo A und B keine Karte haben, dann passiert eine Aktion wie "A zieht Karte mit Wert 5" (was natürlich gemäß der Regeln des Spiels) erfolgt, dann haben wir entsprechend eine neue Spielsituation wo A die Karten [5] hat und B [].
Dann passiert die gemäß Regeln nachfolgende Aktion, Spielsituation wird geupdated, etc.
Bis wir irgendwann in der Spielsitation angkeommen sind, wo Alles "zu Ende gespielt ist" und der Gewinner feststeht.
Ich gehe also jede SPielsituation Schritt für Schritt durch von Anfang bis Ende.
Und das für alle möglichen Spiele, in einem Spiel zieht A ein As, im Anderen spiel zieht er ne 3 als erste Karte.
Zur Wahrscheinlichkeitsbestimmung muss natürlich getrackt werden welche Karten gezogen wurden.
im primitivsten Fall hätte ich die sich mit jedem Schritt verändernde Spielsituation simpel als mehrfach Array aufgefasst, wo bspw. das erste Unterarray die in der aktuellen Situation vorliegenden karten von A beschreibt, das 2. unterarray die von B, etc.
Also sowas wie {{As,5}{7}} die Situation beschreibt wo A erst ein As und dann eine 5 zog und B eine 7 hat.
Aber vermutlich ist das , wie es einer so shcön ausdrückt, mal wieder "ein Griff ins Klo", wie Alles was nicht sauumständliche Datentypen, Enums und Whatnots benutzt um zu zeigen was für ein geiler Fcker und Nerd man ist.
Daher dachte ich, ich frage hier mal die Überprofis wie ihr so hochprofessionell sowas programmieren würdet.
Ein "Frontend" sozusagen ist übrigens nicht nötig, ich will das nicht mit einer Gui, buttons und Co. anzeigen lassen, ich will es nur theoretisch im hintergrund ruchrechnen lassen. Muss nciht groß fanvy dargestellt und visualisiert werden, es geht mir um den harten Mathekern.