Zum Forum springen
Brauche Hilfe beim ...
 
Benachrichtigungen
Alles löschen

Brauche Hilfe beim Programmieren von einer Pokersoftware

21 Beiträge
11 Benutzer
41 Reactions
1,341 Ansichten
ThePuppetmaster
Beigetreten: 27.10.2010

Hallo zusammen,

Ich habe eine Idee für eine Pokersoftware. Das soll eine Art HandRange Trainer werden.

Konkret stelle ich mir vor, dass man in dem Programm HandRanges einlesen kann (Ich sage z.B. UTG, 20bb deep: OR A5s+, 77+, K9s+, Q9s+, J9s+, T9s, KQo, ATo+ -- 4bet with 99+, AQo+, AQs+ -- Call 3bet mit ....). Ihr versteht hoffentlich was ich meine (bitte diskutiert nicht über die Range, die sind aus den Fingern gezogen ).

Nachdem man seine Ranges eingelesen hat, kann man das Training starten. Das Programm sagt dir jetzt z.B. "Du bist 20bb deep UTG und hast A9s: Openraise oder Fold?". Und nachdem man OR geklickt hat sagt das Programm z.B: "3bet from MP: Fold, Call oder 4bet?". Und danach erfährt man ob man es richtig gemacht hat oder nicht.

Ich habe minimal Programmiererfahrung mit Python und Java. Hab jeweils ein Modul "Einführung ins Programmieren" an der Uni belegt. Super viel hängen geblieben ist da aber nicht.
Ich hab keinerlei kommerzielle Gedanken, also ist es komplett egal wie scheiße das aussieht. Nun meine Fragen:

1. Gibt es so ein Programm bereits? Ich hab ne Weile nach gegoogelt, aber nix gefunden.
2. Schreibt man sowas lieber in Python oder in Java?
3. Ist es realistisch, dass ein Programmiernoob wie ich das hinbekommt? Ich würde mich natürlich nochmal in Java bzw. Python reinlesen.
4. Habt ihr sonstige Tipps für mich?


Antwort
Zitat
20 Antworten
onese7en
Beigetreten: 19.12.2010

Die Werte, die du abfragst, sind aber fest hinterlegt und müssen nicht irgendwie berechnet werden, oder? Also es gibt beispielsweise eine Tabelle, in der steht was du mit welchen Händen UTG 20bb deep machst. Und dann willst du eigentlich nur deine Eingabe mit dem entsprechenden Wert aus der Tabelle vergleichen, oder?

Kommt letztlich drauf an, wieviel Zeit und Energie du investieren möchtest. Aber das bekommt man beispielsweise mit Java und SQL schon hin, nur eben mit deinem Vorwissen nicht in 2-3 Tagen, würde ich schätzen.
Wenn du aber am Programmieren interessiert bist und es dir Spaß macht, dir das "learning by doing"-mäßig beizubringen, go for it!


Antwort
Zitat
flowIIpoker
Beigetreten: 14.02.2007

.

noch jemand der durch die sprachen gewandert ist

glaub mit python bist du besser aufgehoben als mit java


Antwort
Zitat
beg0r
Beigetreten: 07.05.2006

Klingt nach einem guten Anfängerprojekt für einen Mathematiker. Aber auch definitiv ein sehr ambitioniertes Projekt!

Ich vermute, dass du die Hand Equities mit Monte Carlo Simulationen bestimmen musst. Würde empfehlen, nach einem schnellen "Poker Hand Evaluator" zu googlen und als Grundlage für deine Monte Carlo Simulation zu nutzen. Es ist schwer einen schnellen Hand Evaluator zu schreiben. Damit fällt Python als alleinige Programmiersprache auch direkt raus.

Wenn das mein Projekt wäre, würde ich die Monte Carlo Simulation in C oder C++ schreiben und den Rest in Python. Vielleicht wäre es für dich unkomplizierter alles direkt in Java zu machen. Java ist schnell genug. Da hast du die Qual der Wahl. =) Diskussion einiger Hand Evaluators: http://www.codingthewheel.com/archives/poker-hand-evaluator-roundu p" rel="nofollow ugc" target="_blank"> https://web.archive.org/web/20111103160502/http://www.codingthewheel.com/archives/poker-hand-evaluator-roundup

Vielleicht hab ich deinen Plan aber auch falsch verstanden und du brauchst keine Monte Carlo Simulation. Oder es gibt eine Alternative dazu. Das ist aber eine mathematische Frage und keine Programmierfrage.


Antwort
Zitat
Izzet
Beigetreten: 27.03.2006

Ich denke so ein Projekt ist eigentlich perfekt um Programmieren zu lernen. Da du es nur selbst nutzten willst, ist es völlig egal wie der Code oder Benutzeroberfläche aussehen und du bist maximal motiviert weil du dir einen Nutzen davon versprichst. Ich habe selbst Anfang des Jahren angefangen Python zu lernen indem ich meine eigenen Ideen versucht habe umzusetzen. Mit Python lässt sich dein Vorhaben auf jedenfall gut machen.
Die wichtigste Frage ist wohl, wie du die Handranges generieren willst. Per Hand wäre das sicher nicht sinnvoll. Wenn du was geeignetes hast um die Hände zu erstellen, könnte man die einfach in eine sql datenbank speichern und dann per Zufall abrufen.


Antwort
Zitat
flowIIpoker
Beigetreten: 14.02.2007

die ranges zu definieren ist doch interessanter als die sprache


Antwort
Zitat
ThePuppetmaster
Beigetreten: 27.10.2010

Okay, da war ich wohl ein wenig ungenau in der Beschreibung in meinem Eröffnungspost.

Die Ranges existieren schon. Ein Beispiel wie die aussehen:

Obwohl das noch so ziemlich das einfachste Beispiel ist. Die Charts gibt es für verschiedene Stacksizes und Positionen. Neben Openraising auch noch für Flattcalling/3Betting, Squeezes, BB Defend vs Limps etc.... Also ziemlich viele Charts.

Meine Idee war nun, die Ranges irgendwie (händisch) in ein Programm reinzuschreiben. Kack viel Arbeit, aber naja... Das Programm soll mir dann eine Random Hand, eine Random Stacksize, eine Random Position geben. Danach fragt es mich ob ich openraisen oder folden möchte. Nach der Option openraise sagt er noch random aus welcher Position jetzt die 3bet kommt und wie ich darauf reagiere.

Letzten Endes ist es ein Quiz. Ich habe schon einen Quellcode für ein Quizprogramm online gefunden. Das könnte ich abändern und dann einfach jede einzelne Hand (mit jeder einzelnen Stacksize/Position) als Frage mit der entsprechenden Antwort reinschreiben. Das wären für die Openraising Charts 6760 verschiedene Fragen/Antworten, also nicht wirklich realistisch. Die muss ich aber bestimmt nicht einzeln eintragen, sondern könnte irgendwie die Hände die in die gleiche Kategorie gehören irgendwie zusammenschreiben. Wenn ich das machen würde, wäre das natürlich null graphisch, sondern einfach nur eine Quizfrage: "Du bist 20bb depp UTG und hast 99" Und dann hab ich 6 Buttons die ich drücken kann mit in welche Kategorie ich es ordne.

Da das Programm mit Java geschrieben ist konzentriere ich mich also vorerst auf Java. Ich probiere es jetzt mal nur für den Fall UTG, 20bb, Openraising aus und schaue wie viel Aufwand das ist. Schöner wäre es natürlich irgendwas graphisches zu haben, aber das ist wahrscheinlich 100-fach so viel Arbeit. Ich schreib dann hier rein wie es geklappt hat.


Antwort
Zitat
flowIIpoker
Beigetreten: 14.02.2007

normal schreibst du das einmal mit atributen in eine xml

ich wuerde das so machen ... egal in welcher sprache


Antwort
Zitat
sarc
Beigetreten: 06.06.2008

Mit der Beschreibung ein schönes Projekt, um neue Sachen auszuprobieren. Dann aber nicht bei jeder Gelegenheit erklären "ne, das schau ich mir gar nicht erst an, das ist bestimmt zu viel Aufwand"... ;)

Kannst das ja in verschiedene Schritte unterteilen:

Mit ner Minimalversion starten. Ein paar hardcoded Fragen, Logik drumrum dass du Antworten eingeben kannst und die geprüft werden. Das dann erst mal über die Kommandozeile bedienen. Dann kannst dir mal anschauen, wie grafische Oberflächen funktionieren, und ersetzt die Kommandozeile durch ne GUI. Rest sollte gleich bleiben, wenn nicht kannst du direkt lernen, wie du dein Design verbessern kannst. Wenn du das hast kannst du dir Gedanken machen, wie du die Fragen sinnvoll speicherst. Und dann schaust du, wie du die Unterlagen, die du hast und in das Quiz laden willst, in dein Fragenformat konvertiert kriegst. Wenn du den Rest in Java machst wäre das dann eventuell auch ne schöne Gelegenheit, Python einzuführen... ;)

Also: Solang du das als Projekt siehst, das du durchziehen willst um zu lernen, go for it! Wenn du möglichst schnell mit möglichst wenig Aufwand dieses Programm haben willst würd ichs bleiben lassen...


Antwort
Zitat
flowIIpoker
Beigetreten: 14.02.2007

qt4 sollte doch einfach als lib einzubinden sein

was mich eher interessiert ob er eine vorstellung hat, wie er den stream von der pokerseite abgreifen kann
die technische loesung (egal in welcher sprache)
da haette ich intresse drann


Antwort
Zitat
pg89
Beigetreten: 05.04.2008

Das ist definitiv machbar und auch nicht äußerst kompliziert.
Ranges würde ich in XML oder json definieren, das lässt sich einfach einlesen (was eigentlich schon fast das komplexeste ist).
Dann einen Zufallsgenerator nehmen und holecards erzeugen, abfragen in welche der ranges sie passt (also welches die richtige Aktion wäre) und gucken ob der richtige Button gedrückt wurde. Oberfläche ist auch schnell gebaut, wenn es nicht besonders schön sein muss.


Antwort
Zitat
flowIIpoker
Beigetreten: 14.02.2007

irgendwie hab ich gerade den eindruck, das wir ihm alle probleme abnehmen

ein bisschchen sollter er doch auch mit eigenem aufwand lernen sollen

trotzdem find ich das toll, das man hier auch hilfe bekommt und nicht stackoverflow bemuehen mus ;)


Antwort
Zitat
flowIIpoker
Beigetreten: 14.02.2007

xml/jason ... da kann mann ja auch solverstrategien reinpacken
ist doch nur eine if abfrage

ich mag den gedanken wenn er das umsetzt
pm gerne an mich, wenn du was gebastelt hast


Antwort
Zitat
ThePuppetmaster
Beigetreten: 27.10.2010

Vielen Dank für all eure Hilfe. Ich habe mich gestern nochmal ein bisschen eingearbeitet, aber habe echt quasi bei null angefangen. Ich halte euch auf dem laufenden.


Antwort
Zitat
zetec
Beigetreten: 08.12.2007

Geht's dir ums programmieren lernen, oder willst einfach unbedingt so'n Tool? Falls letzteres, dann schau dir mal Pairrd von RYE an.

https://www.raiseyouredge.com/pairrd


Antwort
Zitat
flowIIpoker
Beigetreten: 14.02.2007

na da steht ja immer buy now

ich bin so ein fan von opensoftware gerade wen man sich gegen die bot waeren soll


Antwort
Zitat
COleException
Beigetreten: 04.12.2007

Original von flowIIpoker
was mich eher interessiert ob er eine vorstellung hat, wie er den stream von der pokerseite abgreifen kann
die technische loesung (egal in welcher sprache)
da haette ich intresse drann

Kannst Du mal erklären, was "stream von der pokerseite abgreifen" mit der Fragestellung des OP zu tun hat und was Du damit überhaupt meinst?

Und dann würde mich interessieren, warum Du Dir ausgerechnet vom OP Antworten auf Deine Frage erhoffst, da er doch ausdrücklich gesagt hat, dass er nur die Grundlagen beherrscht? Ich begreife Deinen Beitrag irgendwie gar nicht ?(


Antwort
Zitat
flowIIpoker
Beigetreten: 14.02.2007

das ist ja nur noch weiter gedacht ...
chart sagt doch nur, was ich mache
aber ableitend kann ich doch aus meinem chart selber handeln. wenn ich die info aus dem straem habe
da kann ich meine range anpassen. ob das noch legal ist, naja


Antwort
Zitat
Izzet
Beigetreten: 27.03.2006

Den Pokerstream abgreifen geht wohl nur über graphische Erkennung (OCR). Ist heute auch kein großes Problem, aber wie vermutet, ist jede Anwendung dafür wohl gegen jede AGB.


Antwort
Zitat
JustStopMe
Beigetreten: 14.10.2010

Simple GTO Trainer

Sollte eigentlich alle deine Wünsche erfüllen. Du kannst deren Packs kaufen oder auch deine eigenen Solves bzw. Handhistorys einlesen. Hab 2018 mit dem Tool gearbeitet also kann ich wenig zur aktuellen Version sagen. War damals jeden Cent Wert, die Free Trial sollte jeder mitnehmen.


Antwort
Zitat