C# Probleme mit selbst programmiertem BlackJack Spiel

IntercepterHD

Cadet 2nd Year
Registriert
Mai 2015
Beiträge
28
Ich brauche mal wieder eure Hilfe!
In den letzten Tagen habe ich für die Schule ein kleines BlackJack Spiel in Visual Studio mit C# programmiert.
Allerdings gibt es ein paar Probleme!
Das Programm lief erst relativ problemfrei, doch während ich immer wieder, einzelne Zeilen geändert / verbessert habe, hat das Programm irgendwann gar nicht mehr richtig funktioniert und ich selber finde den Fehler einfach nicht.

Der Fehler tritt immer dann auf, nachdem man seinen Namen und die Regeln eingestellt hat. Denn wenn man die erste Runde starten will ist die Console nach der Bestätigung einfach leer!

Ich hoffe ihr könnt mir schnell helfen.

Der Quellcode ist im Anhang
 

Anhänge

  • BlackJack-Quellcode.txt
    44,7 KB · Aufrufe: 371
Bei soviel Code-Wiederholungen würde ich an deiner Stelle erst einmal versuchen sich immer wieder Wiederholende Zeilen in eine Funktion zu packen.

Sobald du den Code auf ein Minimum reduziert hast ist es meist viel einfacher Fehler zu erkennen.
 
Wow, der Lehrer ist... nicht gut. Oder du ignorierst ihn.
1. Wie Hades85 schon sagte: wenigstens Funktionen/Methoden benutzen! Es ist unzumutbar das Ding zu lesen und erst recht zu pflegen. Du musst doch selbst merken, dass du bei einer Änderung von z.B. der "Verloren" Ausgabe genau dasselbe an zig Stellen ändern musst?
2. Vereinfachen!!! Du machst z.B. ständig dasselbe für viele verschiedene Zustände. Wie wäre es größer/kleiner oder meinetwegen auch switch zu verwenden anstatt if (a = 1) b + c; if (a = 2) b + c; if (a = 3) b + c;
?
3. Wenn du ein Problem hast: Visual Studio hat einen Klasse Debugger. Setze einen breakpoint (links neben die Zeile klicken, bis eine rote Markierung erscheint), starte das Programm im Debugmodus aus Visual Studio heraus und schaue mit F10 (nächster Schritt) was passiert. Variablenwerte kannst du über mouseover oder unten das "Überwachen" Fenster anzeigen lassen.
 
Vielleicht solltest du dich noch mal oder überhaupt mal in "Objektorientierter Programmierung" einlesen, um den ganzen redundanten Code zu reduzieren und das Ganze auch angenehmer lesen und warten zu können.
 
Ich gebe euch natürlich recht, der Code ist wirklich sehr unübersichtlich, aber so viel haben wir damit noch nicht gearbeitet.
Könnt ihr mir vielleicht trotzdem sagen wo der Fehler liegt?
Dann kann ich den erstmal korrigieren, das Programm fertig machen und anschließend alles etwas übersichtlicher machen.
 
Wir sagen dir wo der Fehler liegt, wenn du das alles aufgeräumt hast. So hat keiner Lust sich das anzuschauen.

Statt 20x

Code:
Console.WriteLine("________________________________________");
Console.WriteLine("");
Console.WriteLine("         Willkommen " + spielername + "!");
Console.WriteLine("________________________________________");
Console.WriteLine("");
Console.WriteLine("");

machst du

Code:
private static void Wilkommen()
{
   Console.WriteLine("________________________________________");
   Console.WriteLine("");
   Console.WriteLine("         Willkommen " + spielername + "!");
   Console.WriteLine("________________________________________");
   Console.WriteLine("");
   Console.WriteLine("");
}

und dann jeweils nur Wilkommen() aufrufen.

Und das machst du bei allen Dingen so.


Für deine Abfragen könntest du das kleine Helferchen nutzen, das ich mal gemacht habe: https://gist.github.com/bagbag/e28836b25f40d0a959bf9fcb2782b318
 
Zuletzt bearbeitet:
Nochmal: Such den Fehler selber, das gehört zum Programmieren dazu und ist dank debug-Modus auch nicht schwer.
 
Enurian schrieb:
Wow, der Lehrer ist... nicht gut. Oder du ignorierst ihn.

Ich weiß nicht, wie lange deine Schulzeit jetzt her ist, oder du vielleicht außerhalb Deutschlands zur Schule gegangen bist, aber ich kann dir aus meiner Erfahrung nur sagen, dass absolut beides zutrifft.
 
Zurück
Oben