Wie funktioniert Poker-Software?



  • Hallo,

    ich spiele in meiner Freizeit unter anderem gerne Poker in verschiedenen Portalen. Jetzt seh ich immer wieder Werbung im Netz bezüglich zusätzlicher Pokersoftware, die dein Spiel überwachen hinsichtlich deiner Spielgewohnheiten und aus diesen gewonnenen Daten dann diverse Statistiken erstellen. Das interessante daran ist, das die Programme sich die Informationen selbst vom Client holen. Nun ist meine Frage, wie funktioniert das? Hängen die am Port mit dran, lesen die den Prozessspeicher oder holen die sich die Informationen anders?

    Grüßle

    Rille



  • Die meisten Clients schreiben lokale Hand Histories, in denen die Action am Tisch protokolliert wird. Die Statistiksoftware liest diese Dateien aus und parst sie, um die entsprechenden Statistiken zu erstellen.



  • Danke für die schnelle Antwort Doc,

    nun gibt es ja auch diverse Programme die Echtzeitberechnungen durchführen wie z.b. die Chance auf einen Drilling, Vierling oder flush. Wie funktioniert das bei diesen Applikationen?



  • Rille schrieb:

    Danke für die schnelle Antwort Doc,

    nun gibt es ja auch diverse Programme die Echtzeitberechnungen durchführen wie z.b. die Chance auf einen Drilling, Vierling oder flush. Wie funktioniert das bei diesen Applikationen?

    same shit



  • Die Hand History wird aber meines Wissens erst nach Ablauf des Spiels abgelegt, oder sehe ich das falsch?



  • Im Prinzip genauso. Die beiden großen Pokersoftwarehersteller empfehlen, alle ChatLog Meldung zu schreiben, weil dort auch die Hole Cards und die Karten auf den einzelnen Streets benannt werden, z.B.

    `

    Dealt to Player: Th Tc

    Flop: Ts 2d 2c

    Turn: 2h

    River: 2s

    `

    Damit weiß die Statistiksoftware zu jedem Zeitpunkt, welche Karten der Spieler hält und welche sich dementsprechend noch im Deck befinden. Daraus kann berechnet werden, wie hoch die Wahrscheinlichkeit für eine bestimmte Hand auf einer bestimmten Street ist.

    Dass die Hand History erst nach der gespielten Hand abgelegt wird ist völlig unerheblich, da eine einzelne Hand keine Aussage über das Spielverhalten eines Gegners macht. Interessant wird es erst nach mehreren hundert oder besser tausend Händen, weil dann mehr Informationen zur Charakterisierung des Spielers zur Verfügung stehen (VPIP von 100% nach einer Hand lässt garkeine Aussage über einen Spieler zu, ein VPIP von 60% über 5K Hände allerdings schon). Da die Statistik erst nach einer großen Zahl von Händen aussagekräftig werden ist es egal, ob man sich jetzt 1000 oder 1001 Hände angeguckt hat.

    Edit:
    Möglicherweise wird der ChatLog nicht protokolliert, dann sucht sich die Pokersoftware das Textfeld/Memo, in dem die Meldungen ausgegeben werden und liest die Meldungen direkt von dort ein. Dieses Vorgehen ist abhängig vom Client des Pokerroom Betreibers und muss für jeden Pokerroom eigenständig programmiert werden.



  • Erstmal recht herzlichen dank für die tolle Antwort, du hattest vollkommen recht. Bei meinem Pokerraum kann man den Chatlog aktivieren und wird dann als Text-Datei gespeichert. Diese lässt sich anschließend analysieren.

    Dennoch stellt sich mir die Frage wie man eine Echtzeit-Übertragung dieser Informationen bewerkstelligt.

    Angenommen du hast auf der Hand: Kh Jh
    Flop: 7h Kc Jc
    Turn: 9h

    der River steht noch aus. Um das eigene Blatt zu verbessern fehlt entweder eine heart-card, ein King oder ein Jack. Es gibt ja einige Programme die dann in Echtzeit Informationen liefern wie eben z.b. Chance auf Flush oder full house ohne das der Spieler selber aktiv werden muss. Wie bewerkstelligen diese Programme das? Wo müsste man da ansetzen um zur Laufzeit des Spiels an die aktuellen Daten zu kommen?


  • Mod

    Man könnte das zum Beispiel machen, indem man sich über Hooks in das Textausgabefenster des Clients einhängt. Ich habe das auch schon einmal versucht, musste aber feststellen, dass das Textausgabefenster für die Hände (bei Pokerstars war's glaube ich) absichtlich so funktioniert, dass man nicht einfach mitlesen kann (d.h. sie rufen keine Ausgabefunktionen des Betriebssystems auf sondern haben eigene Anzeigeroutinen für Text). Das heißt das in den CLients entweder jede Menge Reverse-Engineering steckt oder dass die Cliententwickler eine andere Schnittstelle für die Pokerprogramme zur Verfügung stellen (bei der man vermutlich Geld zahlen muss, um die Doku zu bekommen).
    Ein anderer Ansatzpunkt wäre vermutlich über den Netzverkehr anstatt über das Ausgabefenster aber das habe ich damals nicht ausprobiert.

    Ist aber alles viele Jahre her, keine Ahnung, ob das noch aktuell ist.



  • Rille schrieb:

    Erstmal recht herzlichen dank für die tolle Antwort, du hattest vollkommen recht. Bei meinem Pokerraum kann man den Chatlog aktivieren und wird dann als Text-Datei gespeichert. Diese lässt sich anschließend analysieren.

    Dennoch stellt sich mir die Frage wie man eine Echtzeit-Übertragung dieser Informationen bewerkstelligt.

    Angenommen du hast auf der Hand: Kh Jh
    Flop: 7h Kc Jc
    Turn: 9h

    der River steht noch aus. Um das eigene Blatt zu verbessern fehlt entweder eine heart-card, ein King oder ein Jack. Es gibt ja einige Programme die dann in Echtzeit Informationen liefern wie eben z.b. Chance auf Flush oder full house ohne das der Spieler selber aktiv werden muss. Wie bewerkstelligen diese Programme das? Wo müsste man da ansetzen um zur Laufzeit des Spiels an die aktuellen Daten zu kommen?

    Das haben SeppJ und ich doch schon erklärt, zumindest wie man an die Informationen kommt.
    Um die Wahrscheinlichkeit für eine bestimmte Hand auf dem River auszurechnen musst du doch nur die verbleibenden Karten mit deiner Hand kombinieren. Du kennst deine Hole Cards,du kennst den Flop und den Turn, d.h. du kennst sechs von 52 Karten. Damit weißt du auch, welche 46 Karten verbleiben, bildest daraus alle Permutationen und zählst dabei die Häufigkeiten für eine bestimmte Hand. In deinem Beispiel verbessert jeder K (noch 2 im Deck) und jeder J (ebenfalls 2) deine Hand zu einem Full House, die Wahrscheinlichkeit dafür liegt bei 4/46, also bei knapp 8.7%. Jedes Herz (9 verbleibende Karten) verhelfen dir zum Flush, die Wahrscheinlichkeit dafür liegt mit 9/46 bei etwa 19.5%.

    Ich glaube, dass die Poker Clients ihren Traffic verschlüsseln, einfach die Netzwerkkarte abzuhorchen wird wahrscheinlich nicht so einfach gelingen.

    PS:
    Wusstet ihr, das die Full Tilt Software von Chris Ferguson selbst kommt (bzw. er hat zumindest daran mitgearbeitet und hat wohl nen Abschluss in Informatik)?



  • In meinem letzten Post habe ich mich vielleicht etwas missverständlich ausgedrückt 🙂 . Wie die einzelnen Berechnungen für z.b. outs funktionieren ist mir schon klar, zumindest sollte man diese imho als Poker-Spieler kennen. Ich wollte mit dem Beispiel nur meine Frage verdeutlichen, was mir wohl nicht gelungen ist ^^. Nach längerem stöbern habe ich einige gute Ansätze gefunden. Sehr interessiert hat mich der Ansatz des screen scrappings. Der Vorteil dabei liegt meiner Meinung nach darin, das die Software unabhängig von updates seitens der Poker-Software läuft, solange keine Layoutänderung vorgenommen wird.
    Ich werd's zumindest mal versuchen umzusetzen.
    Als erstes hab ich mir mal überlegt was meine Software zukünftig können soll und nen kleinen Ablaufplan erstellt. Beginnen werd ich erstmal mit der Auswertung der Hand-History. Also welche Karten hab ich gespielt, welche Karten haben die anderen gespielt und das ganze dann Datenbank-mäßig ablegen. Mit Spy++ hab ich gesehen, das man Pokerstars die jeweiligen Spieler am Tisch entnehmen kann. Kombiniert mit so einer Datenbank und einer angemessenen Anzahl von Spielen ist es dann ja möglich während des Spiels den "Charakter" des Gegenspielers zu ermitteln.

    Das sind so die ersten drei Schritte. Daten sammeln, analysieren und visualisieren.

    PS: Ne das wusste ich tatsächlich nicht , das "Jesus" da mitgewirkt hat. Jetzt bin ich schon wieder etwas schlauer 🤡



  • Das willst du dir echt antun? Ich kenne mind. 5 Programme, die man für relativ wenig Geld bzw. im Rahmen von Promotions für Nüsse bekommt. Da würd ich nicht eine Sekunde dran denknen, sowas selbst bauen zu wollen.



  • Jeder kennt doch das Problem, seinen Programmier-Horizont erweitern zu wollen aber man Probleme hat das richtige Projekt zu finden, welches einen auch noch gefällt. Mir gefällt das Programmieren, ich interessiere mich fürs Pokern und mir gefällt es sich mit mathematischen zusammenhängen auseinanderzusetzen. Ist doch schonmal ne gute Grundlage.



  • Ah, ok, das ist natürlich was anderes. Kannst uns ja auf dem Laufenden halten, wie sich dein Projekt so entwickelt, hast dir auf jeden Fall was Interessantes ausgesucht.



  • Moin,

    bin gerade auf der gleichen Suche, wie Du damals. Hat sich daraus etwas entwickelt?

    mit freundlichem Gruß

    Gast123454


Anmelden zum Antworten