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, […]

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 […]

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 […]

Beliebige Programme per C# manipulieren

Programme per C# manipulieren - am Beispiel NotepadsIn folgendem Artikel soll es darum gehen, wie man mittels C# andere Programme ansteuern, anpassen und erweitern kann. Als Beispielszenario wollen wir mittels einer kleinen C#-Applikation das standardmäßig mit Windows ausgelieferte Programm “Notepad” um eine Zusatzfunktion erweitern.
Konkret soll sich die C#-Anwendung in alle geöffneten Notepad Instanzen einklinken, die Oberfläche um einen neuen Button erweitern und Klicks auf diesen Button abfangen. Bei einem Klick auf den Button soll der Text aus dem Notepad-Textfeld an unsere Anwendung geschickt und mittels einem Markdown Parser (Was ist Markdown?) in HTML umgewandelt werden.
Das fertige Endprodukt unseres Artikels soll dann wie in dem nachfolgenden Video aussehen, dass ich für euch erstellt habe.

Im Rahmen des Artikel werden wir das […]

Standard-Browser in C# auslesen

csharp_standard_browserNachfolgend soll es darum gehen, wie man den Pfad zum Standard-Browser unter Windows in C# herausfindet. Dies macht zum Beispiel immer dann Sinn, wenn man eine Datei mittels Process.Start() im Standard-Browser öffnen möchte.
Zwar könnte man davon ausgehen, dass jeder Windowsnutzer auch den Internet Explorer installiert hat und man somit einfach diesen zum Anzeigen von Dateien benutzen sollte,  jedoch erhöht es nicht unbedingt das Vertrauen des Users in die eigene Applikation. So wäre zumindest ich als Benutzer meines Programms davon genervt, wenn dieser immer den Internet Explorer anstelle des Firefox, welchen ich als Standard-Browser festgelegt habe, starten würde.
Nun gibt es zwei Möglichkeiten den Standard-Browser in C# zu öffnen. Beide haben Ihre Vor- und Nachteile.
Variante 1 – Process.Start() mit URL als Startpfad
Die einfachste Variante den Standard-Browser zu starten, ist es einfach mittels der […]