Grundgedanken zur Programmierung eines Poker-Wahrscheinlichkeitsrechners
Wenn Sie sich mit Pokerkartenprogrammierungen beschäftigen wollen, sollte es für Sie vor allem interessant sein, einen Rechner für Wahrscheinlichkeiten umzusetzen.
- Konkreter könnte es sinnvoll sein, einen Rechner zu programmieren, der die Wahrscheinlichkeiten auf bestimmte Karten vor dem Flop und nach den Flop, einem Turn und einem River ausgibt.
- Um zu wissen, welche Karten während eines Spiels noch kommen können, sollte der Grundgedanke logischerweise das Mitzählen sein. Alle Karten, die weder schon mal auf dem Tisch lagen noch je in Ihrer Hand waren, müssen durchgegangen werden.
- Auf diesem Wege kann errechnet werden, wie gut oder schlecht ein gegebenes Blatt ist. Über die gegebene Kartenanzahl lassen sich schließlich konkrete Wahrscheinlichkeiten berechnen.
- Noch interessanter wäre es für Sie wahrscheinlich, auf ähnlichem Wege ein Programm zu erstellen, welches berechnet, wieviele Karten noch im Spiel sind, die ein gegebenes Blatt verbessern können.
- Hierbei müsste dem Programm eingeschrieben werden, wie es Odds anhand von Outs berechnen kann. Für Sie heißt das, dass Sie sich erst einmal in Stochastik und Kombinatorik schlaumachen sollten, um überhaupt zu verstehen, wie die Odds über die Outs errechnet werden.
So könnte es mit dem Programmieren des Kartenrechners klappen
- Sie müssen damit rechnen, dass die Programmierung eines Programms zur Berechnung von Pokerwahrscheinlichkeiten mit Sicherheit nichts für Laien ist und nicht nur Kenntnisse im Programmierbereich, sondern mindestens genauso viele in der Stochastik voraussetzt.
- Außerdem sollte Ihnen klar sein, dass ein durchschnittlicher PC mit der Berechnung aller Wahrscheinlichkeiten überfordert sein wird. Es handelt sich dabei nämlich um derart viele, dass sogar ein eher leistungsstarker PC ewig für die Berechnung brauchen wird.
- Obwohl die Programmierung also eine echte Herausforderung ist und die meisten wohl zum Verzweifeln bringen wird, ist Ihnen der Versuch nicht unbedingt auszureden. Jedoch sollten Sie möglichst flexibel und kreativ vorgehen. Ein Standardalgorithmus wird hier beispielsweise nicht weit kommen.
- Eine Möglichkeit, ein ähnliches Programm wie oben beschrieben zu entwerfen, wäre es dabei, nach dem Prinzip des Backtrackings vorzugehen. Ob es schließlich klappt, ist wohl von Ihren Fähigkeiten abhängig, einen Versuch aber sollte es wert sein.
- Dem Backtracking ist ein rekursiver, sich also immer wieder selbstaufrufender, Algorithmus zugrunde zu legen, welchen Sie schließlich auch als solchen implementieren.
- Sie starten den Algorithmus mit einer leeren Entscheidungsfolge, hier also Kartenfolge, und verändern ihn konstant um momentan nicht auszuschließende Entscheidungen beziehungsweise Karten.
- Karten, die ausgeschlossen werden können, und mit ihnen zusammenhängende Gewinnausschlüsse, sind nach der Reihe aus der algorithmischen Entscheidungsfolge zu nehmen.
- Als Grundlage für das Backtracking ist eine Vektorenfunktion mit allen Einzelkarten und Gewinnchancen zu verwenden. Nicht auszuschließende Karten verlängern den Vektor. Die Funktion FindeGewinn(Stufe+1, Vektor) stellt sich dabei entweder als Gewinn heraus oder eben nicht.
- Sie erstellen also eine Funktion mit allen Parametern, die Sie ausgeworfen haben wollen. Die entsprechende Funktion muss in einer For-Schleife von -1 bis +1 rechnen und sich nach jedem Durchgang wieder aufrufen.
- Schließlich gilt es, einen entsprechenden Quellcode als Pseudocode zu implementieren, um eine Liste der Wahrscheinlichkeiten zu erhalten.
So viel zum Prinzip des Backtrackings. Wie genau Sie dabei schließlich vorgehen, um einen funktionierenden Rechner für die Pokerkarten zu erstellen, kann hier nicht ausgeführt werden. Viel Geduld beim Herumprobieren!
Weiterlesen:
Wie hilfreich finden Sie diesen Artikel?