Image Image Image




Post new topic Reply to topic  [ 33 posts ]  Go to page 1, 2  Next
Author Message
 Post subject: Anfängerfrage
PostPosted: Tue Feb 01, 2011 1:55 pm 
Offline
Regular member
User avatar

Posts: 50
Favourite Bot: none
Hallo,
ich befasse mich schon seid Jahren mit dem Pokerspiel und spiele auch live recht Profitabel.
Ich habe nun etwas mehr Freizeit und möchte mich weiterbilden und das ganze mit der Programmierung eines Pokerbots kombinieren.
Nun bräuchte ich eine Richtung wie ich am besten dran gehen sollte.

Ist es Sinnvoller auf eine vorhande Lösung aufzubauen, Stichwort OpenHoldem oder sollte ich nen komplett neuen Bot programmieren? Wenn komplett neu aufsetzten, in Java oder C++ bzw. was würdet ihr da empfehlen?

Gibt es schon ansätze zur freien Verfügung z.B. Table hopper etc. die ja in der Regel bei vielen gleich sein sollten oder programmiert das jeder von euch selbst?

Programmiertechnisch bin ich Neuling, aber lernen wollte ich sowas schon immer mal und es werden ja genug Kurse etc. angeboten um die verschiedenen Programmiersprachen zu lernen.


Top
 Profile E-mail  
 
 Post subject: Re: Anfängerfrage
PostPosted: Tue Feb 01, 2011 3:26 pm 
Offline
Senior member
User avatar

Posts: 209
Favourite Bot: winnie
als programmieranfänger würde ich dir abraten mit so einem riesenprojekt wie einen pokerbot zu beginnen. das ganze ist doch recht komplex und vorallem sehr, sehr, sehr, sehr viel arbeit mit teilweise hohem frustrationslevel ;)


Top
 Profile E-mail  
 
 Post subject: Re: Anfängerfrage
PostPosted: Tue Feb 01, 2011 4:30 pm 
Offline
Regular member
User avatar

Posts: 50
Favourite Bot: none
Das ist mir schon klar, dass ich nicht gleich nen Pokerbot programmiere. :-)

Aber ich will ja auch gleich in die Richtige Richtung steuern. Nich, dass ich mich jetzt Monate Lang mit Java beschäftige und wenns ans Bot programmieren geht, steh ich vor einem Problem, welches sich mit Java einfach nicht lösen lässt und in C++ viel einfacher zu realisieren wäre.

Aus diesem Grund würde ich gern Erfahrungswerte hören, von leuten die das schon ne Weile machen. Wenn ihr nochmal am Anfang wärt. Für was würdet ihr euch entscheiden? Java ist sicher einfacher zu erlernen, hat es dafür Nachteile in der Umsetzung die diese Lernvorteile wieder aufwiegen?


Top
 Profile E-mail  
 
 Post subject: Re: Anfängerfrage
PostPosted: Wed Feb 02, 2011 10:08 am 
Offline
Senior member
User avatar

Posts: 209
Favourite Bot: winnie
Naja C++ oder Java ist vom Lernaufwand das selbe. es gibt allerdings punkte die in C/C++ sicher leichter zu programmieren sind als in Java. Speziell wenn es um Windows API, Screenshots usw geht.
Im Großen und Ganzen ist es aber einfach eine Geschmackssache...
Beide Sprachen haben ihre Vor- und Nachteile.


Top
 Profile E-mail  
 
 Post subject: Re: Anfängerfrage
PostPosted: Wed Feb 02, 2011 2:06 pm 
Offline
Junior member
User avatar

Posts: 20
Favourite Bot: none
Man lernt heutzutage keine Programmiersprachen mehr. Man lernt Paradigmen.
Hat man ein bestimmtes Paradigma drauf, braucht man zum erlernen einer Sprache, die dieses Paradigma unterstuetzt nicht mal nen Monat.

Die Diskussion mit welcher Sprache man anfangen soll, oder in welcher Reihenfolge man lernen soll ist vollkommen hinfaellig. Man verdummt waehrend des Prozesses ja nicht, egal ob Du dich mit python, cpp, java, c# oder go beschaeftigst.


Top
 Profile E-mail  
 
 Post subject: Re: Anfängerfrage
PostPosted: Wed Feb 02, 2011 2:11 pm 
Offline
Junior member
User avatar

Posts: 27
Favourite Bot: Nomade FL Bot V1.1
java ist für einen programmier-anfänger deutlich einfacher zu erlernen als c++. dadurch das es dich zwingt objekt orientiert zu programmieren wirst du es anfangs viel einfacher haben als mit c/c++, da du hier viel mehr freiheiten hast. Aber freiheiten sind nicht unbedingt von vorteil, vor allem am anfang. Irgendwann wirst du nicht um c++/c# herumkommen, da du mit java nicht direkt auf die WIN API zugreifen kannst, die nötig ist um teile eines bots zu bauen.
Aber c++ zu lernen wenn man java kann ist deutlich einfacher als direkt ins kalte wasser zu springen und von anfang an mit einer so komplexen und verdammt gefährlichen spache wie c++ herum zu hantieren.
Ich würde dir für den anfang empfehlen mit Poker Academy herumzuspielen. das ist ein tool in dem du selbst gegen ander computer spielen kannst, oder auch ein programm mit hilfe der "meercat api" gegen die gegner spielen lassen kannst. diese API ist in java geschrieben und hier im froum stehen eine menge infos dazu.

viel glück


Top
 Profile E-mail  
 
 Post subject: Re: Anfängerfrage
PostPosted: Thu Feb 03, 2011 12:37 am 
Offline
PokerAI fellow
User avatar

Posts: 1673
Favourite Bot: none
Dem Argument mit den Paradigmen kann ich nur zustimmen. Wenn man einmal programmieren gelernt und verstanden hat, ist es relativ leicht eine neue Sprache zu beherrschen.

Zum Thema welche Sprache zum botten am besten geeignet ist: Dazu gibt es keine perfekte Antwort. Java, C#, C++, Python, AHK oder sonstige Sprachen werden in diesem Forum erfolgreich verwendet. Manche sind besser für bestimmte Dinge, andere schlechter. Am Ende muss man eventuell einen kleinen "Umweg" programmieren aber das wird bei jeder Sprache so sein. Insofern, lern erstmal programmieren und eigne dir ein paar Monate oder Jahre Erfahrung an, dann kannst du über botten nachdenken.

_________________
Cheers.


Top
 Profile  
 
 Post subject: Re: Anfängerfrage
PostPosted: Mon Feb 21, 2011 3:44 pm 
Offline
Regular member
User avatar

Posts: 50
Favourite Bot: none
Danke für die vielen Anworten. Na ganz unbeleckt bin ich in Sachen Programmierung nun auch wieder nich.

Zum einen hatte ich das in der Schule, allerdings haben wir da nur mit QBasic rum hantiert, aber immerhin. Die Grundzüge habe ich schon verstanden.

Und Arbeitstechnisch hab ich auch bissl was damit zu tun. Solche Dinge begreife ich sehr schnell muss ich sagen.

Und mit Java hab ich mich auch schon etwas beschäftigt.

Na gut, dann werde ich mal ans Werk gehen. Falls ich an einigen Stellen nicht weiter komme gibt es ja genug Java Foren. ich werde meine Fortschritte auch hier in einem Thread posten. Der deutsche Teil des Forums ist ja noch nicht sehr groß.

MfG


Top
 Profile E-mail  
 
 Post subject: Re: Anfängerfrage
PostPosted: Wed Feb 23, 2011 6:44 am 
Offline
Level1 member
User avatar

Posts: 47
Favourite Bot: ???
ich glaube, dass man wissen sollte wo es hingeht. Wenn du open Holdem nutzen möchtest, dann muss es C++ sein. Denn in dieser Sprache ist die Software geschrieben. Mann kann auch python nutzen, aber verschenkt dann die Möglichkeit alles nach seinen Bedürfnissen anzupassen. Wenn du alles selbst machen möchtest, dann steht dir die Wahl offen. Lediglich die dll fürs hooking muss System nah sein, also eher in C/C++. Mit easyhook lässt sich auch aus C# aus gut hooken. von codingthewheel kann man einen teil des Codes übernehmen. Dieser ist allerdings wieder in C++. Datenbanken lassen sich gut mit LINQ erfassen, was ein teil von .Net ist.
Ich persönlich habe mit C++ und open holdem angefangen, auch weil ich die Sprache schon recht gut kannte. Später bin ich davon abgekommen, weil das Programm seinen Unzulänglichkeiten hat und habe mir, aufbauend auf codingthewheel, ein eigenes framework geschrieben. Man muss nicht unbedingt hooken, aber das ist meiner Meinung nach die eleganteste Lösung und man kann 100% ige Zuverlässigkeit der Zustandserkennung erreichen.


Top
 Profile  
 
 Post subject: Re: Anfängerfrage
PostPosted: Tue Mar 08, 2011 9:33 am 
Offline
Regular member
User avatar

Posts: 50
Favourite Bot: none
Hallo,

also ich habe mich für Java entschieden, da dies für mich am leichtesten zu erlernen ist.
Und ich muss sagen ich finde es nicht sonderlich schwer.
Ich möchte gerne eure Meinung zu meinem Weg hören.
Ich habe mich entschieden den Pokerraum in einer VM laufen zu lassen und die Tischaktivitäten per Screenshot auszulesen. Die Umsetzung habe ich erfolgreich geschafft. Also ich bin so weit, dass ich sämtliche Infos heraus bekomme. Also Karten, Namen, Bets etc.
Auch habe ich schon die Bewertung meiner Hände realisiert und bin gerade dabei mit einem Bekannten der erfolgreich Echtgeldtische spielt, die Regeln zu programmieren. Das bekomme ich alles hin.
Ich hätte da einige Fragen zu den sogenannten "Red Flags".

Also ich schaffe es nicht, menschliche Mausbewegungen zu imitieren. mein Bot würde also zwar zufällig von nem Punkt starten können und auch zufällig irgendwo auf den Button klicken können, aber die Bewegung dahin ist immer geradlinig. Aus diesem Grund habe ich mich entschieden, den Bot so aussehen zu lassen, als wenn die Tische per Tastatur gesielt werden. Soll heißen, ich erzeuge keinerlei Mausbewegung innerhalb der VM sondern nur außerhalb.

Was ist eure Meinung dazu. Lieber geradlinige Mausbewegungen erzeugen oder garkeine?

Stars zum Beispiel berechnet aus den Mausbewegungen der Spieler ja das Blatt. Womit falle ich wohl weniger auf?

Ich passe meinen Bot zuerst an PokerAcademy an, um Bugs zu entfernen und ihn richtig einzustellen, danach würde ich ihn gern gegen echte Gegner spielen lassen. Gibt es noch einen pokeranbieter der Bots zulässt bzw. diese nicht verboten hat?

Als nächstes würde mich eure Meinung zum Vierfarbigen Blatt interessieren.
Der einfachste Weg für mich, ist natürlich ein Vierfarbiges Blatt, aber ick könnte die Kartenfarbe also ob Piek, Herz etc. auch mit nem zweifarbigen Blatt auslesen, ist halt nur wieder bissl Code zu schreiben, aber das Problem wärs nicht. Macht das nen Unterschied, also ist das ne "Red Flag" oder kann ich das außen vor lassen?

Vielen Dank
MfG


Top
 Profile E-mail  
 
 Post subject: Re: Anfängerfrage
PostPosted: Wed Mar 09, 2011 5:16 pm 
Offline
Level1 member
User avatar

Posts: 47
Favourite Bot: ???
Ich persönlich bin kein freund von OCR. man hat immer ab und zu Fehler beim Auslesen. dazu kommt, dass alles auf Farbeinstellungen und die Auflösung abgestimmt sein muss. Beim hooking läuft die Software problemlos auf verschiedenen Windows Versionen unabhängig von Auflösung oder Farben. Die Programinterna werden so selten angepasst, dass meine hooking Methode seit einem Jahr ohne Probleme läuft.


Top
 Profile  
 
 Post subject: Re: Anfängerfrage
PostPosted: Thu Mar 10, 2011 7:39 am 
Offline
Regular member
User avatar

Posts: 50
Favourite Bot: none
Also das OCR läuft im Moment recht gut muss ich sagen.

Ich arbeite mit Screenshots, welche vorher in Java vergrößert und überarbeitet werden. Am ende kommt ein Bild in schwarz weiß raus, welches dann erst durch die Texterkennng läuft. Ich hab den ganzen programmcode schon fertig und werd das vorerst so lassen, mit dem Hooking werde ich mich aber auch noch befassen.

Wurde dein Bot denn schon mal erkannt? Wie arbeiten die verschiedenen Pokeranbieter zusammen? Muss man sich das wie große Netzwerke vorstellen, wenn der in einem Pokerraum erkannt wird, dann auch in die anderen?

Arbeitest du mit sumulierten Mausbewegungen oder auch ohne?


Top
 Profile E-mail  
 
 Post subject: Re: Anfängerfrage
PostPosted: Sat Mar 12, 2011 11:57 pm 
Offline
PokerAI fellow
User avatar

Posts: 1673
Favourite Bot: none
roy56 wrote:
Also ich schaffe es nicht, menschliche Mausbewegungen zu imitieren. mein Bot würde also zwar zufällig von nem Punkt starten können und auch zufällig irgendwo auf den Button klicken können, aber die Bewegung dahin ist immer geradlinig. Aus diesem Grund habe ich mich entschieden, den Bot so aussehen zu lassen, als wenn die Tische per Tastatur gesielt werden. Soll heißen, ich erzeuge keinerlei Mausbewegung innerhalb der VM sondern nur außerhalb.

Was ist eure Meinung dazu. Lieber geradlinige Mausbewegungen erzeugen oder garkeine?

Lieber garkeine.

roy56 wrote:
Stars zum Beispiel berechnet aus den Mausbewegungen der Spieler ja das Blatt. Womit falle ich wohl weniger auf?

Wie bitte? Wo hast du das denn gehört? Und als Tip: Fang auf keinen Fall auf Stars an zu botten.

roy56 wrote:
Ich passe meinen Bot zuerst an PokerAcademy an, um Bugs zu entfernen und ihn richtig einzustellen, danach würde ich ihn gern gegen echte Gegner spielen lassen. Gibt es noch einen pokeranbieter der Bots zulässt bzw. diese nicht verboten hat?

Nein, gibt es nicht. Allerdings sind die kleineren Seiten nicht ganz so weit mit ihrer Boterkennung und stecken da nicht so viel Energie rein. Dort kann man oft lange genug unerkannt spielen. Spezielle Seiten werde ich nicht nennen.

roy56 wrote:
Als nächstes würde mich eure Meinung zum Vierfarbigen Blatt interessieren.
Der einfachste Weg für mich, ist natürlich ein Vierfarbiges Blatt, aber ick könnte die Kartenfarbe also ob Piek, Herz etc. auch mit nem zweifarbigen Blatt auslesen, ist halt nur wieder bissl Code zu schreiben, aber das Problem wärs nicht. Macht das nen Unterschied, also ist das ne "Red Flag" oder kann ich das außen vor lassen?

Ich glaube nicht jedes Casino bietet 4-farbige Decks an. Aber wenn, sollte das kein Problem sein zu benutzen.

_________________
Cheers.


Top
 Profile  
 
 Post subject: Re: Anfängerfrage
PostPosted: Mon Mar 14, 2011 8:49 am 
Offline
Regular member
User avatar

Posts: 50
Favourite Bot: none
Danke für die ausführliche Antwort.

Also ich bin mitlerweile doch weg von der Texterkennung und bin auf Pixelanalyse umgestiegen. geht schneller und ist zuverlässiger.

Ok, ich werde dann keine Mausbewegung erzeugen.

Quote:
MISCHUNG DER KARTEN ("SHUFFLE")

"Anyone who considers arithmetic methods of producing random digits is, of course, in a state of sin." - John von Neumann, 1951

Wir verstehen, dass die Benutzung eines fairen und nicht-vorhersehbaren Algorithmus für das Mischen der Karten die wichtigste Voraussetzung für faire und korrekte Spiele ist. Um dies sicherzustellen und die unter [2] geschilderten Schwierigkeiten zu lösen, benutzen wir zwei unabhängige Quellen für wirkliche Zufallsdaten:

* Benutzereingaben bestehend aus einer Zusammenfassung von Mausbewegungen und Ereigniszeiten, gesammelt in der Software
* Quantis (3), eine echte hardwareseitige Zufallszahlengenerierung, entwickelt vom schweizer Unternehmen ID Quantique, die eine Quantenzufälligkeit als Entropiequelle nutzt.

Jede dieser Quellen stellt schon für sich genommen genug Entropie bereit, um eine faire und nicht vorhersehbare Mischung der Karten sicherzustellen.


Ich werde mich beim botten auf die kleinen Räume orientieren.

Allerdings hatte ich auch vor das mal auf Stars laufen zu lassen, um su sehen wie lange das dort gut geht. Is ja dann nur nen Fake Account mit ner kleinen Einzahlung über Paysafe.
Einfach um zu sehen, wie lange es dauert bis die mich bannen.
Oder meinst ich sollte das sein lassen? Arbeiten die Räume denn untereinander zusammen um sich vor Bots zu schützen?


Top
 Profile E-mail  
 
 Post subject: Re: Anfängerfrage
PostPosted: Mon Mar 14, 2011 11:28 pm 
Offline
PokerAI fellow
User avatar

Posts: 1673
Favourite Bot: none
Das bleibt dir überlassen. Wen sie dich busten hast du einen Account weniger, den du später benutzen könntest.

_________________
Cheers.


Top
 Profile  
 
 Post subject: Re: Anfängerfrage
PostPosted: Tue Mar 15, 2011 4:57 pm 
Offline
Regular member
User avatar

Posts: 50
Favourite Bot: none
Na Accounts kann man ja so viele erstellen wie man will.

Und wenn man bissl was gemacht hat, verliert mans halt in nem kleinen Heads Up gegen nen echten Account. Nur ob die den dann auch sperren ist fraglich. Im Grunde können die das ja nur sehr schwer raus finden, wenn man unterschiedliche IP Adressen und unterschiedliche Mac Adressen hat. Aber letztlich können die Jungs ja eh machen was sie wollen und man hat kaum ne Chance, wenn das Konto erstmal eingefroren ist. Na mal schaun. Erstmal muss ich die Regeln noch programmieren. Garnich so leicht, wenn mans bisschen komplexer machen möchte.
was der Mensch auf nem Screenshot ganz schnell erkennt und bewertet ist ne Menge Programmcode.


Top
 Profile E-mail  
 
 Post subject: Re: Anfängerfrage
PostPosted: Wed Mar 16, 2011 6:43 am 
Offline
PokerAI fellow
User avatar

Posts: 1673
Favourite Bot: none
roy56 wrote:
Und wenn man bissl was gemacht hat, verliert mans halt in nem kleinen Heads Up gegen nen echten Account.

Das wird so nichts. Wenn du mit dem fake account auffällst wird jede Beziehung zu diesem account unter die Lupe genommen. Und chip dumping wird dabei garantiert auffliegen und schon ist dein echter account auch futsch.

_________________
Cheers.


Top
 Profile  
 
 Post subject: Re: Anfängerfrage
PostPosted: Fri Mar 18, 2011 8:22 am 
Offline
Regular member
User avatar

Posts: 50
Favourite Bot: none
Aha, danke. Wieder was gelernt.

Nochmal kurz ne Frage wie man deiner Meinung nach weniger auffällt.

Also ich erzeuge keine Mausbewegung innerhalb der VM. Was ist nun sinnvoller. Immer auf den gleichen Punkt beim Folden etc- zu klicken, damit es so aussieht, als wenn ich mit Tastaturbefehlen arbeite oder sollte ich den Punkt auf den Buttons zufällig auswählen, dass wäre bei Spielern so, die zwar mit der Maus arbeiten, aber halt außerhalb der VM.
Ich denke Sinnvoller wäre es immer den gleichen Punkt zu benutzen um als Tastaturspieler durchzugehen, wobei das sicher schneller erkannt wird.


Top
 Profile E-mail  
 
 Post subject: Re: Anfängerfrage
PostPosted: Sun Mar 20, 2011 6:00 am 
Offline
PokerAI fellow
User avatar

Posts: 1673
Favourite Bot: none
Wenn du auf einer Seite spielt, die das checkt und denen das auffällt fliegste so oder so raus.
Wenn der Seite es egal ist und das nicht checkt ist es wurscht.

_________________
Cheers.


Top
 Profile  
 
 Post subject: Re: Anfängerfrage
PostPosted: Tue Mar 22, 2011 12:46 pm 
Offline
Regular member
User avatar

Posts: 50
Favourite Bot: none
Und noch mehr Fragen zum erkennen. Is echt blöd, wenn man nich genau weiß was die Anbieter so prüfen bzw. in welche Richtung so die Prüfungen gehen.

Also mein Bot spielt ja nach einer fest eingestellten Strategie. Also vor Flop callt er nur mit bestimmten Händen in Abhängigkeit von den anderen Spielern. Aber im Großen und ganzen sind das immer die gleichen Situationen.
Die Bet höhe wird natürlich von mir gerundet und nicht immer per Hand eingegeben. Also das unterscheidet sich schon, aber die Aktionen ansich nnicht.

Sollte ich nun in diese Standartsituationnen absichtlich Fehler mit einbauen?
Z.B. dass er rein statistisch alle 100 oder 150 Hände, wenn er eigentlich Raisen sollte einfach nur nen Call spielt oder wenn er die Hand Folden sollte einfach mal nen kleinen Call spielt z.B. wenn ich eh im SB sitze oder seht ihr sowas als unsinnig an und ich versau mir damit nur meine Gewinnchancen?

Ich weiß. ich hab viele Fragen. :-)

Ab dieses Wochenende werde ich voraussichtlich meinen Bot zum ersten mal bei nem kleinen Anbieter live Pokern lassen. Mal sehen wie er sich schlägt. Fertig hab ich ihn schon ist halt nur noch die Sache mit den Einstellungen um ihn nicht auffliegen zu lassen.


Top
 Profile E-mail  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 33 posts ]  Go to page 1, 2  Next


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: