Quiz in Flash

borsti

Mitglied
Hi,
habe ein Quiz in Flash gemacht, es funktioniert auch gut.
Zu sehen unter:
http://www.konie-data.de

Ich habe mit einem Zufallsgenerator gearbeitet mit folgendem Code:
PHP:
/*entfernen der schon gestellten frage*/
fragen.splice(zufall, 1);
/*sortieren der noch übrigen fragen damit die immer
eine Reihenfolge haben, den brauchen wir hier nicht mehr
ist aber gut zu wissen das es so auch gehen würde*/
fragen.sort();
//Zurücksetzen des zufallwertes
zufall=null;
if(fragen.length == 0) {//vergleichen ob noch elemente in array sind

	}
	else{//solange imarray suchen bis eine frage gefunden wird
while(fragen[zufall]==null){
	zufall = Math.random(fragen.length)*10;
		zufall=Math.round(zufall);
}
	}

stop();
Ich habe nun folgendes Problem:
Beim erstmaligen Aufrufen jeder Kategorie, wird immer eine Frage doppelt gestellt.
Dieses Problem ist verschwunden, wenn man am Ende auf "noch mal" klickt.

Wenn Ihr noch anderen Code braucht bitte sagen.

Danke schon mal für die Hilfe

Borsti

Bitte Code- bzw. PHP-Tags beim Posten von Code verwenden, danke!

- Datic
 
Zuletzt bearbeitet von einem Moderator:
Hi,

wozu dient folgendes
while(fragen[zufall]==null){
zufall = Math.random(fragen.length)*10;
zufall=Math.round(zufall);
? Jach jedem Splice-Vorgang hast Du ja ein komplettes Array ohne die bisher gestellten Fragen; es sollte doch ausreichen, direkt einen zufälligen Wert aus dem Array zu bestimmen:
PHP:
zufall = int(Math.random() * frage.length);
Hier eine Beispielfunktion, mit der Du alle Elemente des Arrays in zufälliger Reihenfolge ausgibst:
PHP:
var frage = new Array("Eins", "Zwei", "Drei", "Vier", "Fünf", "Sechs", "Sieben", "Acht", "Neun", "Zehn");
var last_index = null;

function nextQuestion() {
	if (frage.length > 0) {
		last_index = int(Math.random() * frage.length);
		var question = frage[last_index];
		trace(question);
		frage.splice(last_index, 1);
	} else {
		trace("Fertig");
	}
}
(Ich habe spaßeshalber einfach ein Array mit Zahlen angelegt ;) )

Gruß
.
 
Zurück