Skillrechner für Gothic 2

Robocopy

Cadet 4th Year
Registriert
Dez. 2021
Beiträge
95
Projekt
Ich komme aus der Java-Welt und habe, um ein wenig C# und Windows-Forms zu üben ein kleines Projekt umgesetzt.
Es handelt sich um einen Skillrechner für das Spiel "Gothic II Die Nacht des Raben".

Erläuterung
In diesem Spiel kann man Stufen aufsteigen und so gewonnene Lernpunkte in verschiedene Fähigkeiten und Talente investieren. Und mein Programm erlaubt es einem, Test-Skillungen anzulegen.

Fragen
Ich wollte euch fragen wie ihr das Projekt hinsichtlich der Usability und vorallem hinsichtlich der Qualität des Quelltextes bewerten würdet. Ist der Code gut lesbar und aus eurer Sicht einigermaßen effizient? Habe ich die Sprachmittel, die C# zu eigen sind, optimal genutzt? Was hätte man besser machen können?

Links
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Wolfpac und StefanArbe
Source bitte via GitHub.
 
  • Gefällt mir
Reaktionen: madmax2010
Der code ist schon pasabel. Du arbeitest viel mit Parametern als string, das hat den Nachteil, daß der Compiler dich nicht auf Schreibfehler hinweisen kann. Wenn du magst schau da noch mal drauf.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Robocopy
Ich hab gesehen, du hast dir in der Impfdebatte den kritischen Blick nicht ausreden lassen, ich habe deshalb nochmal genauer draufgeschaut.

Um die strings abzulösen, würdest du die "Attribute,Abilities, Skills" eines "Players" als property der Player Klasse abbilden. Attribut & property suggerieren ja bereits eine überlappende Bedeutung.
Du kannst auch properties für deine strings verwenden, indem du z.b. schreibst
Code:
var p = new Player();
var text = "bete für " + nameof(p.Stärke) + "und erhalte 10 "  + nameof(p.Stärke);

Klasse "Save" würde ich eher als XML serilisieren, weil das wartungsfreundlicher ist.
Global scheint eher eine Instanz von Save halten zu sollen. Wobei ein Verb wie save unpassend als Bezeichner für einen DatenContainer ist.
String ist die .Net Klasse, string ist die c# Klasse. Gleiches gilt für Boolean & bool. Du solltest in c# c#-isch schreiben.
Streams mit using benutzen

UI
Die Anbindung an die Daten tut, ist aber nicht effizient. Dafür bietet sich Binding an, um doppelte Funktionalität für Lesen und Schreiben zu vermeiden.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Robocopy
Zurück
Oben