Link27park Geschrieben 15. Februar 2009 Geschrieben 15. Februar 2009 Hey Leutz!:cool: Ich möchte gerne ein Quiz mit c# schreiben (in der Konsolenanwendung), die Vorgabe es muss mit static void quiz geschrieben sein. Denn das Ziel ist es das das Quiz 20 Fragen haben muss mit möglichst wenig Zeilen, so ca. 80- 90!:eek Ich komme so weit bis es die frage stellt.... aber wie soll ich machen das verschiedenen antworten richtig sein können z.b frage1 richtig a frage 2 richtig d wie soll ich ds schreiben? mfg link27park Zitieren
kross Geschrieben 16. Februar 2009 Geschrieben 16. Februar 2009 erstell dir ne frageklasse mit den membern string m_fragetext; List<string>m_antworten; string m_antwort; ctor(string _fragetext, List<String> _antworten, _antwort) { m_fragetext = _fragetext; m_antworten = _antworten; m_antwort = _antwort; } public bool check(String _userAntwort) { return m_antwort.ToLower() == _userAntwort.ToLower(); } der klasse kannst du auchnoch funktionen zum schreiben deiner frage in die konsole geben evtl auch das antwort auswerten komplett überlassen in deiner mainklasse erstellst du dann die fragen mit List<Frageklasse> fragen = new List<Frageklasse>(); fragen.Add("meine frage",new List<string>(new string[] { "antwort 1", "antwort 2", "antwort n" }, "A")); fragen.Add("noch eine frage",new List<string>(new string[] { "andere antwort 1", "andere antwort 2", "andere antwort n" }, "B")); ... danach foreach (Frageklasse frage in fragen) { //todo code zum frage stellen antwort einlesen z.B. in string inputstr if(frage.check(inputstr)) { //code für richtige antwort } else { //code für falsche } } vorteil für das hinzufügen jeder weiteren frage benötigst du blos eine weitere zeile code ps das ist noch dotnet2 code mit dem 3er gehts noch etwas angenehmer Zitieren
Link27park Geschrieben 16. Februar 2009 Autor Geschrieben 16. Februar 2009 aber ich bin noch anfänger gibt es auch einen einfacherern cod:D danke mfg Linkin27Park Zitieren
kross Geschrieben 16. Februar 2009 Geschrieben 16. Februar 2009 waren ein paar kleine fehler drin und nicht alles vollständig wenn du das ganze auf 20 fragen erweiterst kommst du auf 79 zeilen inklusive einiger leerzeilen using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { List<Frage> fragen = new List<Frage>(); fragen.Add( new Frage("meine frage", new List<string>(new string[] { "antwort 1", "antwort 2", "antwort n" }), "A")); fragen.Add(new Frage("noch eine frage", new List<string>(new string[] { "andere antwort 1", "andere antwort 2", "andere antwort n" }), "B")); fragen.Add(new Frage("Was ist keine Ziffer", new List<string>(new string[] { "1", "2", "3", "4", "5", "6", "7", "8", "#" }), "I")); foreach (Frage frage in fragen) { if (frage.StelleFrage()) { Console.WriteLine("Richtig!"); } else { Console.WriteLine("Falsch!"); } } Console.ReadKey(); } class Frage { string m_fragetext; List<string> m_antworten; string m_antwort; public Frage(string _fragetext, List<String> _antworten, string _antwort) { m_fragetext = _fragetext; m_antworten = _antworten; m_antwort = _antwort; } public bool check(String _userAntwort) { return m_antwort.ToLower() == _userAntwort.ToLower(); } public bool StelleFrage() { Console.WriteLine("{0}", m_fragetext); char antwortindex = 'A'; foreach (string antwort in m_antworten) { Console.WriteLine("{0} ) {1}", (Char)(antwortindex++), antwort); } Console.Write("Antwort: "); string userantwort = Console.ReadLine(); return check(userantwort); } } } } Zitieren
Argbeil Geschrieben 16. Februar 2009 Geschrieben 16. Februar 2009 Bitte auf die Rechtschreibung achten. In der aktuellen Form muss man den Text 3 mal lesen um ihn zu verstehen. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.