Analyse eines Javascript Poker Hand Evaluators

Poker in JS, Bits und BytesNachdem wir uns dem Thema Poker schon in einigen C#-Tutorials (siehe 1, 2, 3, 4) angenommen haben, wollen wir heute den Blick in Richtung Javascript lenken. Und wenn ich sage Javascript, dann meine ich das auch so. Bibliotheken wie jQuery (die dieser Tage viel zu oft fälschlicherweise mit Javascript gleichgesetzt werden) lassen wir heute aus dem Spiel. Doch was genau wollen wir heute eigentlich erstellen?
Im heutigen Artikel wollen wir noch einmal das Thema “Hand Evaluator” beackern. Also jenes Thema, welches wir an dieser Stelle schon in C# umgesetzt haben. Für alle, die den letzten Artikel nicht gelesen haben oder mit C# nichts anfangen können, noch einmal schnell die Zusammenfassung, was ein Poker Hand Evaluator ist und wozu er genutzt wird.
Ein Evaluator ist ein […]

Best Practice: 1 und 0 nach true und false konvertieren in Javascript

1 und 0 zu true und false in JavascriptHeute mal nur einen ganz kurzen Beitrag. Es gibt sicherlich viele Wege 0 und 1 in Javascript nach true und false umzuwandeln.
Folgender Weg, den ich heute gesehen hab, dürfte aber wohl der kürzeste und auch eleganteste sein. Zudem klappt er nicht nur für Integer-Werte, sondern auch für die String-Repräsentationen von 0 und 1.
Sowas verbuche ich hier immer unter “Programmierperlen”…
0 und 1 nach true und false
Um die Integer 0 und 1 nach Boolean zu konvertieren, genügt es den Not-Operator doppelt einzusetzen.

var thisIsFalse = !!0; //false
var thisIsTrue = !!1; //true

Warum das funktioniert? Nehmen wir folgendes Beispiel. 1 ist ein valider Wert und somit true. Wenn wir nun !1 schreiben, dann negieren wir das true und […]

Bilder verpixeln in Javascript

Close Pixelate TutorialHeute gibt es mal wieder ein bisschen Javascript-Code. Es soll darum gehen, wie man Bilder mittels Javascript verpixeln kann. Die hat sowohl vor als auch Nachteile, welche ich nachfolgend einmal kurz aufzählen möchte.
Vorteile:

Das Verpixeln kann dynamisch geschehen (Händischer Aufwand im Grafikprogramm fällt weg. Grafiken müssen vorher nicht bekannt sein.)
Die benötigte Rechenleistung wird auf den Client ausgelagert. Im Gegenteil zu einer serverseitigen Lösung (z.B. mittels PHP/Imagick), wird die Rechenlast verteilt, sodass bei hohen Besucherzahlen der Webserver nicht mit Grafikberechnungen ausgelastet wird

Nachteile:

Die Verpixelung sollte eher als grafischer Effekt bzw. zur Gestaltung genutzt werden, da die Daten ja erst einmal unverpixelt zum Client geschickt werden. Soll also wirklich der Bildinhalt unkenntlich gemacht werden, muss die Verpixelung weiterhin vor der Auslieferung an den Client geschehen

Wie funktioniert das Verpixeln?
Um Bilder in Javascript zu verpixeln machen wir uns eine Bibliothek namens “Close […]

Javascript escape() in C# – ein C# äquivalent zur escape()-Funktion

csharp_vs_javascriptDas .Net-Framework bietet eine große Anzahl an Möglichkeiten, um HTML-Code und Urls zu encodieren. Da wären zum Beispiel Uri.EscapeDataString(), Uri.EscapeUriString(), System.Web.HttpUtility.UrlEncode(), System.Web.HttpUtility.UrlPathEncode(), System.Web.HttpUtility.HtmlEncode() oder System.Web.HttpUtility.HtmlAttributeEncode().
Wenn man jedoch eine gleichwertige Funktion zu Javascript‘s escape() sucht, so wird man von all diesen Funktionen enttäuscht. Keine dieser standardmäßig vom .Net-Framework mitgelieferten Funktionen ist äquivalent zur Javascript escape()-Funktion.
Zur Verdeutlichung habe ich mal folgendes Beispiel gemacht:

// Original Ausgangsstring
// Raffi’s ärgerlicher C# Teststring/Testcode.

// JS Original (erzeugt durch escape() )
// Raffi%27s%20%E4rgerlicher%20C%23%20Teststring/Testcode.

// Uri.EscapeDataString():
// Raffi’s%20%C3%A4rgerlicher%20C%23%20Teststring%2FTestcode.

// Uri.EscapeUriString():
// Raffi’s%20%C3%A4rgerlicher%20C#%20Teststring/Testcode.

// System.Web.HttpUtility.UrlEncode():
// Raffi%27s+%c3%a4rgerlicher+C%23+Teststring%2fTestcode.

// System.Web.HttpUtility.UrlPathEncode():
// Raffi’s%20%c3%a4rgerlicher%20C#%20Teststring/Testcode.

// System.Web.HttpUtility.HtmlEncode():
// Raffi's ärgerlicher C# Teststring/Testcode.

// System.Web.HttpUtility.HtmlAttributeEncode():
// Raffi's ärgerlicher C# Teststring/Testcode.

Doch ich würde nicht darüber bloggen, wenn ich nicht auch eine Lösung parat hätte. Und diese ist gar nicht mal so kompliziert.
Schritt 1:
Fügt eurem Projekt einen Verweis auf Microsoft.JScript hinzu.
microsoft jscript verweis hinzufügen

JavaScript Progressbar mit HTML5 Canvas

JavaScript Progressbar
Da ich für ein zukünftiges Webprojekt eine Progressbar brauchte, wenn möglich auf JavaScript basierend, und ich keine Komponente finden konnte, die meinen Vorstellungen entspricht, habe ich mich entschieden, meine eigene Progressbar zu schreiben.
Umgesetzt wurde das Projekt in Javascript unter Zuhilfenahme des HTML5 Canvas Elements. Dadurch kommt die Progressbar vollständig ohne irgendwelche Bilddateien aus, wie es zumeist bei anderen JS/CSS Lösungen der Fall ist. Die Progressbar kann momentan einen Status von 1 bis 100 Prozent anzeigen. Fehleingaben werden abgefangen und es wird, auch optisch, eine Errormeldung angezeigt.
Da ich meine Entwicklungen gerne teile und sicherlich nicht der Oberprofi in JavaScript bin, stelle ich euch die Progressbar natürlich zur Verfügung. Für Kritik, Lob und Verbesserungsvorschläge bin ich wie immer jederzeit offen.
Eine Demo der Progressbar könnt ihr euch hier anschauen. […]