![]() |
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 :) |
Re: Eine zufällige Wahl treffen...
|
Re: Eine zufällige Wahl treffen...
Dein Problem ist also der Zufallsgenerator, oder? Nun gut, schau einfach mal nach
![]() |
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.
|
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 |
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 |
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:
|
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] |
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 |
Re: Eine zufällige Wahl treffen...
Wieso nicht einfach :
Delphi-Quellcode:
Ist doch das einfachste oder ?
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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 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