Entwickler-Ecke
Algorithmen, Optimierung und Assembler - kaputtes random?
en!gma - Do 25.08.05 23:59
Titel: kaputtes random?
hi!
ich wollt mich mal an einem mastermind clon probieren.
ich wollte erstmal oben eine reihe erstellen lassen mit 5 zufällig ausgewählten farben.
also rufe ich diese prozedur ganz am anfang auf:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TForm1.zufallsFarben(number:integer); var img : Timage; randomNr,i:integer; begin for i := 89 to 88+number do begin img := TImage(FindComponent('image' + inttostr(i))); if img <> nil then begin randomNr:=random(3)+1; img.Picture.Bitmap.LoadFromFile('skins\standard\color'+intToStr(randomNr)+'.bmp'); img.Hint:=intToStr(randomNr); end; end; end; |
89-88+number sind halt die bilder die in der obersten reihe sind.
das +number ist dafür gut, falls ich später die anzahl der spalten angeben möchte.
nur bekomme ich bei diesem random nun IMMER die farben
1 1 2 1 1 2 1 1
wieso?
was ist falsch?
random(3) sollte doch 0-2 ausgeben. +1 sollte also 1-3 ergeben.
also color1/2/3.bmp....
wenn ich das random(3)+1 anstatt dem randomNR einsetze, kommt zwar ein anderes ergebnis raus, aber trotzdem bleibt dies immer das selbe.
achja und bevor jemand fragt, ich speicher in hint nur die farbe der kugel ab.
denn hint brauch ich ja sonst nicht bei einem image.
jemand ne idee?
danke schonmal.
Amateur - Fr 26.08.05 00:02
hm haste randomize irgendwo?
bei mir klappt randomNr:=random(3)+1; in ner button methode, bekomme zahlen von 1 bis drei... auch ohne randomize...
speicher einfach ma und start delphi neu viell nen bug
en!gma - Fr 26.08.05 00:03
nein
eigentlich nur das was oben steht.
ich ruf das ganze aus dem form create auf.
Amateur - Fr 26.08.05 00:06
mach halt ma randomize gleich als erstes in die create methode
viell gehts ja
en!gma - Fr 26.08.05 00:08
yeah das wars schon danke.
war mir auch neu dieses randomize.
thx nochmal
Delete - Fr 26.08.05 00:29
en!gma hat folgendes geschrieben: |
war mir auch neu dieses randomize. |
Dan habe ich noch was neues für dich: Die Delphi Hilfe. Und da steht, man mag es kaum glauben, bei
Ramdom:
Zitat: |
To initialize the random number generator, add a single call Randomize or assign a value to the RandSeed variable before making any calls to Random.
|
:roll:
Warum fragst du also hier im Forum? In der Hilfe steht doch schon alles. Und wenn ich mit einer Delphi Funktion nicht klar komme oder sie Probleme bereitet, dann ist meine erste Anlaufstelle
immer die Hilfe.
en!gma - Fr 26.08.05 13:43
sorry hab nur kurz in die delphi hilfe geschaut und bin mal drübergeflogen.
hab das wohl übersehen
uall@ogc - Fr 26.08.05 13:56
trotzdem sollte auch bei nicht vorherigem setzen von randseed bzw aufrufen von randomize werte von 0-2 rauskommen
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!