![]() |
Quiz mit Delphi
Hallöchen liebe Freunde des Programmierspaßes,
mein Kumpel und ich sind gerade dabei ein Quiz zu programmieren. Das passiert im ähnlichen Stil von "Wer wird Millionär". Eine Frage, 4 Antworten, eine richtige Lösung. Quasi ein Panel für die Frage und 4 Buttons für die Antworten. Das soll so geschehen: Ein Button löst die nächste Frage aus: -> Der Panel und die Buttons bekommen Text zugewiesen. Dies geschiet zufällig über einen Randombefehl, der den Frage-Antwort-Komplex zufällig (sagen wir von 1 bis 100) aussucht. Hier schon unser erstes Problem: Wie vermeiden wir, dass die Variable "Fragenr", die durch /random bestimmt wird, doppelt verwendet wird? |
Re: Quiz mit Delphi
Auf torry kann man momentan ne Version herunterladen.
|
Re: Quiz mit Delphi
Hallo Baeric,
herzlich willkommen hier im Forum :-) Wo speichert Ihr denn Eure möglichen Fragen und antworten? In einer Datenbank (z.B. DBase)? Das würde ich dringend empfehlen. So könnt Ihr den Fragenkatalog jederzeit leicht ausbauen. Dann wäre ein boolsches Feld "SchonGefragt" sinnvoll und ausreichend. Ansonsten schaut euch mal eine StringList an. Dort könnt Ihr Zeilen hinzufügen und Werte speichern (Values), die sich auch in eine Textdatei schreiben lassen. Eine Ini wäre auch praktikabel. Stahli |
Re: Quiz mit Delphi
hallo und vielen dank für die begrüßung.
auf torry hab ich leider nichts gefunden (geländeblind^^) eigentlich haben wir das mit in dem "nächste Frage" button mit eingebaut, wobei wir auch schon über ne datenbank nachgedacht haben. ich glaube in der hinsicht nimmt sich das nicht sonderlich viel.
Delphi-Quellcode:
usw.
fragenr:= random(x)+1;
If fragenr=1 then begin Fragepanel.caption:= 'frage'; Antwortbutton1.caption:='antwort1'; Antwortbutton2.caption:='antwort2'; Antwortbutton3.caption:='antwort3'; Antwortbutton4.caption:='antwort4'; end; dann wollten wir noch in die bedingung eine variable für die Lösung einbauen. Der Klick auf einen Button gibt dann halt eine Variable von 1-4 an, die mit der "richtigen Lösung" verglichen wird und danach entscheidet, ob es richtig oder falsch ist. Vielleicht sollten wir dann doch auf die datenbank zurückgreifen, jedoch weiss ich dann nicht, wie das dann mit den bedingungen zu lösen ist bzw das alles funktioniert :gruebel: Nebenher möchte ich noch bemerken, dass wir halbe "Delphi-Analphabeten" der 13. Klasse eines Informatikkurses sind ^^ |
Re: Quiz mit Delphi
Nutzt auf jeden Fall eine Datenbank.
BDE installieren Fragen.DBF erzeugen Felder: FrageNr, FrageText, Antwort1, Antwort2, Antwort3, Antwort4, Richtig, SchonGefragt Dann könnt Ihr (sogar mit Excel) zwanzigmillionentausend Fragen und Antworten in die DB schreiben. In Feld Richtig kommt Nr 1-4. Das Programm wählt zufällig einen Datensatz aus und kennzeichnet den im Feld SchonGefragt... Stahli |
Re: Quiz mit Delphi
Danke dir Stahli, mit der Datenbank ist das eine echte Erleichterung, jetzt müssen wir nur noch gucken wie wir das einbauen können.....und in das Feld "SchonGefragt" soll das Programm dann eine Markierung machen, wenn wir das richtig verstehen.
Wir werde das erstmal probieren..... |
Re: Quiz mit Delphi
Zitat:
und eine 2. Liste, der die Fragen dann in zufälliger Reihenfolge aufnimmt. Angenommen es sind 100 Fragen, dann zieht man zufällig die Frage 42 und kopiert die in Liste 2. Bleiben noch 99 Fragen übrig. So macht man weiter bis Liste 1 leer ist. Liste 2 enthält dann 100 Fragen in zufälliger Reihenfolge: ![]() Anstatt dass man die Fragen zufällig umsortiert, kann man auch die Nummern der Fragen verwursteln. |
Re: Quiz mit Delphi
tut mir leid, aber wir haben noch nie mit Datenbanken gearbeitet.
Wir haben jetzt: eine datenbank erstellt mit fragenumemr x-y, frage x-y, den 4 antworten und der richtigen antwortnummer. hinten dran sit das fgeld "schon gefragt". Jedoch stellen sich jetzt uns 2 fragen: 1. wie binden wir den spaß in unser programm ein? 2. wie realisiert man das, dass es die bereits zufällig gewählten fragen in der letzten spalte markiert werden und nichtmehr verwendet werden, solange die quizrunde noch läuft? irgendwie bin ich eh total verwirrt. das quiz sollte ja auch nach 25 fragen enden und dannach müsste alles resetet werden :freak: |
Re: Quiz mit Delphi
Hallo Baeric,
ich gehe davon aus, dass Ihr eine DBF-Datenbank erstellt habt. In Euer Formular setzt Ihr ein eine TTable - und verbindet die mit der Tabelle TDataSource - und verbindet die mit der TTable TDBGrid - und verbindet die mit der TDataSource Dann seht Ihr schon mal in dem Formular den Datenbankinhalt. Auf TTable doppeklicken und alle Felder hinzufügen. Im Quelltext nutzt Ihr dann z.B. zum Löschen der SchonGelesen-Felder so etwas wie:
Delphi-Quellcode:
In die Richtung geht das. Ihr müsst halt viel ausprobieren, dadurch lernt man am Meisten...
with TableQuiz do begin
First; while not Eof do begin Edit; TableQuizSchonGelesen.AsBoolean:=False; Post; Next; end; end; Stahli |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz