Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Random Befehl spielt verrückt (https://www.delphipraxis.net/106053-random-befehl-spielt-verrueckt.html)

STS301 4. Jan 2008 12:45


Random Befehl spielt verrückt
 
Hallo

habe ein Problem mit dem Randombefehl

er soll eine Beliebige Zahl zwischen 1 und 6 anzeigen, jedoch zeigt er 6 nie an und manchmal zeigt
er gar nichts an

hier der source:

Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
var f : integer;

begin

randomize;
f:=random(6);

if f=1 then
showmessage('1')
else if f=2 then
showmessage('2')
else if f=3 then
showmessage('3')
else if f=4 then
showmessage('4')
else if f=5 then
showmessage('5')
else if f=6 then
showmessage('6')

end;
danke im Voraus

fLaSh11 4. Jan 2008 12:46

Re: Random Befehl spielt verrückt
 
:wink:
random(6) => 0..5
mach also random(6) + 1, wenn du Zahlen von 1 bis 6 willst!

STS301 4. Jan 2008 12:47

Re: Random Befehl spielt verrückt
 
danke, das war der eine Fehler, aber der Fehler, dass er nichts anzeigt bleibt leider
:(:(:(:(

DeddyH 4. Jan 2008 12:48

Re: Random Befehl spielt verrückt
 
Besser mit Random(6) + 1 ;)

MrMyagi 4. Jan 2008 12:52

Re: Random Befehl spielt verrückt
 
Richtig, mit
Delphi-Quellcode:
Random(6) + 1;
müsste es eigendlich klappen.
Da man soweit ich weiß mit Random(6) alleine
keine 6 erzeugen kann, sondern höchstens eine 5,
da es im Zwischenbereich liegen muss.


mfG, Nico

abrosda 4. Jan 2008 12:52

Re: Random Befehl spielt verrückt
 
Benutze statt der Funktion random(6) lieber randomrange(1,6).
Random(6) liefert Dir Zufallswerte zwischen 0 und 6(!).
Außerdem solltest Du den Generator initialisieren, mit Randomize.

Falls es RandomRange nicht gibt:
Delphi-Quellcode:
a:= Round(Random(5) + 1);

STS301 4. Jan 2008 12:52

Re: Random Befehl spielt verrückt
 
dann zeigt er mir wieder keine 6 an :?:
und wenn ich (7)+1 eingebe zeigt er mir wieder manchmal nichts an

edit// ich habe ihn doch eh mit randomize initialisiert, oder?

MrMyagi 4. Jan 2008 12:54

Re: Random Befehl spielt verrückt
 
Mit
random(6)+1
müsste er eigendlich auch eine 6 anzeigen.

edit:
@ abrosda: randomize hat er benutze, zumindest oben im Beispiel :-D

DeddyH 4. Jan 2008 12:55

Re: Random Befehl spielt verrückt
 
Jetzt nimm schon endlich Random(6) + 1 :stupid:

fLaSh11 4. Jan 2008 12:55

Re: Random Befehl spielt verrückt
 
Zitat:

Zitat von abrosda
Random(6) liefert Dir Zufallswerte zwischen 0 und 6(!).

Random(6) beinhaltet auch die 0!

Zitat:

Zitat von abrosda
Außerdem solltest Du den Generator initialisieren, mit Randomize.

schau dir seinen QC an: er hat randomize; gestartet!

Zitat:

Zitat von abrosda
Delphi-Quellcode:
a:= Round(Random(5) + 1);

gibt keine 6 aus!


Zitat:

Zitat von STS301
dann zeigt er mir wieder keine 6 an :?:

Delphi-Quellcode:
f := Random (6) + 1;
muss funktionieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:08 Uhr.
Seite 1 von 3  1 23      

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