Konsolenanwendung C# Verbesserungsvorschläge?
Guten Tag! Habe soeben mein erstes richtiges Projekt in C# gemacht. Es ist ein einfaches Schere Stein Papier Spiel als Konsolenanwendung. Habt ihr Ideen, wie ich den "Code" optimieren könnte bzw. weitere Ideen, die Applikation zu erweitern. Ich würde mich sehr freuen, sollte sich jemand die Mühe machen, mir behilflich zu sein.
Poste den Code bitte als Text in Code-Tags oder z.B. über Tools wie Pastebin.
https://pastebin.com/DJx8g0AA Funktioniert dieser Link zu Pastebin?
3 Antworten
Hier:
SchereSteinPapier2 - Pastebin.com
Mit ein paar Kommentaren dabei
Ach und achte auf Code-Guidelines, Microsoft bietet da selber Artikel für an und der Großteil der Community hält sich daran.
Schau dir mal switch case an. Das würde meiner Meinung nach mehr sinn machen statt if Anfragen. Aber da du if benutzt hast, schau dir auch mal else if und else an. Ich würde dafür switch case benutzen, dennoch schau dir auch else if und else an.
Um mich an Ich würde mich an den Vorschlag anschließen und auch noch
https://docs.microsoft.com/de-de/dotnet/csharp/language-reference/builtin-types/enum
Enumerationen einführen.
enum Gesures
{
Stein,
Scheere,
Papier
}
switch (myGesture)
{
case Gesures.Stein:
// mach was
break;
}
Das mit if else fällt mir gerade auch auf mit switch case habe ich bisher noch keine Erfahrung, werde mich jedoch demnächst einlesen danke für deine Antwort
Danke für deine Antwort! Werde mich auf alle Fälle da mal reinlesen
- Wenn acceptment == "JA" ist, weißt du ja bereits, dass acceptment weder "NEIN" noch irgendetwas anderes sein kann. Trotzdem werden diese Dinge später abgefragt, was nicht optimal ist. Dies kannst du beheben, indem du aus den anderen beiden ifs jeweils else ifs machst (das letzte else if könntest du sogar gegen ein else ersetzen). Da du allerdings jeweils auf acceptment prüfst, würde sich hier ein switch besser eignen.
- Du könntest drüber nachdenken, den User auch Zahlen eingeben zu lassen statt der Strings "Stein", "Schere" und "Papier". Dann könntest du mithilfe von Arithmetik ermitteln, wer gewonnen hat. Dies könnte z.B. in der Konsole so aussehen:
Bitte geben Sie die Nummer Ihrer Waffe ein:
1 -> Schere
2 -> Stein
3 -> Papier
- Selbst wenn du bei den strings bleibst, solltest du auch beim Abfragen des decisionCheck dringend auf ein switch bzw wenigstens else if wechseln, da sonst sehr viele string-Vergleiche stattfinden, was relativ langsam ist.
- Es ergibt wenig Sinn, "while (gameFinish == false)" auszuschreiben, da gameFinish selbst bereits ein Wahrheitswert ist, den man abfragen kann. Schreib stattdessen "while(!gameFinish)".
Wow! Wirklich vielen Dank für diesen sehr ausführlichen Kommentar werde ihn mir in Ruhe anschauen und darauf meinen Code optimieren