Android Quiz App - Fragen Stellen Zufällige und Dynamische
Ich arbeite am Aufbau einer quiz-app für Android. Einmal vollendet, wird die app mit rund 500 Fragen, bestehende in mehreren Kategorien.
Ich kann die Fragen gut zu funktionieren, aber nur in einem Fall: die Fragen sind linear, was bedeutet, dass Sie immer in der gleichen Reihenfolge angezeigt und die Frage immer die gleichen Antworten in der gleichen Reihenfolge (also z.B. Frage 1 hat immer die Antworten A, B und C, Frage 2 hat immer Antworten D, E, F, etc.) Ich kenne den Grund für dieses da bin ich nur tauschen textviews im Grunde auch, aber nur, weil ich nicht weiß, wie zu tun, was ich versuche zu tun.
- Ich will die Fragen, die in jedem Satz zu gehen, um in einer zufälligen Reihenfolge und ohne Duplikate. In einem früheren Projekt, um etwas zu erreichen ähnlich wie erstellte ich eine integer-generiert einen zufälligen Wert und dann überprüfen, um zu sehen, ob dieser Wert wurde bereits benutzt. Aber das wäre unglaublich Speicher ineffizient und da arbeite ich an einer Android app und nicht an einen PC ein, das ist zu wichtig, um übersehen.
- Ich möchte jede Frage zu haben zufällige Antworten, andere als die richtige, ausgewählt aus einem pool von möglichen Antworten. So, zum Beispiel, wenn ich etwas Fragen wie "Wer regiert Großbritannien von 1810-1820" (keine wirkliche Ahnung auf die Antwort), ich möchte nur eine Antwort die richtige ist, und die anderen beiden oder drei werden, aus einem pool von 10 europäischen Herrscher. Darüber hinaus möchte ich die Platzierung der richtigen Antwort zu dynamisch sein, also es ist nicht immer an der gleichen Stelle (so dass die Menschen nicht nur prägen Sie sich die Frage und es die Antwort von der Lage).
Als jetzt, die Fragen sind nur in einer java-Datei, da bin ich noch in der pre-alpha-Stadium, aber ich Plane auf, indem Sie in eine SQLite-Datenbank, sobald ich die Rahmenbedingungen für das Projekt herausgefunden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mein Vorschlag ist, Sie sollten zufällig die Reihenfolge der quiz-array mit einem integer-array mit zahlen von 0 bis 499. alle Fragen werden angezeigt, aber nicht in der gleichen Reihenfolge. um dies zu tun, finden Sie in diesem Beitrag: Random shuffling eines Arrays
zweiten Fall, wenn ich an deiner Stelle, ich will ein array mit den Antworten, setzen zufällige Antworten, und nehmen eine zufällige Zahl von 0 bis 3 für den index der richtigen Antwort und
Hinsichtlich
1)
Schreiben Sie sich die Fragen von 1 bis N.
Wählen Sie eine zufällige Zahl k zwischen eins und der Anzahl der unstruck zahlen, die restlichen (inklusive).
Die Zählung am unteren Ende, schlagen die kth Frage noch nicht getroffen, und schreiben Sie es nach unten anderswo.
Wiederholen Sie ab Schritt 2, bis alle zahlen wurden getroffen.
Die Reihenfolge der Fragen aufgeschrieben, die Sie in Schritt 3 wird nun eine zufällige permutation der ursprünglichen zahlen.
dies ist nichts aber.. Fischer-Yates-Shuffle, die Sie sehen könnten
http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle
Betrachten Sie den folgenden code
Wenn ich deine Frage verstanden richtig,die Sie tatsächlich benötigen eine effiziente Möglichkeit zum randomisieren der index, an dem Fragen gestellt werden ....
Dies tun, erhalten Sie eine zufällige Anzahl effizient
Verwenden Sie diese Nummer als ein index, um die gespeicherten Fragen und zeigen Ihnen
Dies wird eine Frage immer in einer zufälligen Reihenfolge..
Hoffe es hilft dir.