Rand-Problem
Übersicht

FluppeBetreff: Rand-Problem |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo zusammen.
Ich habe ein Problem mit Rand. Bisher habe ich mit Rand(x,y) immer Zufallszahlen von x bis y erhalten. Jetzt allerdings funktioniert es scheinbar in einer Schleife nicht. Dort will ich drei Instanzen eines Types erzeugen und einem Feld jeweils einen Zufallswert zuweisen. Dabei bekomme ich allerdings keine Zufallszahlen. Der Code: Code: [AUSKLAPPEN] Select item.itemtype
Case 7 ' Multiball! For Local i:Byte = 1 To 3 Local b:TBall = New TBall b.winkel=Rand(220,320) BallList.AddLast(b) Next EndSelect Wieso bekomme ich hier keine Zufallszahlen? Wie gesagt: Im sonstigen Programmverlauf funktioniert die Erzeugung von Zufallszahlen einwandfrei. SeedRnd ist im Programmkopf als MilliSecs() deklariert... |
||
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was meinst du mit "Es funktioniert nicht"?
Fehlermeldung? Immer der Gleiche wert? |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
- Zuletzt bearbeitet von Smily am Sa, Aug 09, 2008 17:47, insgesamt einmal bearbeitet
Fluppe |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Smily0412 hat Folgendes geschrieben: Was meinst du mit "Es funktioniert nicht"?
Fehlermeldung? Immer der Gleiche wert? Genau, immer der gleiche Wert, allerdings ist DER dann tatsächlich zufällig. Also nur ein Zufallswert, der aber dafür in allen drei Instanzen. |
||
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
An deinem Codeschnipsel ist alles in ordnung. Lass mal b.winkel ausgeben. | ||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
Fluppe |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Smily0412 hat Folgendes geschrieben: An deinem Codeschnipsel ist alles in ordnung. Lass mal b.winkel ausgeben.
Den Wert brauch ich nicht ausgeben lassen: Ich sehe ja an den Bällen, dass es zwar drei Stück sind, die jedoch alle denselben Winkel haben (wenn auch immer einen anderen, der im Bereich der Zufallszahlen liegt). Allerdings sieht man erst beim Aufprall, dass es tatsächlich drei Bälle sind, da sie sich dann erst auch visuell voneinander unterscheiden lassen.) Könnte es vielleicht daran liegen, dass die Schleife in einem Programmdurchlauf abgearbeitet wird, ohne einen neuen millisecs- bzw Rand-Wert nachzuliefern? Das wäre zumindest eine Erklärung. Obwohl ich das eigentlich nicht glaube, dann könnte ich ja in bestimmten Schleifen prinzipiell keine Zufallszahlen erzeugen. Oder dass die Abfrage in einer Select-Abfrage passiert? Sollte doch eigentlich nicht der Fall sein, oder? |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Zufallsberechnung verwendet immer das letzte Ergebnis als Startwert, insofern ist es egal wieviel Zeit zwischen dem "Würfeln" vergeht. Vielleicht gibt es noch andere Winkelveränderungen die du durchführst? | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Fluppe |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Xeres hat Folgendes geschrieben: Die Zufallsberechnung verwendet immer das letzte Ergebnis als Startwert, insofern ist es egal wieviel Zeit zwischen dem "Würfeln" vergeht. Vielleicht gibt es noch andere Winkelveränderungen die du durchführst?
Edit: Ne, so will das auch nichts werden. Die Winkel stimmen schon... sorry, da werd ich noch mal basteln müssen... meld mich, wenn es Klarheit gibt. Muss jetzt erstmal einkaufen ![]() |
||
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
Poste mal die komplette relevante schleife bzw das Programm | ||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
Fluppe hat Folgendes geschrieben: Smily0412 hat Folgendes geschrieben:
An deinem Codeschnipsel ist alles in ordnung. Lass mal b.winkel ausgeben.
Den Wert brauch ich nicht ausgeben lassen: Ich sehe ja an den Bällen, dass es zwar drei Stück sind, die jedoch alle denselben Winkel haben kostet ja trotzdem nix...vllt liegt der fehler ja noch woanders |
||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
Fluppe |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Smily0412 hat Folgendes geschrieben: Poste mal die komplette relevante schleife bzw das Programm
Ok, Problem gelöst. Trivialerweise werden die Winkel von der Kollision mit dem Spieler wieder überschrieben. Ein Offset von einigen Pixeln hat das Problem gelöst. Cheers - und sorry wegen dem Generve. |
||
NuberBetreff: SeedRnd Millisecs() oder so |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hatte auch eine Zufallsroutine mit dem ähnlichen Problem.
Letztlich waren über drei Iterationen kaum veränderte Werte. Wenn man den SeedRnd Millisecs() (oder wie auch immer) Befehl/Einstellung benutzt werden die Zahlen zufälliger. Mein Tipp. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group