PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Delphi`s PseudoRandom Hilfe


dcAlge
2004-05-06, 19:48:56
also ich hab ein programm geschrieben mit ein paar punkten auf einem image die sollten sich jetzt alle zufällig bewegen in irgendeine richtung dabei hab ich random(8) für die acht nebenliegenden pixels genommen. wenn ich dass jetzt laufen lasse bewegen sich die dinger aber ziemlich regelmäßig.. ich bin darauf gekommen dass es vielleicht daran liegen könnte dass ich ein delay(50) eingebaut hab. könnte es sein dass dadurch random immer dasselbe ausspuckt. bei delay(50) drehen die sich im kreis bei delay(70) bewegen die sich auch irgendwie kreisförmig aber eben nich genau kreisförmig.

wie kann ich das umgehen?!

danke im vorraus für die antworten
dcalge

j565w4j
2004-05-06, 20:03:35
Ich kenn jetzt Delphis Zufallsgenerator nicht, aber wenn du mit Random(8) arbeitest, gehe ich davon aus, dass das die Zufallszahlen zwischen 1 und 8 ergeben soll. Das sind ja nur 8 verschiedene Möglichkeiten.

Erweitere doch das Spektrum, in dem du mit hohen Randomwert arbeitest, z.B. Random(800). Alle Werte zwischen 1 und 100 stehen für Richtung 1, 101 bis 200 für Richtung 2 usw. Da kommt jede Richtung öfters mehrmals vor.

Außerdem solltest du den Zufallsgenerator bei jedem Programmstart neu initialisieren. Bei anderen Programmiersprachen geht das ungefähr so: Randomize(Timer()). Das startet den Zufallsgenerator mit dem Zeitwert der seit Mitternacht vergangenen Sekunden. Also bei jedem Start ein anderer Wert.