| Autor |
Beitrag |
danycat
Hält's aus hier
Beiträge: 5
|
Verfasst: Mo 09.03.09 21:01
Hallo,
ich habe ein Programm entworfen, mit dem ich die Gewinnchance zweier Spieler bei dem Spiel Texas Hold'em berechnen will.
Bis jetzt funktioniert das auch ganz gut, bis auf die Wahrscheinlichkeitsrechnung (die ja das Wichtigste an dem Ganzen ist). Mein Programm soll nach dem Flop und Turn jeweils die Gewinnchancen der beiden Spieler anzeigen. Dabei ist zu beachten, dass auch die Hole-Cards vom Gegner bekannt sind.
Um das zu vereinfachen haben alle Karten-Werte die Zahlen von 2 (für 2) bis 14 (für Ass) zugewiesen bekommen und die Farben die Werte von 15-18 (Kreuz=15, Karo=16, Pik=17 und Herz=18 ).
Um nicht nur zwischen den Werten ODER den Farben unterscheiden zu können hat jede Karte einen Gesamtwert, der sich durch die Formel g=wert*wert+farbe berechnen lässt. Ein Beispiel: die Pik 3 hat schließlich den Gesamtwert g=3*3+17 = 23.
ÄNDERUNG!!!! Habe die Zahlen für die einzelnen Karten geändert, Farbe und Wert sind gleichgeblieben, allerdings haben die Karten andere Gesamtwerte:
die Kreuz 2 bis Kreuz Ass haben jetzt die Zahlen 1 bis 13,
Karo 2 bis Karo Ass = 14 bis 26,
Pik 2 bis Pik Ass = 27 bis 39 und
Herz 2 bis Herz Ass = 40 bis 52 !!!
Nach dem die letzte Karte aufgedeckt wurde wird ausgegeben, welcher Spieler welches Blatt hat und somit gewinnt...
Ich würde mich freuen, wenn jemand eine Idee hat wie ich das mit den Gewinnchancen realisieren kann.
Bis denne und DANKE im Vorraus,
danycat
ÄNDERUNG am 11. März, bin bis jetzt leider nicht viel weiter gekommen... über weitere Hilfe würde ich mich freuen.
Danke
Zuletzt bearbeitet von danycat am Mi 11.03.09 19:39, insgesamt 1-mal bearbeitet
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Mo 09.03.09 21:13
Hallo und :Welcome: im DF,
vielleicht kannst du damit was anfangen:
de.wikipedia.org/wiki/Poker#Kombinationen
wenn du es jedoch vollkommen dynamisch machen willst wirst du um die wahrscheindlichkeitsrechnung nicht herumkommen.
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
danycat 
Hält's aus hier
Beiträge: 5
|
Verfasst: Mo 09.03.09 21:19
An sich habe ich die Theorie von der Wahrscheinlichkeitsrechnung beim Poker schon verstanden.
Ich will, dass der PC die Outs (also die Karten die den Spielern helfen ein gutes Blatt
zu bekommen) berechnet, aber ich weiß nicht wie ich das mache, weil es leider 1,3 Millionen
Möglichkeiten gibt...
Und alle aufzuzählen wäre mir etwas zu aufwändig 
|
|
crncpz
      
Beiträge: 59
WIN 2000, WIN XP Pro
Delphi 6
|
Verfasst: Di 10.03.09 00:11
hallo
wenn dir die karten des gegners bekannt sind kannst du doch versuchen alle möglichkeiten zu finden, die dem aktuell schwächeren blatt helfen zu gewinnen. dann müsste jede karte mit der auftretenden wahrscheinlichkeit im stapel berücksichtigt werden. wenn man dann noch die summe aller restlichen möglichen kombinationen kennt die gelegt werden könnten, kann man auch einfach bestimmen wie warscheinlich jemand gewinnt.
die anzahl aller kombinationen müsste so was wie 52^5 vor de flop sein und 52^3 danach usw
dann muss man halt noch irgendwie herausfinden welcher teillösung der lösungsmenge zu sieg des einen spielers führt.
bei den restlichen muss ja dann der andere gewinnen oder es endet unentschieden.
oder denke ich da gerade falsch
vielleicht fängt man erstmal beim trivialsten fall an wenn nur noch der river fehlt, da kann man zumindest das ergebnis nachvollziehen
die schwierigkeit liegt wohl ehr darin die wahrscheinlichkeitsrechnung mit den spielregeln zu vereinen.
|
|
danycat 
Hält's aus hier
Beiträge: 5
|
Verfasst: Di 10.03.09 07:40
ja, an sich hatte ich mir das auch so gedacht. Das einzige Problem ist halt dass es so viele Möglichkeiten gibt.
Aber der Tipp, erst mal die Wahrscheinlichkeiten nach dem Turn berechnen zu lassen ist gut
das werd ich dann erst mal versuchen.
Trotzdem würde ich mich über weitere Ideen freuen.
|
|
hazard999
      
Beiträge: 162
Win XP SP2
VS 2010 Ultimate, CC.Net, Unity, Pex, Moles, DevExpress eXpress App
|
Verfasst: Di 10.03.09 08:51
_________________ MOV EAX, Result;MOV BYTE PTR [EAX], $B9;MOV ECX, M.Data;MOV DWORD PTR [EAX+$1], ECX;MOV BYTE PTR [EAX+$5], $5A;MOV BYTE PTR [EAX+$6], $51;MOV BYTE PTR [EAX+$7], $52;MOV BYTE PTR [EAX+$8], $B9;MOV ECX, M.Code;MOV DWORD PTR [EAX+$9], ECX
|
|
danycat 
Hält's aus hier
Beiträge: 5
|
Verfasst: Mi 11.03.09 19:40
Leider hilft mir das nicht allzu viel, weil ich ja nicht nur bezogen auf die Starthände die Gewinnchancen anzeigen will... aber trotzdem danke 
|
|
danycat 
Hält's aus hier
Beiträge: 5
|
Verfasst: Di 17.03.09 18:40
Hallo, ich brauche wirklich eure Hilfe.
Vergesst das alles von Wahrscheinlichkeiten usw. Die Wahrscheinlichkeitsrechnung ist eigentlich sehr einfach
aber mein Problem sind die Outs!!!
Wie berechne ich die Outs, bzw. wie bringe ich meinem PC logisches Denken bei (dh. dass er guckt welche Karten
welchem Spieler helfen würden)???
|
|
Mitmischer 1703
      
Beiträge: 754
Erhaltene Danke: 19
Win 7, Debian
Delphi Prism, Delphi 7, RAD Studio 2009 Academic, C#, C++, Java, HTML, PHP
|
Verfasst: Di 17.03.09 18:58
Wahrscheinlich indem du jedem Spieler testweise eine Karte in die Hand drückst und dann die Wahrscheinlichkeiten abgleichst. Zu den Wahrscheinlichkeiten hab ich auch noch das hier gefunden (Binomialverteilung):
(n über k)*p^k*(1-p)^n-k
_________________ Die Lösung ist nicht siebzehn.
|
|