Moin alle zusammen,
ein paar Kommilitonen und ich entwickeln zur Zeit Texas Holdem software. Ich habe mich eine Weile mit Chancenberechnung etc auseinandergesetzt und festgestellt, dass es viele Möglichkeiten gibt, Poker Odds zu bestimmen.
Ich habe mich für folgendes entschieden: Zu jedem Zeitpunkt mit jeder Hand sollen die Prozente angezeigt werden, mit welcher Wahrscheinlichkeit man mit den gerade verfügbaren Karten am Ende des Spiels mit einer HighCard, einem pair, 2Pair, ThreeOfAKind,...,Straight Flush dasteht.
Man hat zB vor dem Flop die Starthand Kreuz Ass, Kreuz König:
HighCard: 18,22%
Pair: 43,25%
Two Pair: 22,16%
Three OAK: 4,34%
Straight: 3,09%
Flush: 6,52%
Full House: 2,23%
Four OAK: 0,13%
Straight Flush: 0,06%
Insgesamt sollte 100% rauskommen.
Meine Idee zur Lösung des Problems: Es gibt 133 Mio Möglichkeiten 7 Karten aus 52 auszuwählen. Ich speichere alle in eine Datenbank. Die Reihen heißen etwa "HoleCard1", "HoleCard2", "Flop1", "Flop2", "Flop3", "Turn", "River" und dann "WinType" (wo einer der 9 Typen HighCard bis Straight Flush drinsteht).
Bei PreFlop liegen zero Karten in der Mitte, d.h. alles was sichtbar ist, sind 2 Handkarten. Da mache ich dann folgendes: Ich lasse mir alle Zeilen ausgeben, in denen HoleCard1 und HoleCard2 übereinstimmen, summiere die Anzahl der Zeilen auf und rechne dann: AnzahlHighCard / Summe, AnzahlPair / Summe, ... um die korrekten Zahlen zu erhalten.
Bei Flop lasse ich mir dann bzgl 5 Karten alle Werte ausgeben und berechne danach.
usw.
Habe kaum Erfahrung was Java und Datenbankanbindung angeht. Nun wollte ich wissen, ob sich für so eine riesige Tabelle (133 Mio Zeilen, 8 Spalten) JDBC eignet und wenn ja, ob ihr mir irgendwelche Tipps diesbezgl geben könnt.
Ich würde dann also einmalig irgendwie diese Tabelle erstellen und dann mit dem Spiel 'mitliefern' (ist nur für Lernzwecke) um die Daten abzurufen.
Falls es einfachere Methoden gibt das Ganze zu realisieren, nur zu.. :bahnhof:
MfG Chop
PS: Beste hand berechnen ist schon Teil des Programms. Das stellt hier also kein Problem dar.
ein paar Kommilitonen und ich entwickeln zur Zeit Texas Holdem software. Ich habe mich eine Weile mit Chancenberechnung etc auseinandergesetzt und festgestellt, dass es viele Möglichkeiten gibt, Poker Odds zu bestimmen.
Ich habe mich für folgendes entschieden: Zu jedem Zeitpunkt mit jeder Hand sollen die Prozente angezeigt werden, mit welcher Wahrscheinlichkeit man mit den gerade verfügbaren Karten am Ende des Spiels mit einer HighCard, einem pair, 2Pair, ThreeOfAKind,...,Straight Flush dasteht.
Man hat zB vor dem Flop die Starthand Kreuz Ass, Kreuz König:
HighCard: 18,22%
Pair: 43,25%
Two Pair: 22,16%
Three OAK: 4,34%
Straight: 3,09%
Flush: 6,52%
Full House: 2,23%
Four OAK: 0,13%
Straight Flush: 0,06%
Insgesamt sollte 100% rauskommen.
Meine Idee zur Lösung des Problems: Es gibt 133 Mio Möglichkeiten 7 Karten aus 52 auszuwählen. Ich speichere alle in eine Datenbank. Die Reihen heißen etwa "HoleCard1", "HoleCard2", "Flop1", "Flop2", "Flop3", "Turn", "River" und dann "WinType" (wo einer der 9 Typen HighCard bis Straight Flush drinsteht).
Bei PreFlop liegen zero Karten in der Mitte, d.h. alles was sichtbar ist, sind 2 Handkarten. Da mache ich dann folgendes: Ich lasse mir alle Zeilen ausgeben, in denen HoleCard1 und HoleCard2 übereinstimmen, summiere die Anzahl der Zeilen auf und rechne dann: AnzahlHighCard / Summe, AnzahlPair / Summe, ... um die korrekten Zahlen zu erhalten.
Bei Flop lasse ich mir dann bzgl 5 Karten alle Werte ausgeben und berechne danach.
usw.
Habe kaum Erfahrung was Java und Datenbankanbindung angeht. Nun wollte ich wissen, ob sich für so eine riesige Tabelle (133 Mio Zeilen, 8 Spalten) JDBC eignet und wenn ja, ob ihr mir irgendwelche Tipps diesbezgl geben könnt.
Ich würde dann also einmalig irgendwie diese Tabelle erstellen und dann mit dem Spiel 'mitliefern' (ist nur für Lernzwecke) um die Daten abzurufen.
Falls es einfachere Methoden gibt das Ganze zu realisieren, nur zu.. :bahnhof:
MfG Chop
PS: Beste hand berechnen ist schon Teil des Programms. Das stellt hier also kein Problem dar.
Zuletzt bearbeitet: