How to: Poker Hand Evaluator in C# implementieren

Pokerhand Evaluator CsharpDas Thema Poker habe ich nun schon in dem ein oder anderen C#-Artikel als Aufhänger genommen, um tiefer in verschiedene Programmierthematiken einzusteigen. So gab es bereits einen Artikel zur Bildanalyse, einen zur Berechnung der Gewinnwahrscheinlichkeit und einen, in dem die beiden eben genannten kombiniert wurden.
Alle drei Artikel haben eines gemeinsam. Sie basieren auf einer Bibliothek, die ermitteln kann, welche Pokerhand in einem direkt Vergleich der Gewinner ist. Solch eine Bibliothek nennt man auch “Hand evaluator”, da sie zwei Pokerhände evaluieren kann. Und genau hier wollen wir heute ansetzen.
In diesem Artikel wollen wir Schritt für Schritt eine eigene C#-Bibliothek zum Vergleich zweier Pokerhände erstellen. Hierzu arbeiten wir uns nach und nach zum Ziel. Beginnen werden wir mit den Datenstrukturen für Spielkarten und Pokerhände. […]

Online-Poker automatisieren mit C#.NET

KartenDetektor mit GewinnwahrscheinlichkeitKommen wir heute zum dritten Teil der C#-Casino-Reihe. Wer gerade erst in die Serie einsteigt, sollte sich zuvor die ersten beiden Teile durchlesen. In Teil 1 ging es um die Berechnung der Gewinnwahrscheinlichkeit einer Pokerhand in C# und in Teil 2 ging es um das Erkennen von Spielkarten und deren Werten mittels maschinellem Sehen mit Hilfe der AForge-Bibliothek. Wir haben bisher also auf spielerische Art und Weise sowohl das Feld der Statistik, die Verwendung von externen Bibliotheken als auch die Grundlagen der Bildverarbeitung mittels C# bearbeitet.
Im heutigen, dritten Teil, soll es um die Verknüpfung der Ergebnisse der ersten beiden Artikel gehen. Wir wollen also für die analysierten Karten aus Teil 2 direkt die Gewinnwahrscheinlichkeit (wie in Teil 1) berechnen.
Vorbereitungen
Bevor es losgeht, solltet ihr […]

3D-Graphen zeichnen in C# mit ILNumerics

ILNumeric - different 3D plotsIn folgendem Artikel soll es darum gehen, wie sich mit Hilfe der ILNumerics-Bibliotheken in C# aufwendige Graphen zeichenen lassen – auf Wunsch sogar interaktiv.
Wie bei fast allen Artikel dieser Art hier im Blog, stelle ich zuerst kurz die Library vor, gehe dann auf die nötigen Grundlagen für das spätere Coding ein und zeige euch abschließend Schritt für Schritt den weg dorthin. Los geht’s!
Was ist ILNumerics?
ILNumerics ist eine .NET-Klassenbibliothek die aus mehreren Komponenten besteht. Die beiden Kernkomponenten sind hierbei die Computing- und die Visualization-Engine. ILNumerics erweitert das .NET-Framework unter anderem um komplexe Zahlen, Skalar-Rechnung, Vektoren, Matrizen und Matrizenrechnung sowie beliebig Dimensionale Datenstrukturen.
Eine weitere Stärke ILNumerics’ ist die Visualization-Engine, die es ermöglicht 2- und 3-dimensionale Graphen zu plotten, worauf auch der […]

Spielkarten mit C# und AForge.NET analysieren

KartenDetektor - Spielkarten in C# erkennenWie im letzten Artikel schon angemerkt, soll es wieder ein wenig in Richtung der Wurzeln dieses Blogs gehen. Konkret heißt das mehr Code-Beispiele und Tutorials.
Dieser Artikel ist ein weiterer Schritt in diese Richtung. Nachdem wir im letzten Artikel ein C#-Tool geschrieben haben, mit dem man die Gewinnwahrscheinlichkeit einer Pokerhand ausrechnen kann, befassen wir uns in diesem Artikel mit den Themen Bildverarbeitung und maschinellem Sehen in C#.
Das Tool, welches wir heute entwickeln, analysiert Screenshots eines Pokerspiels und kann die Karten inklusive Kartenwert und Kartenfarbe automatisiert auslesen. Hierzu nutzen wir die ziemlich mächtige OpenSource-Bibliothek “AForge.NET”, welche etliche Klassen und Methoden für die Bereiche maschinelles Sehen und Künstliche Intelligenz bietet.
Vor dem Coding
Bevor es mit der Programmierung losgeht, müssen noch ein, zwei […]

Berechnung der Gewinnwahrscheinlichkeit beim Poker in C#

PokerChancenRechner - BerechnungHeute geht es wieder einmal um die Erstellung eines kleinen C#-Tools. Somit begeben wir uns thematisch wieder einmal in Richtung “Back to the roots” der Code-Bude.
Bei dem Tool handelt es sich um eine kleine Applikation, die Siegchancen einer Poker-Hand ermittelt. Das Tool erwartet als Eingabe die zwei Karten, die ein Spieler auf der Hand hat, sowie die drei initial ausgelegten Karten auf dem Deck (der sogenannte “Flop”) und berechnet daraus die Gewinnchancen für den Spieler.
Bevor nun die Ersten “Aber Poker ist doch ein Glücksspiel und Glücksspiele kann man nicht berechnen” schreien, wollen wir nachfolgend noch einmal kurz die Frage nach dem “Glücksspiel” stellen.
Ist Poker Glücks- oder Geschicklichkeitsspiel?
Zwar wird Poker in Deutschland rechtlich gesehen weit überwiegend zu den Glücksspielen gezählt, jedoch ist […]