Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Eine zufällige Wahl treffen... (https://www.delphipraxis.net/33704-eine-zufaellige-wahl-treffen.html)

malo 11. Nov 2004 13:57


Eine zufällige Wahl treffen...
 
Und zwar wollte ich ein kleines Quizprogramm schreiben (danke @Idee von 'nem anderen Thread, wo jemand nach etwas ähnlichem gefragt hat :mrgreen: )

Nunja, da will ich dann auch verschiedene Fragen haben, ist ja klar. Die sollen dann jedoch per Zufallsgenerator ausgewählt werden. Aber wie kann ich dann eine zufällige Wahl treffen lassen? Vorerst will ich die Fragen auch vorher festgelegt haben, d.h. sie sind im Programm schon gespeichert und nicht irgendwo anders, wie in der registry oder in einer .ini .

Ähm... ja, wär nett, wenn mir da jemand helfen könnte :)

Luckie 11. Nov 2004 14:00

Re: Eine zufällige Wahl treffen...
 
Stichworte für die Hilfe: Delphi-Referenz durchsuchenrandom und Delphi-Referenz durchsuchenrandomize.

Alexander 11. Nov 2004 14:00

Re: Eine zufällige Wahl treffen...
 
Dein Problem ist also der Zufallsgenerator, oder? Nun gut, schau einfach mal nach Delphi-Referenz durchsuchenRandom in der OH ;)

nailor 11. Nov 2004 14:01

Re: Eine zufällige Wahl treffen...
 
Irgendwo die Fragen speichern, sodass man per Index (Zahl) darauf zugreifen kann (zum Beispiel in ein _array_). Dann mit _Randomize_ den Zufallsgenerator anwerfen und dir mit _Random_ einen zufälligen Index aussuchen.

malo 11. Nov 2004 14:29

Re: Eine zufällige Wahl treffen...
 
Äh... nunja, das hat mich jetzt auch nicht besonders weitergebracht Oo

Meine Überlegung jetzt: Ich erstelle ein Array vom Typ String. Dann kommt ins OnCreate die Wertbestimmung. Es kommt also in jedes Array eine Frage. Kann mir jetzt jemand sagen, wie ich per Zufall jetzt einen Arraywert aufrufen kann, am besten mit Beispielcode? Oo

Kedariodakon 11. Nov 2004 14:40

Re: Eine zufällige Wahl treffen...
 
Delphi-Quellcode:
Function GetFrage( Const Nummer: Cardinal ): String;
Const cFragen: Array[ 0..2 ] Of String = ( 'FRAGE 00', 'FRAGE 01', 'FRAGE 02' );
Begin
  If Nummer In [ 0..2 ] Then Result   := cFragen[ Nummer ]
                        Else Result := 'Fragen Fehler...';
End;

Dann einfach irgendwo Die Function aufrufen...


Bye

malo 11. Nov 2004 14:52

Re: Eine zufällige Wahl treffen...
 
Äh... ja, danke. Nur eins noch (auch, wenn ihr mich jetzt für blöd haltet... ): Wie rufe ich jetzt die Funktion auf? :wall:

Nikolas 11. Nov 2004 14:54

Re: Eine zufällige Wahl treffen...
 
Delphi-Quellcode:
// Den Zufallsgenerator aktivieren:
randomize;
// eine Zahl erstellen lassen:
arandomnumber:= random(50); // -> zwischen 0 und 49 [glaub ich]

Alexander 11. Nov 2004 14:57

Re: Eine zufällige Wahl treffen...
 
Ganz einfach: Die Funktion erwartet halt als Parameter die Nummer der Frage und liefert die Frage als String zurück.
Ich denke wenn du die Antworten auch noch mit einbauen willst, baust du dir ein Record, in dem die Frage und die Antworten (Antworten bspw. wieder in nem Array). Dann änderst du die Funktion halt so ab, dass das Array nicht vom Typ String ist, sondern hatlt von deinem neu definierten Typ...
Wie das mit den Records geht, findest du hier oder in der OH auch :P

Neutral General 11. Nov 2004 15:30

Re: Eine zufällige Wahl treffen...
 
Wieso nicht einfach :

Delphi-Quellcode:
var Frage : Array[1..50] of String;

procedure TForm1.Form.Create(Sender : TObject);
begin
  randomize;
  Label1.Caption := Frage[random(50)+1]; //Array muss natürlich vorher mit Fragen gefüllt werden
end;
Ist doch das einfachste oder ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 Uhr.
Seite 1 von 2  1 2      

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