AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Poker Simulator

Ein Thema von henryhux · begonnen am 26. Sep 2010 · letzter Beitrag vom 27. Sep 2010
Antwort Antwort
Medium

Registriert seit: 23. Jan 2008
3.689 Beiträge
 
Delphi 2007 Enterprise
 
#1

AW: Poker Simulator

  Alt 27. Sep 2010, 01:02
Höhere Karte -> besser.
Razz = Rats = schlechteste Hand, Gegenteil zu den Nuts. Beim Razz gewinnt die Hand, die die niedrigste höchste Karte aufweist. Bedenke, dass das dabei Ass als 1 gewertet wird, also im weitesten Sinne "beste" Karte bleibt.
Ich habe auch gerade gemerkt, dass es durchaus Paare und Drillinge beim Razz gibt, weil ja auch nicht sicher ist, dass man immer mindestens 5 unterschiedliche Karten hat. Das macht dann die rein kombinatorische Lösung leider kaputt, sorry.

Du müstest eventuell auch noch etwas genauer fragen. Welche Wahrscheinlichkeit willst du genau? Die, dass du im Moment die bessere Hand hälst (s.o.)? Die, mit der dein Gegner noch besser wird als du? Die, mit der du die gesamte Hand gewinnst, basierend auf allem was du gerade siehst, und was noch kommen könnte?

Mal noch ne Portion Mathe, einfach nur für den Überblick.
Bei zwei Spielern gibt es insgesamt (52 über 14) = 1.768.966.344.600 mögliche Spiele.
Nach den ersten je 3 Karten noch (48 über 8) = 377.348.994 (52-4=48, man sieht ja seine eigenen 3 und eine vom Gegner)
Nach den ersten 4 (46 über 6) = 9.366.819
Nach dem 5th street (44 über 4) = 135.751
Nach dem 6th street (42 über 2) = 861

Bei gleichverteiltem Zufallsgenerator (was der Delphi-eigene ist, so lange man ihn nicht missbraucht), wenn du bei 377.348.994 möglichen Händen eine Schätzung machen willst, die nur in 1% aller Fälle verkehrt ist, brauchst du (nach konservativem Ansatz) mindestens n=(377.348.994*0,25*2,58²) / (377.348.993*0,01² + 0,25*2,58²) = 627946460,9154 / 37736,5634 ~= 16.641 Proben. Das ist super flott gemacht, sagt dann aber auch NUR aus, ob du wahrscheinlich gewinnst, oder nicht! Es trifft ÜBERHAUPT keine verwertbare Aussage darüber, wie diese Chancen nun wirklich stehen! Also im Bezug auf Setzhöhe (Pot-Odds) nicht wirklich brauchbar.

Dreht man das um, und du weisst ca. wie viele Proben du zeitlich hin bekommst, könnte man die Aussagequalität noch verbessern. Angenommen, du kannst dir 200.000 Proben erlauben:
200000=(377.348.994*0,25*2,58²) / (377.348.993*a² + 0,25*2,58²) <=>
a = sqrt((0,25*2,58²)/200000) = 0,00288
Das heisst, nach 200000 Proben weisst du mit 99,7%iger Sicherheit, wer das Spiel gewinnen wird. Nach den ersten 3 gegebenen Karten. Das kommt mir zwar gerade zu gut vor, aber um die Uhrzeit schau ich jetzt nicht nochmal genauer in meinen alten Statistikunterlagen nach
Aber so an sich...

Zitat:
EDIT2: Hier ist es in C geschrieben. Die Links mit dem Source-Code sind im Text "versteckt".
Auf Suchspiele haben wir hier eher selten Lust - zumindest wenn es nichts zu gewinnen gibt

Zum wichtigeren Teil! *hust*

Zum Vorgehen in Delphi: 2 Arrays of Integer, 0 = keine Karte, 1-13 = Ass bis König. Die Arrays sortiert halten. Deine ersten 3 Karten in eines schreiben, die eine offene des Gegners in das andere. Die Nullen durch den Zufallsgenerator mit 1-13 füllen (natürlich so, dass keine unmögliche "Gebungen" auftauchen!*), sortieren, und die 5 niedrigsten ohne doppelte daraus in 2 neue 5-Elementige Arrays schieben. Ist ein 5er-Array noch nicht voll, den niedrigsten verbleibenden Wert aus dem 7er "Mutter-Array" reinschieben, usw. Dabei gleich mal separat merken, dass ein Paar entstanden ist, d.h. sollte sich das zweite Array nicht paaren, ist schon klar wer gewinnt. Diese 5er Arrays dann sortieren, und wenn gleich viele bzw. keine "Figuren" (Paare usw.) enthalten sind, von oben nach unten vergleichen. Der, der als erstes eine niedrigere Zahl hat als der andere ist der Gewinner.
*) Am einfachsten machbar durch ein Array der Länge 52, in das dann "1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4...." geschrieben wird, die bekannten entfernt, und dann per Zufallsgenerator gemischt (findet sich einiges zu im Forum hier).

Sowas sollte sich in ein paar Sekündchen ein paar zigtausend mal gut machen lassen, so dass du zumindest was die Aussage "ich gewinne" oder "ich verliere" zu recht brauchbaren Werten kommst. Nur für die genauen Wahrscheinlichkeiten müsste man erheblich mehr Proben ansetzen. Erheblich. Und Razz ist dabei noch ein vergleichsweise super-simpler Fall, da die Farben ja keine Rolle spielen
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)

Geändert von Medium (27. Sep 2010 um 01:11 Uhr)
  Mit Zitat antworten Zitat
henryhux

Registriert seit: 25. Sep 2010
7 Beiträge
 
#2

AW: Poker Simulator

  Alt 27. Sep 2010, 14:49
Hi,

also die Idee ist wirklich gut. Nur leider sind meine Kenntnisse für so etwas sehr beschränkt.

Da ich auch mit vielen Hilfen nicht weiterkomme und ich das Programm nicht links liegen lassen will, biete ich demjenigen, der mir das Programm in Delphi schreibt und mir den Quellcode schickt, 50€ per Paypal. Das Geld würde ich derjenigen Person dann geben, wenn er mir über Screenshots zeigen könnte, dass das Programm klappt, unter 3-4 Sekunden bleibt und eine Abweichung von maximal 2% aufweist. Dazu müsste er die Funktion haben, Gegner auf Ranges zu setzen.
Insgesamt sollte er die gleichen Funktionen haben wie der Razz Simulator von http://propokertools.com/simulations .
Ich denke, dass es gut möglich ist das Programm sehr klein zu halten. Das wäre völlig egal, hauptsache es erfüllt die oben genannten Funktionen.

Danke =)

Lg

Henry


EDIT: Wenn sich jemand dadran wagen will, soll er mir eine PN schicken, damit ich weiß ob evtl zwei Leute dran sind.
EDIT2: Natürlich gibt es auch noch die C-Files, die man als Hilfe nehmen könnte.

Geändert von henryhux (27. Sep 2010 um 16:29 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz