#1 25. Dezember 2012 Zuletzt bearbeitet: 25. Dezember 2012 Konsolen Hangman Nen einfaches Kommentiertes Hangman zum lernen Code: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace hangman { class Hangman { int Leben = 15; string Wort = ""; StringBuilder Loesung = new StringBuilder(); public void getWord() //Wort eingeben lassen { Console.WriteLine("Bitte Wort eingeben"); Console.Write(">"); Wort = Console.ReadLine().ToLower(); // .ToLower() damit der User nicht gróß und kleinschreibung beachten muss Loesung.EnsureCapacity(Wort.Length); foreach (char c in Wort) Loesung.Append("X"); // Den StringBuilder mit 'X' füllen. Damit wir später an der richtigen stelle ersetzen können Console.Clear(); getInput(); } private void getInput() { Console.WriteLine("Leben: {0}, Lösung:{1}", Leben, Loesung); Console.WriteLine("Bitte Buchstaben eingeben"); Console.Write(">"); char Bstabe = '0'; try { char.TryParse(Console.ReadLine().ToLower(), out Bstabe); //Buchstaben Parsen } catch { Console.WriteLine("Bitte nur einen Buchstaben eingeben"); //Bei einer falschen eingabe dass ganze noch einmal von vorne getInput(); } Console.Clear(); if (Leben > 0) //leben überprüfen. Wenn keine Leben mehr funktion ende() aufrufen calculate(Bstabe); else ende(); } private void calculate(char chA) { int pcount = 0; //Counter for (int i = 0; i < Wort.Length; i++) { if (Wort[i] == chA) { Loesung.Replace('X', chA, i, 1); // Das 'X' an der richtigen Stelle ersetzen. pcount++; //counter steigt wenn die ein Buchstabe gefunden wurde. } } if (pcount == 0) // Wenn der Counter immernoch 0 ist ein Leben abziehen Leben--; if (Loesung.ToString().ToLower() == Wort) // wenn die Lösung gefunden ist funktion ende() aufrufen ende(); else getInput(); //ansonsten fortsetzen } private void ende() { if (Leben > 0) //Solange die Leben größer als 0 sind gilt das Spiel als gewonnen Console.WriteLine("Glückwunsch sie haben gewonnen!"); else Console.WriteLine("Sie haben leider verloren!"); char sw = '0'; Console.WriteLine("Noch eine Runde ? (j/n)"); try { char.TryParse(Console.ReadLine(), out sw); } catch { Console.WriteLine("Bitte mit j oder n antworten"); ende(); } if (sw == 'j') { Leben = 15; Wort = ""; Loesung.Clear(); getWord(); } } } class Program { static void Main(string[] args) { Hangman hm = new Hangman(); hm.getWord(); } } } + Multi-Zitat Zitieren