2016-04-09 13 views
-2

Ich habe Klasse QuestionsAll mit Konstruktor aufgerufen:Methode ohne Wiederholung

QuestionsAll(label question, Button b1, Button b2, Button b3, Button b4) 

und Verfahren genannt:

questions(string question, string answer1, string answer2, string answer3, string answer4, Button correctanswer) 

Wie ich es in meinem Formular:

void NewQuestion()  
{ 
    Random rd = new Random(); 
    int qu = rd.Next(0,4) 
    QuestionsAll q = new QuestionsAll(label1,Button1,Button2,Button3,Button4) //my question will be in label1, answer1 in Button1......) 

    if(qu == 1) q.questions("1+1 =", "1", "2", "3", "4", Button2); 
    if(qu == 2) q.questions("1+2 =", "1", "2", "3", "4", Button3); 
} 

Und wenn Sie Klicken Sie in die richtige Frage, fragen Sie nach Änderungen, aber Fragen und Antworten wiederholen sich. Wie kann ich es ohne Wiederholung tun?

+0

Sie müssen mehr Informationen über das aktuelle Verhalten und das erwartete Verhalten hinzufügen. – MikeC

Antwort

2

Wenn ich es richtig verstehe, willst du die Frage nur einmal durchgehen? Wenn ja, mache eine Liste von ganzen Zahlen, die die Fragen symbolisieren. Wenn die Frage vorüber ist, lösche sie aus der Liste. Wie folgt:

List<int> questions = new List<int>(); 
for (int i = 0; i < 5; i++){ 
    list.add(i); 
} 
//... 
int qu = rd.Next(0, questions.Count); 
//... Question is answered 
questions.Remove(qu); 
+0

Korhak: Und wo sollte ich diese Methode hinzufügen q.questions ("1 + 1 =", "1", "2", "3", "4", Button2) ?? –

+0

Ich kenne nicht die ganze Struktur Ihres Programms, also müssen Sie ein wenig selbst denken. Sie behalten die Struktur wie Sie haben, ersetzen Sie einfach die Zeile mit int qu = ... Und am Ende rufen Sie questions.Remove (qu) und dann kann die Methode erneut aufgerufen werden. – Korhak

Verwandte Themen