Hallo comm,
Ich hatte einmal folgendes vor: Ich wollte ein kleines Quiz erstellen. Das ist eigentlich nicht schwierig, aber wirklich saumäßig viel zu schreiben. Daher dachte Ich mir, wie praktisch es wäre, wenn Ich einfach nur Frage und Auswahlmöglichkeit an eine Funktion übergeben müsste, die diese Antworten dann automatisch auswertet. Dabei war mir auch wichtig, dass Ich beliebig viele Fragen übergeben und alle Aktionen die je nach gewählter Option ausgeführt werden, selbst festlegen kann, um das ganze dynamisch zu gestalten. Ich hab das mal ausprobiert und siehe da, es klappt hervorragend Da Ich euch das nicht vorenthalten will, heir also das HowTo.
Ihr könnt hier nun noch einige Funktionen mehr einbauen, wie beispielsweise, die Fragen oder dergleichen aus einer Textdatei lesen, um den Nutzer sozusagen sein eigenes Quiz machen zu lassen. Was Ihr damit macht, ist mir egal, es steht jedem frei, den Code wie er lustig ist zu verändern, verbessern oder zu erweitern
PS: Ich werde noch einige Beispielprogramme nachtragen(incl. SourceCode), wenn Ihr möchtet. Wenn nicht ... werde Ich es trotzdem tun xD
link_275
Ich hatte einmal folgendes vor: Ich wollte ein kleines Quiz erstellen. Das ist eigentlich nicht schwierig, aber wirklich saumäßig viel zu schreiben. Daher dachte Ich mir, wie praktisch es wäre, wenn Ich einfach nur Frage und Auswahlmöglichkeit an eine Funktion übergeben müsste, die diese Antworten dann automatisch auswertet. Dabei war mir auch wichtig, dass Ich beliebig viele Fragen übergeben und alle Aktionen die je nach gewählter Option ausgeführt werden, selbst festlegen kann, um das ganze dynamisch zu gestalten. Ich hab das mal ausprobiert und siehe da, es klappt hervorragend Da Ich euch das nicht vorenthalten will, heir also das HowTo.
VB.NET-Quellcode
- Module Module1
- Sub Main()
- Starte()
- Console.Clear()
- Console.WriteLine("Programmende ...")
- Console.ReadLine()
- End Sub
- Sub Starte()
- 'Das hier ist nun der eigentliche Aufruf:
- '
- 'Gehen wir das mal durch:
- '
- 'Parameter #1 ist ein String. Hier wird eingegeben, was der Benutzer mehr oder weniger
- '"zu tun hat". Zum Beispiel: "Eählen Sie eine Option" oder "Wählen Sie die richtige Antwort" oder
- 'dergleichen
- '
- 'Parameter #2 ist ein Array. Der wichtigste Teil von allen!
- 'Hier können beliebig viele Werte eingetragen werden. Sie stellen die einzelnen
- 'Auswahlmöglichkeiten dar. Wie zu sehen ist, ist das ein 2-dimensionales Array.
- 'In der ersten Dimension werden wie eben gesagt die Auswahlmöglichkeiten eingetragen, also
- 'eben eine kurze Beschreibung, was passiert, wenn er diese Option wählt.
- 'Und in der 2. Dimension wird's dann richtig spannend. Das sind die Zahlen,
- 'die das Programm intern auswertet. Da wir hier im folgenden 3 Auswahlmöglichkeiten haben, können
- 'hierfür auch nur 3 Zahlen angegeben werden. Diese werden dann unten über Select case abgefragt.
- 'Eigentlich ist es egal was hier für Zahlen stehen, je nachdem, welche Aktion dafür festgelegt
- 'ist, wird diese ausgeführt.
- 'Dabei ist jedoch die Reihenfolge der Zahlen nicht egal, hier in diesem Fall
- 'ist Aktion 8 auszuführen, wenn die erste Option gewählt wird, Aktion 1 bei der zweiten und Aktion 13 bei der dritten.
- 'Das ist jetzt wirklich ein wenig schwer zu erklären, das beste wird sein, Ihr testet es ;)
- Aufgabe("Was ist zu tun?", {{"Option1", "Option2", "Option3"}, {8, 1, 3}}, False, 1)
- 'Praxisbeispiel einfache Antwort
- Aufgabe("Gibt es unter Linux den Befehl ""rm""?", {{"Nein, nur unter Windows", "Ja", "Weiß nicht"}, {8, 1, 3}}, False, 1)
- 'Praxisbeispiel mehrfachantwort
- Aufgabe("Welches davon ist eine Schulnote?", {{"Sehr gut", "gut", "Mies", "Mangelhaft", "Genial"}, {21, 18, 112, 97, 4}}, False, 2)
- End Sub
- Sub Aufgabe(ByVal ToDo As String, ByVal Aufgaben(,) As String, Optional ByVal MultiAns As Boolean = False, Optional ByVal Nummer As Integer = 0)
- 'Erstmal Konsole leeren
- Console.Clear()
- 'Optional, zeigt lediglich an, ob eine oder mehrere Antworten/Aktionen wählbar sind
- 'Kann weggelassen werden, zur Ausgabe aber beim testen praktisch
- If MultiAns = False Then
- Console.WriteLine("[Aufgabe " & Nummer & " - EINE_ANTWORT]")
- Else
- Console.WriteLine("[Aufgabe " & Nummer & " - MEHRERE_ANTWORTEN]")
- End If
- 'Die gestellte Aufgabe ausgeben, oder was auch immer der Benutzer hier zu tun hat
- Console.WriteLine(ToDo)
- Console.WriteLine()
- 'Optionen aus dem Aufgabenarray über die Konsole ausgeben ...
- Dim ia As Integer = 0
- For Each item As String In Aufgaben
- If item.Length = 1 Then Exit For
- Console.Write("[" & ia + 1 & "]" & vbTab)
- Console.Write(item & vbNewLine)
- ia += 1
- Next
- '...und die Benutzereingaben empfangen
- Console.WriteLine()
- Console.Write("Wählen Sie Ihre Option> ") 'Eingaberompt
- Dim Eingabe As String = Console.ReadLine()
- 'Fall Leerzeichen enthalten sind, kommen die raus, damit die Eingaben schön über Komma in's
- 'Array eingelesen werden können
- Eingabe = Eingabe.Replace(" ", "")
- 'Falls es mehrere Optionen waren, in Array einlesen. Bei mehreren Optionen mit Komma trennen
- Dim MehrfachEingabe() As String = Eingabe.Split(",")
- 'Welche Aktion soll ausgeführt werden?
- For Each SOption As String In MehrfachEingabe
- If CInt(SOption) > Aufgaben.Length / 2 Then
- Console.ForegroundColor = ConsoleColor.Red
- Console.WriteLine("Fehlerhafte Eingabe, es standen nicht genügend Optionen zur Verfügung:")
- Else
- Console.ForegroundColor = ConsoleColor.Green
- End If
- Select Case SOption
- Case 1
- Console.WriteLine("Sie haben 1 eingegeben")
- Case 2
- Console.WriteLine("Sie haben 2 eingegeben")
- Case 3
- Console.WriteLine("Sie haben 3 eingegeben")
- Case Else
- Console.WriteLine("Unbekannte Option: " & SOption)
- End Select
- Next
- 'Schließlich das Ende der Abfrage
- Console.WriteLine(vbNewLine & vbNewLine & "Drücke Enter um [was auch immer]...")
- Console.ReadLine()
- 'Aktion...
- End Sub
- 'Um die Praxisbeispiele von oben direkt zu testen, einfach diese Sub entsprechend wie die obere Anpassen und hineinkopieren
- Sub Praxisbeispiel()
- 'Praxisbeispiel einfache Antwort
- 'Aufgabe("Gibt es unter Linux den Befehl ""rm""?", {{"Nein, nur unter Windows", "Ja", "Weiß nicht"}, {8, 1, 3}}, False, 1)
- 'Praxisbeispiel mehrfachantwort
- 'Aufgabe("Welches davon ist eine Schulnote?", {{"Sehr gut", "gut", "Mies", "Mangelhaft", "Genial"}, {21, 18, 112, 97, 4}}, False, 2)
- For Each SOption As String In "x"
- Select Case SOption
- Case 1
- Console.WriteLine("Richtig")
- Case 8
- Console.WriteLine("Nein, nicht mal unter Windows")
- Case 13
- Console.WriteLine("Das ist schlecht ...")
- Case 21, 18, 97
- Console.WriteLine("Richtig, die gibt es")
- Case 112, 5
- Console.WriteLine("Die gibt es nicht..")
- End Select
- Next
- End Sub
- End Module
Ihr könnt hier nun noch einige Funktionen mehr einbauen, wie beispielsweise, die Fragen oder dergleichen aus einer Textdatei lesen, um den Nutzer sozusagen sein eigenes Quiz machen zu lassen. Was Ihr damit macht, ist mir egal, es steht jedem frei, den Code wie er lustig ist zu verändern, verbessern oder zu erweitern
PS: Ich werde noch einige Beispielprogramme nachtragen(incl. SourceCode), wenn Ihr möchtet. Wenn nicht ... werde Ich es trotzdem tun xD
link_275
Hello World