![]() |
Random funktion mit variabel?
Hallo erstmal
leute ich habe ein kleines Problem: Ich spiele seit einer gewissen zeit mit der Randomize sach rum. nun bin ich an ein problem gestossen. erstmal den quelltext:
Delphi-Quellcode:
nun ich möchte in einem Feld eine zahl eingeben, welche dann die Grösse des "würfels" definiert.
procedure TForm1.Alles_WuerfelnClick(Sender: TObject);
var a,b,c,d,e,f,g,h,i,j:real ; randomize; //Zufallszahl für alle gleichzeitig a:=random (6)+1; b:=random (6)+1; c:=random (6)+1; d:=random (6)+1; e:=random (6)+1; f:=random (6)+1; g:=random (6)+1; h:=random (6)+1; i:=random (6)+1; j:=random (6)+1; ich habs mal mit variabel einfügen probiert(variabel anstadt die zahl 6), futzte aber nicht... kann jemand helfen? :coder2: danke schonmal im vorraus EDIT: Sorry admins, kann man den thread ins richtige thema verschieben? |
Re: Random funktion mit variabel?
wie ich das sehe benutzt du Variablen vom Typ "real", wahrscheinlich hast die auch bei Random versucht zu verwenden oder?
Probier das mit einer Integer-Variablen. |
Re: Random funktion mit variabel?
Hi Hofnar!
Wenn ich deinen Code erweitere kommt etwa sowas raus:
Delphi-Quellcode:
Dieses Vorgehen ist aber ... naja sagen wir ... unschön.
procedure TForm1.Alles_WuerfelnClick(Sender: TObject);
var a,b,c,d,e,f,g,h,i,j:real ; SizeWuerfel : Byte; begin SizeWuerfel:=25; randomize; //Zufallszahl für alle gleichzeitig a:=random (SizeWuerfel)+1; b:=random (SizeWuerfel)+1; c:=random (SizeWuerfel)+1; d:=random (SizeWuerfel)+1; e:=random (SizeWuerfel)+1; f:=random (SizeWuerfel)+1; g:=random (SizeWuerfel)+1; h:=random (SizeWuerfel)+1; i:=random (SizeWuerfel)+1; j:=random (SizeWuerfel)+1; end; Ich will dir hier nicht gleich kompletten Code vor die Tastatur werfen. Deswegen nur ein Hinweis: Vielleicht (sicher) macht es sich gut, eine Klasse TWuerfel zu erstellen. Wenn du dazu weitere Tips brauchst, sag "Bescheid" :) |
Re: Random funktion mit variabel?
Randomize sollte nur einmalig im Programmablauf aufgerufen werden und nicht ständig bei jedem Click. Daher bewege Randomize in das OnCreate oder OnShow Ereignis deines Formulars.
PS: irgendwie völligst die falsche Abteilung? Was hat das mit der Delphi IDE zu tun? |
Re: Random funktion mit variabel?
Es reicht doch wenn die Variablen auch vom Typ Byte sind. :)
Delphi-Quellcode:
MfG
var
a, b, c, d, e, f, g, h, i, j: Byte; freak |
Re: Random funktion mit variabel?
ich hätte es so gemacht:
Delphi-Quellcode:
procedure TForm1.Alles_WuerfelnClick(Sender: TObject);
const coSize = 6; var A: array[0..9] of Byte; I: Byte; begin for I := Low(A) to High(A) do A[I] := Random(coSize)+1; end; |
Re: Random funktion mit variabel?
Musst du denn die Werte alle speichern?
oder reicht es nicht wenn du am ende einfach die summe hast?
Delphi-Quellcode:
Und zum Schluss:
function Wuerfeln(Wuerfel, Anzahl: Integer):Integer;
var i: Integer; begin Result:=0; for i:=1 to Anzahl do Result:=Result+Random(Wuerfel)+1; end; Real sollte nicht mehr verwendet werden, nimm lieber (wenn schon Fließkomma) Single, Double oder Extended. Warum? afaik weil Real reichlich subobtimal in der Performance ist weil es 48 Bit ist (???). Richtig? |
Re: Random funktion mit variabel?
hmm... ich habe mal deinen Hinweis umzusetzen versucht... und das ist dabei rausgekommen:
Delphi-Quellcode:
aber funzen tuts net richtig so...
Procedure TForm1.Alles_WuerfelnClick(Sender: TObject);
var a,b,c,d,e,f,g,h,i,j:real ; va:byte; va:=strtoint(sz.Text); randomize; //Zufallszahl für alle gleichzeitig a:=random (va)+1; b:=random (va)+1; c:=random (va)+1; d:=random (va)+1; e:=random (va)+1; f:=random (va)+1; g:=random (va)+1; h:=random (va)+1; i:=random (va)+1; j:=random (va)+1; @chaosben gib nir nochma ein tipp bittöööö ^^ @muetze1 1.doch sollte bei jedem klick eine random zahl ausgeben 2.war mir klar hab ich aber erst nach dem schreiben bemerkt... ich hab die admins ja noch gebeten den thread zu verschieben @glkgereon mir war leider bis heute nur Int und Real bekannt... was ist den der Unterschied? aussser die bit? |
Re: Random funktion mit variabel?
Zitat:
Randomize initialisiert den Globalen zufallsgenerator, und wenn man ihn nochmal initialisiert wird er nicht wirklich zufälliger. einmal im OnCreate und gut ist. |
Re: Random funktion mit variabel?
@glkgereon
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:08 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