Category Archives: HowTo

Mastermind-Clone: Game-Logic – Compare Rows [C#]

Hallo seit einer kleinen Weile arbeite ich in meiner Freizeit an einem Klon des Brettspiel-Klassikers: Mastermind.

Kurz zusammengefasst geht es darum, dass jemand (der Gegenspieler) eine Farbkombination mit Stecknadeln vorgibt, die der Spieler nicht sieht aber erraten muss. Um die Kombination erraten zu können, steckt er auf einem Feld eine Kombination mit Nadeln in eine Reihe.

Wenn die Position der farbigen Nadel die man geraten hat nun mit der Position des Gegners übereinstimmt, erhält man neben der Reihe eine Nadel (meist schwarz).
Wenn die geraten Position jedoch nicht stimmt, aber die Farbe in der Kombination des Gegners enthalten ist, so erhält man eine graue Nadel. Wenn beides nicht zutrifft, so erhält man eine weiße Nadel.

In meiner Variante habe ich die Farben getauscht.
Position-Match: Grün
Color-Match: Gelb
No-Match: Weiß

Und genau um die Prüfung der geratenen Reihe geht es nun.

Den obigen Code habe ich nochmal vereinfacht und lässt sich nun leichter lesen:

 

So erhalten wir nun die Anzahl der Positionstreffer und der Farbtreffer und können diese dem Spieler anzeigen, damit er anhand der gewonnen Informationen seinen nächsten Zug planen kann.

Das Spiel wird übrigens in Unity programmiert, falls ihr euch wundert was es mit GetComponentsInChildren<>() auf sich hat 🙂

In dem Sinne: Viel Spaß beim raten.

Snippet: Ersten Buchstaben großschreiben [C#]

Hallo, vor kurzem wollte ich ein kleines Getter-Setter-Interface erstellen, um möglichst komfortabel Get und Set-Blöcke für eine C#-Klasse zu erstellen.

Dazu wollte ich einen Text-String einer Variable zuweisen welcher kleingeschrieben wird und den selben Text-String einer anderen Variable zuweisen bei der der erste Buchstabe großgeschrieben wird.

Nach etwas probieren, kam ich auf folgende Funktion für den Text-String aus der Textbox:

Ja man hätte auch den String zu einer Char-Array konvertieren können um dann das erste Element manipulieren. Aber die obige Lösung empfinde ich als effektiver und schöner.

Habt ihr noch weitere Vorschläge oder Ideen?

In dem Sinne: Frohes manipulieren.

 

Script: Shortcuts analysieren [PowerShell]

Hallo, vor kurzem habe ich ein Bild entdeckt, welches einen Screenshot zeigte mit diversen Shortcuts zu Google-Chrome, darunter Stand nur einer sei der echte Google Chrome der sei der Internet Explorer. Die Aufgabe bestand darin, den richtigen Shortcut zu starten.

Da dachte ich mir, dass geht doch ganz fix mit der PowerShell – Spoiler-Alarm: Ging es auch!

Anbei das dazu verwendete Script:

Zu erst holen wir uns alle LNK Dateien die auf dem Desktop liegen, der Parameter -File wird un-relevant, da wir per dot sourcing sowie so nach Shortcuts suchen. Danach wird von jeder Datei der Targetpath geprüft, enthält dieser die Zeichenkette Chrome, dann wird Google Chrome gestartet.

 

So einfach kann es mit der PowerShell gehen. Kennt ihr eine effizientere Vorgehensweise, gerne auch mit PowerShell? 😉

 

In dem Sinne, Frohes Raten.

Script: Hyper-V VM-Launcher [Powershell]

Hallo,

vor kurzem wollte ich nur meine VM starten und nicht extra den Hyper-V Manager starten, um dort die VM zu starten und anschließend mich mit der Console (vmconnect.exe) zu verbinden.

Ich finde das sind zu viele Klicks für eine im Grunde simple Aufgabe.

Über die Powershell (ein Hoch auf die Kraftmuschel) kann man via Start-VM direkt die Virtuelle Maschine starten. Im Anschluss können wir die VM via vmconnect aufrufen. Wird das Anzeigefenster geschlossen, dann können wir mit Stop-VM die Virtuelle Maschine beenden.

Ein einfaches Script sieht so aus (Meine VM heißt LinuxBox und wird lokal ausgeführt):

Wenn man dieses Powershell-Script nun ausführt, funktioniert das zwar ganz gut, aber leider bleibt im Hintergrund das Powershell-Fenster während der gesamten Verbindung zur VM bestehen. Wenn wir uns ein Shortcut mit bestimmten Parametern anlegen, können wir das Powershell-Fenster via -WindowStyle Hidden verstecken.
So würde dies nun aussehen (Mein Powershell-Script liegt auf D:\Coding\Powershell\):

Ein Dank geht an Jeff Wouters (Sein Blog-Beitrag zeigte mir, wie ich das Script versteckt ausführen kann).

In dem Sinne: Happy Launching.

1 2 3 9