Tag Archives: C#

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: XML to Linq – mehrere Einträge in einer Datei entfernen [C#]

Hallo, vor kurzem durfte ich mehrere Einträge in einer XML-Datei mittels Linq in C# entfernen.

Diese Funktion macht ihre Aufgabe ganz gut:

Zum Beispiel: Wir haben ein XML-File, welches die Node Users hat, darunter gibt es die Sub-Node User, darin gibt es verschiedene Nodes, doch interessiert mich lediglich die Sub-Sub-Node Mode, wenn der Wert der Node inactive ist, so soll die Node User gelöscht werden.

Hier die Beispiel XML-Datei:

Die XML-Datei nach der Ausführung des Skriptes:

Durch diese Anweisungen werden alle Nodes mit dem Mode inactive entfernt.

 

In dem Sinne: frohes entfernen.

Script: .ToList() zur List.Add() hinzufügen [C#]

Hallo,

ich kam letztens in die Bredouille zur einer String-Liste (List<string>) mehrere Objekt die ich zur einer Liste getypcastet habe (.ToList()) hinzuzufügen.

Das folgende Beispiel war meine Ausgangssituation, die nicht funktioniert hat.

Als Ausgabe erhält man nur alle Dateien des Ordner C:\Test\a.

Das liegt daran, da die Liste lsFiles jedesmal überschrieben wird und somit nur der Letze Eintrag der durchlaufenen Urspungsliste lsFolders stehen bleibt.

Um dies zu verhindern muss man mit dem List-Attribut (.Add()) arbeiten, um genauer zu sein, mit dem List-Attribut (.AddRange()), denn (.Add()) kann nur für einzelne Objekte verwendet werden.

Der Funktionierende Code sieht dann folglich so aus:

In dem Sinne: Frohes Scripten.

1 2