Autor Beitrag
Marco D.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: Do 11.05.06 21:17 
Hallo,

ich arbeite derzeit an einem Quiz. Eigentlich ja nicht das Problem! ;)
Allerdings sollen die Fragen variabel sein. Dazu lese ich die Fragen zur Laufzeit aus einer Textdatei in ein Array ein, damit sie leicht geändert werden können. Das geht soweit. Nun will ich andereseits es gerne so haben, dass die Fragen zufällig ausgewählt werden. Nur darf dabei keine Frage doppelt erscheinen. Meine Frage betrifft das Konzept. Wie kann man so etwas realisieren?
Mein bisheriger Ansatz ist der, dass ich den Eintrag aus dem Fragen-Array lösche, wenn eine ausgewählt wurde. Allerdings habe ich da Probleme mit der Umsetzung :-(
( www.delphi-forum.de/viewtopic.php?t=59956 )
Gibt es eine andere Möglichkeit?

_________________
Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
FFKangoroo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33

WIN XP SP2
Delphi 7
BeitragVerfasst: Do 11.05.06 21:43 
Also zufallAuswahl machst du mit dem Befehl: RAndom(Integer);
der integer ist die zahl zwischen denen er aussucht.
Am anfang kannst du noch randomize; angeben das mischt die randomliste jedesmal durch. um zu verhindern das fragen doppelt vorkommen kannst du in einen weiteren array die bereits benutzten zahlen reinschreiben und immer abfragen.

Hoffe konnte helfen
Marco D. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: Fr 12.05.06 08:48 
user profile iconFFKangoroo hat folgendes geschrieben:
um zu verhindern das fragen doppelt vorkommen kannst du in einen weiteren array die bereits benutzten zahlen reinschreiben und immer abfragen.

Das andere ist ja nicht das Problem. Also ich habe ein Array of TFrage. Ich könnte ja dann ein weiteres Array (z.B. questions_used) nehmen, in dem ich speichere, ob die Frage schon mal kam.

_________________
Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
LLCoolDave
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 212

Win XP
Delphi 2005
BeitragVerfasst: Fr 12.05.06 16:13 
Wenn du eh schon eine Klasse/einen Record TFrage hast, kannst du doch dort auch ne boolean variable einbauen, die du auf true setzt wenn die Frage schon dran war.

Oder du generierst beim Laden der Frageliste eine weitere Liste (von mir aus auch einen Array), in dem alle Nummern der Fragen stehen und mischt diesen dann gut durch. Dann einfach der Reihe nach durchgehen und das ganze funktioniert auch.
Marco D. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: Fr 12.05.06 20:56 
user profile iconLLCoolDave hat folgendes geschrieben:
Wenn du eh schon eine Klasse/einen Record TFrage hast, kannst du doch dort auch ne boolean variable einbauen, die du auf true setzt wenn die Frage schon dran war.

Oder du generierst beim Laden der Frageliste eine weitere Liste (von mir aus auch einen Array), in dem alle Nummern der Fragen stehen und mischt diesen dann gut durch. Dann einfach der Reihe nach durchgehen und das ganze funktioniert auch.

Beide Ideen sind genial :zustimm:

_________________
Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot