Ich mache ein Quiz, das 3 Schwierigkeiten hat. Für jede Schwierigkeit muss eine unterschiedliche Anzahl an Antworten verfügbar sein.VB.net Konsole Zufällige Antwort Position
So müssen einfach Antworten haben, mittel Antworten haben müssen und hart Antworten haben muss.
Ich brauche einen Weg, um die Antwort Position randomisieren so zum Beispiel, wenn es leicht Schwierigkeit ist, gäbe es nur Antworten sein (von denen die richtigen sein) oder wenn es schwer Schwierigkeiten es würde Antworten geben, von denen eine richtig ist.
Hinweis:
Frage, Richtige Antwort, Andere Antwort, Andere Antwort, Andere Antwort
Die Richtig: Die Fragen und Antworten wurden aus einer CSV-Datei mit einer Struktur gelesen Antwort ist immer an der zweiten Stelle der Zeile in der CSV-Datei, so in meinem Array wäre es Fragen (1).
Mein aktueller Code ist:
Dim topic as String = "music" ' <- An example topic for the quiz
Dim filereaderq As New StreamReader(topic & ".csv", True)
While filereaderq.EndOfStream = False
questions = filereaderq.ReadLine.Split(",")
If difficulty.ToLower = "easy" Or difficulty = "1" Then
ansnum = 2
difficulty = "e"
ElseIf difficulty.ToLower = "medium" Or difficulty = "2" Then
ansnum = 3
difficulty = "m"
ElseIf difficulty.ToLower = "hard" Or difficulty = "3" Then
ansnum = 4
difficulty = "h"
End If
' Random Number
Dim answerc As New List(Of Integer)
answerc.Add(0)
or i = 0 To ansnum
Dim ok As Boolean = False
Do
Dim num As Integer = Int((ansnum * Rnd()) + 1)
If answerc.Contains(num) Then
ok = False
Else
ok = True
answerc.Add(num)
End If
Loop Until ok
Next
Console.WriteLine("----------------------------")
Console.WriteLine("Q" + CStr(qnum) + ". " + questions(0))
qnum = qnum + 1
Console.WriteLine("")
If difficulty = "e" Then
Console.WriteLine("1. " + questions(answerc(1)))
Console.WriteLine("2. " + questions(answerc(2)))
ElseIf difficulty = "m" Then
Console.WriteLine("1. " + questions(answerc(1)))
Console.WriteLine("2. " + questions(answerc(2)))
Console.WriteLine("3. " + questions(answerc(3)))
ElseIf difficulty = "h" Then
Console.WriteLine("1. " + questions(answerc(1)))
Console.WriteLine("2. " + questions(answerc(2)))
Console.WriteLine("3. " + questions(answerc(3)))
Console.WriteLine("4. " + questions(answerc(4)))
End If
Console.WriteLine("----------------------------")
Console.Write("Answer Number: ")
ansnum = Console.ReadLine()
If answerc(0) = ansnum Then
score = score + 1
Else
score = score
End If
End While
Bitte beachten Sie, dass Schwierigkeit und Thema sind beide Benutzer eingegebene Zeichenfolgen, die zuvor erklärt wurden.
Mein Problem ist die Tatsache, dass, wenn ich einfache Schwierigkeit zum Beispiel wählen sollte, die richtige Antwort nicht eine der zwei ausgegebenen Antworten sein würde. Ich muss sicherstellen, dass die richtige Antwort immer ausgegeben wird und die anderen Antworten werden zufällig sein.
Vielen Dank für Ihre Hilfe.
Ich bin nicht sehr Erfahrung, wenn es um die Codierung geht, also entschuldige ich mich für Fehler, die ich gemacht habe, die dumm sind.
Sie müssen die FAQ dieser Seite lesen, wie Sie eine Frage stellen können. Wir werden Ihnen mit Code helfen, der nicht funktioniert, aber wir werden Ihren Code nicht für Sie schreiben. –
@SamAxe Ich habe meine Frage bearbeitet, können Sie, wenn möglich, Hilfe anbieten? – Flame7427
@LarsTech Ich habe jetzt, tut mir leid, dass – Flame7427