AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Quiz mit Delphi

Ein Thema von Baeric · begonnen am 1. Mär 2007 · letzter Beitrag vom 6. Mär 2007
Antwort Antwort
Baeric

Registriert seit: 1. Mär 2007
4 Beiträge
 
#1

Quiz mit Delphi

  Alt 1. Mär 2007, 12:40
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?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Quiz mit Delphi

  Alt 1. Mär 2007, 12:45
Auf torry kann man momentan ne Version herunterladen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Quiz mit Delphi

  Alt 1. Mär 2007, 12:49
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
  Mit Zitat antworten Zitat
Baeric

Registriert seit: 1. Mär 2007
4 Beiträge
 
#4

Re: Quiz mit Delphi

  Alt 1. Mär 2007, 13:00
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:
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;
usw.

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


Nebenher möchte ich noch bemerken, dass wir halbe "Delphi-Analphabeten" der 13. Klasse eines Informatikkurses sind ^^
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Quiz mit Delphi

  Alt 1. Mär 2007, 20:29
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
  Mit Zitat antworten Zitat
Baeric

Registriert seit: 1. Mär 2007
4 Beiträge
 
#6

Re: Quiz mit Delphi

  Alt 2. Mär 2007, 15:22
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.....
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

Re: Quiz mit Delphi

  Alt 2. Mär 2007, 16:04
Zitat von Baeric:
Wie vermeiden wir, dass die Variable "Fragenr", die durch /random bestimmt wird, doppelt verwendet wird?
Man braucht 2 Listen, eine mit den Fragen (in sortierter Reihenfolge)
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:
http://www.delphipraxis.net/internal...t.php?p=689744
Anstatt dass man die Fragen zufällig umsortiert, kann man auch die Nummern der Fragen verwursteln.
Andreas
  Mit Zitat antworten Zitat
Baeric

Registriert seit: 1. Mär 2007
4 Beiträge
 
#8

Re: Quiz mit Delphi

  Alt 3. Mär 2007, 15:46
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
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Quiz mit Delphi

  Alt 6. Mär 2007, 15:43
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:
with TableQuiz do begin
  First;
  while not Eof do begin
    Edit;
    TableQuizSchonGelesen.AsBoolean:=False;
    Post;
    Next;
  end;
end;
In die Richtung geht das. Ihr müsst halt viel ausprobieren, dadurch lernt man am Meisten...

Stahli
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz