WordGuess – Wordle-Klon als Konsolen-App
Ich denke, dass ihr schon etwas von dem Spiel Wordle gehört hat. Dieses hat im Herbst vergangenen Jahres für Aufsehen gesorgt, ähnlich wie vor fast 10 Jahren Flappy Bird. Bei dem Spiel muss man ein fünfstelliges Wort innerhalb von sechs Versuchen erraten. Dabei bekommt man nur die Information, ob ein Buchstabe zwar im Wort vorkommt, aber nicht an der richtigen Stelle platziert wurde oder ob der Buchstabe bereits an der richtigen Stelle im Wort eingefügt wurde. Das Spielprinzip ist daher recht einfach und daher habe ich mir gedacht, dass wir das Spiel doch einmal als Konsolen-App mit .NET6 bauen werden.
MVVM Code mit Source Generatoren vereinfachen
Wer meinen Blog verfolgt und sich meine Beispiel-Apps angeschaut hat, wird immer mal wieder mit MVVM konfrontiert. Dabei handelt es sich um das Design-Pattern Model-View-ViewModel. Man entkoppelt somit die UI von der eigenen Businesslogik und verbindet UI und Models mit der Hilfe von ViewModels. Diese stellen dann zum Beispiel Properties und Commands bereit, um Dinge anzuzeigen bzw. ausführen zu können. In diesem Beitrag möchte ich euch nun das CommunityToolkit.MVVM Package vorstellen, welche das Erstellen von ViewModels mit der Hilfe von Source Generatoren stark vereinfacht.
Neuigkeiten in Visual Studio 2022, .NET6 und C# 10
Anfang November war es soweit und Microsoft hat die nächste Version der beliebten Entwicklungsumgebung Visual Studio veröffentlicht, welche auf den Namen Visual Studio 2022 hört. Nur einen Tag später wurde dann im Rahmen der .NET Conf auch noch .NET6 und C# 10 veröffentlicht. In diesem Beitrag möchte ich jetzt auf einige Neuerungen sowohl in Visual Studio 2022, als auch in .NET6 und C# 10 vorstellen, so dass ihr einen Eindruck habt, worauf ihr euch freuen könnt. Diese Liste erhebt natürlich keinen Anspruch auf Vollständigkeit, sondern zeigt nur einige Highlights auf. Außerdem unterscheiden sich die Features je nach verwendeter Projektvorlage ebenfalls.
GitHub-Account anlegen und erste Schritte mit Git
Gerade für Softwareentwickler ist es wichtig, sich um eine optimale Sicherung des Codes zu kümmern. Hierfür eigenen sich Versionsverwaltungen, wie zum Beispiel Git. In diesem Beitrag möchte ich euch nun zeigen, wie ihr in wenigen Schritten einen kostenfreien GitHub-Account anlegen könnt und außerdem noch Git auf eurem Rechner installiert, konfiguriert und euren Push in ein Repository ausführt.
Material Icons für alle Lebenslagen
Ich habe bereits vor einiger Zeit das Tool Metro Studio von Syncfusion hier im Blog vorgestellt. Mit dem Tool erhaltet ihr eine Sammlung von Icons aus verschiedenen Bereichen, welche ihr bequem in PNG-Dateien oder als XAML-Pfade exportieren könnt. Darüber hinaus habe ich auch schon das Material-Package für Xamarin.Forms vorgestellt, so dass ihr das Material Design in eure Xamarin.Forms App integrieren könnt. In diesem Beitrag möchte ich nun auf die Material Icons von Google hinweisen.
Rekursive Funktionen in C#, Python und Racket
Wenn ich an mein Informatik-Studium zurück denke, dann kommen mir auch rekursive Funktionen in den Sinn. Bereits in den ersten Vorlesungen und Übungen mussten wir verschiedene Funktionen als rekursive Funktionen in der Sprache Racket umsetzen. In diesem Beitrag möchte ich euch nun einige „Standard“-Funktionen zeigen, welche man sicherlich in jedem Informatik-Studium schreiben muss. Dabei werde ich neben C# diese auch in Python schreibe. Zunächst wollen wir aber die Frage beantworten, was eigentlich eine rekursive Funktion ist. Kurz gesagt, ist eine Funktion rekursiv, wenn sie sich selbst aufruft. Wir finden also im Rumpf der Funktion einen Aufruf derselben Funktion.
Man benutzt eine rekursive Funktion zum Beispiele gerne, um mathematische Funktionen abzubilden. So hat sicherlich jeder schon einmal von der Fakultät gehört. Diese Funktion multipliziert alle natürlichen Zahlen (ohne Null), welche kleiner oder gleich der übergebenen Zahl ist. So ist 5! = 5 * 4 * 3 * 2 * 1 oder aber 5! = 5 * 4! und so sehen wir hier bereits eine Rekursion.
Higher/Lower Game in C#
Ich habe in einem der letzten Beiträge bereits gezeigt, wie man das klassische Higher/Lower Game in Python umsetzen kann. Dabei denkt sich der Computer eine Zahl zwischen 1 und 100 und der Nutzer muss diese Zahl erraten. Der Computer gibt nur Hinweise durch die Angabe, ob die Zahl größer oder kleiner ist. In diesem Beitrag möchte ich euch nun zeigen, wie ihr das Spiel als C# Konsolen-Applikationen umsetzen könnt, so dass ihr eine Möglichkeit habt, die beiden Sprachen Python und C# zu vergleichen.
Rock, Paper, Scissors in Python
Ich habe in einem der letzten Beiträge bereits gezeigt, wie man in wenigen Schritten Python auf einem Windows PC installieren und den Code-Editor Visual Studio Code so einstellen kann, dass einem dieser während der Python-Entwicklung unterstützt. Wir haben neben dem ersten kleine Hello World Skript auch schon das Higher/Lower Game in Python geschrieben. In diesem Beitrag möchte ich euch nun zeigen, wir ihr das klassische Rock, Paper, Scissors Game in Python umsetzen könnt. Dabei hat der Nutzer die Möglichkeit seine Spielfigur (Schere, Stein oder Papier) zu wählen und auch der Computer wählt eine zufällige Figur und im Anschluss wird ermittelt, wer die Runde gewonnen hat.
Extension Methods: Object
Mit der Hilfe von Extension Methods können wir einem vorhandenen Typen zusätzliche Methoden hinzufügen, ohne einen neuen abgeleiteten Typ zu erstellen und ohne den ursprünglichen Typ bearbeiten zu müssen. Bei Extension Methods handelt es sich um statische Methoden. Im Laufe der Zeit ist eine beachtliche Sammlung an Extension Methods entstanden, welche in den verschiedensten Projekten zum Einsatz kamen und auch immer noch kommen. Ich möchte nun in einer kleinen Serie ein paar Methoden vorstellen, welche vielleicht für den einen oder anderen auch von Interesse sein könnten. Den Anfang machen Extension Methods zum Typ Object.
Higher/Lower Game in Python
Ich habe in einem der letzten Beiträge bereits gezeigt, wie man in wenigen Schritten Python auf einem Windows PC installieren und den Code-Editor Visual Studio Code so einstellen kann, dass einem dieser während der Python-Entwicklung unterstützt. Wir haben auch schon ein ersten kleines Hello World Skript geschrieben. In diesem Beitrag möchte ich euch nun zeigen, wir ihr das klassische Higher/Lower Game in Python umsetzen könnt. Dabei denkt sich der Computer eine Zahl zwischen 1 und 100 und der Nutzer muss diese Zahl erraten. Dabei gibt der Computer nur Hinweise durch die Angabe, ob die Zahl größer oder kleiner ist.
Cognitive Services: Alter einer Person ermitteln
Unter dem Begriff Cognitive Services stellt Microsoft verschiedene Dienste zur Verfügung, welche es einem ermöglichen ohne großen Aufwand Algorithmen der künstlichen Intelligenz in seinen eigenen Apps zu verwenden. Microsoft hat bereits vor einiger Zeit die Webseite how-old.net veröffentlicht, wo man Fotos hochladen kann und auf diesen Fotos zunächst Gesichter erkannt werden und dann auch noch das Alter der jeweiligen Person ermittelt wird. Ich möchte nun in diesem Beitrag zeigen, wie wir mit der Hilfe der Cognitive Services eine Xamarin.Forms Apps erstellen können, welche ebenfalls das Alter einer Person auf einem Foto ermitteln kann.
Extension Methods: Collections
Mit der Hilfe von Extension Methods können wir einem vorhandenen Typen zusätzliche Methoden hinzufügen, ohne einen neuen abgeleiteten Typ zu erstellen und ohne den ursprünglichen Typ bearbeiten zu müssen. Bei Extension Methods handelt es sich um statische Methoden. Im Laufe der Zeit ist eine beachtliche Sammlung an Extension Methods entstanden, welche in den verschiedensten Projekten zum Einsatz kamen und auch immer noch kommen. Ich möchte nun in einer kleinen Serie ein paar Methoden vorstellen, welche vielleicht für den einen oder anderen auch von Interesse sein könnten. Weiter geht es mit Extension Methods zum Typ Collection.