Rnd Zufallszahl zum zweiten :)

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Elias0111

Betreff: Rnd Zufallszahl zum zweiten :)

BeitragFr, Dez 28, 2012 23:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo zusammen!

Ich möchte in einem programm eine zahl zufällig generien die den y-koordinatenwert ändert.

Ich dachte es würde Rnd gehen, allerdings generiert er bei jedemmal die gleiche Zahl.

Hier die stelle

If x1 > 790 Then
gx = -1
gy= Diese Zahl soll zufällig von 0-2 mit einer nachkomma stelle sein
EndIf

Danke schonmal!
 

PhillipK

BeitragFr, Dez 28, 2012 23:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenns nur daran liegt, das jedesmal die selbe zufallszahl kommt, dann:

zufallszahlen in programmiersprachen sind keine tatsächlichen zufallszahlen.
Das sind simple zahlen die aus einem wert errechnet werden. Dieser wert ändert sich stetig nach dem aufrufen.
Diese "Zahl" aus der gerechnet wird nennt man seed.
Das heißt, das setzen eines anderen seeds würde dir helfen.
Aber wie? Tja. Da gibt es nur eine brauchbare möglichkeit: Zeit.
Gängig ist die Millisecs() zeit, die zeit seit dem PC start in Millisekunden.

Für den anfang reicht das Smile
Hier:
BlitzBasic: [AUSKLAPPEN]

SeedRnd MilliSecs ()


(edit: das solltest du ganz zu anfang in dein programm eintragen, wenn du immer neue zufallszahlen möchtest. Denk an diese funktion, sie kann hilfreich zum debuggen sein, indem du zb immer einen fixwert verwendest um das ergebnis zu überprüfen.)
  • Zuletzt bearbeitet von PhillipK am Fr, Dez 28, 2012 23:13, insgesamt einmal bearbeitet

Holzchopf

Meisterpacker

BeitragFr, Dez 28, 2012 23:12
Antworten mit Zitat
Benutzer-Profile anzeigen
SeedRnd vergessen? In der Praxis hat sich als Parameter Millisecs bewährt Smile

mfG

Edit
Schäm dich, Phillip! Einfach so schneller zu sein Mad
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

diceman

BeitragSa, Dez 29, 2012 13:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Und ganz wichtig:

den SeedRnd Millisecs()-Befehl nur ein einziges Mal am Anfang des Programmes setzen!
Das reicht aus, bzw. alle weiteren Aufrufe generieren im schlimmsten Falle keine Zufallszahlen mehr, sondern deterministische Sequenzen!
Siehe hierzu auch dieses sehr schöne Tutorial von PacMani:
Der Zufallszahlengenerator und seine falsche Verwendung
Now these points of data make a beautiful line,
And we're out of Beta, we're releasing on time.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group