Zufaellige Objekte spawnen immer gleich

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Vinz

Betreff: Zufaellige Objekte spawnen immer gleich

BeitragMo, März 21, 2005 13:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, wie schon der Titel sagt in meinem code sage ich er soll ein objekt 10 mal zufallig innerhalb x und y zeichnen, nun sollte man doch annehmen das wenn man auf "Run" klickt jedes mal ein anderes Ergebnis erhaelt, was leider nicht der fall ist, weiss einer wo da der Fehler liegt? falls ihr den Code braucht, hier:

Code: [AUSKLAPPEN]
Graphics 640, 480, 2

Global Gegner1=LoadImage("Source_V1/1.0_front_Gegner.PNG")
MaskImage gegner1 ,255,0,255
Repeat

For gegner10=1 To 10
DrawImage Gegner1,Rnd(640),Rnd(480)
Next
WaitKey

Until KeyHit(1)
End



Danke fuer evtl.e Hilfe.

BladeRunner

Moderator

BeitragMo, März 21, 2005 13:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Liess dir mal die Beschreibung von Seedrnd() durch.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Vinz

Betreff: Thx

BeitragMo, März 21, 2005 14:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Thanks habs hinbekommen.

Code: [AUSKLAPPEN]
Graphics 640, 480, 2

Global Gegner1=LoadImage("Source_V1/1.0_front_Gegner.PNG")
MaskImage gegner1 ,255,0,255
Repeat

For gegner10=1 To 10
DrawImage Gegner1,Rnd(640),Rnd(480)
Next

WaitKey
Cls
SeedRnd(Zuf1)
zuf1=zuf1%+1
Print zuf1
Until KeyHit(1)
End


weiss zwar net ob das die beste loesung ist aber es funzt.
:x

BladeRunner

Moderator

BeitragMo, März 21, 2005 14:11
Antworten mit Zitat
Benutzer-Profile anzeigen
argh!
mach doch einfach zu Beginn einmal BlitzBasic: [AUSKLAPPEN]
SeedRnd(MilliSecs())


schwupp haste zufällige Zufallszahlen.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

diGGa

GruppenKaspar

BeitragMo, März 21, 2005 14:15
Antworten mit Zitat
Benutzer-Profile anzeigen
also wenn ich rnd in ner schleife laufen lassen sind die objekte immer woanders xD versteh nich warum das bei dir anders ist

Vinz

Betreff: .

BeitragMo, März 21, 2005 14:28
Antworten mit Zitat
Benutzer-Profile anzeigen
@bladeRunner
stimmt, das macht das der anfangswert geaendert wird, was ich gemacht habe ist wie digga gesagt hat in einer Schleife laufen lassen wobei sich das dann geaendert hat, was wiederum bedeudet das mein Quelltext vollkommen ueberfluessig war, ich glaube ich habe mich nicht einmal selbst verstanden.

Aber ich glaube dass ich jetzt endlich durchblicke.

Danke euch.

.:BotC:. Dennis

BeitragMo, März 21, 2005 15:11
Antworten mit Zitat
Benutzer-Profile anzeigen
eigenrlich wiess ich nich was das soll,
ich hab mal ein bischen mit Darkbasic geproggt und da war

rnd auch zufällig.

Da musste nicht erst der "zufall zufallswert" geändert werden.
User posted image

BladeRunner

Moderator

BeitragMo, März 21, 2005 15:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Es hat einen ganz simplen Hintergund. Zufallszahlen am Computer werden errechnet, sind also nicht wirklich "zufällig". Man füttert einen Algoritmus mit einer Zahl und der spuckt ne Zufallszahl aus. diese Zufallszahl wird auch gleich als "Samen" für die nächste Zahl genommen.
Natürlich hätten die Entwickler von BB direkt die Millisecs() als Samen für neue Zahlen nehmen können. ( Millisecs() liefert die Zeit in Millisekunden zurück die der Rechner läuft, und ist somit wohl wirklich nicht bei jedem gleich Wink). Aber mit dem definierbaren Samen hast interessante Möglichkeiten an der Hand:
Die Zufallskette ist reproduzierbar (zumindest an deinem Rechner) - es wird also möglich sehr simpel "Replays" zu programmieren, oder deine Daten mit Zufallsschlüsseln zu Sichern ... oder ...oder ...oder.

Und der eine Befehl zur Initialisierung macht niemand arm Wink
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

BIG BUG

BeitragMo, März 21, 2005 22:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Nicht zu vergessen, dass zufällig generierte Level durch Eingabe des Seeds wieder hergestellt werden können.
z.B. bei Siedler 1 gibts nur zufallsgenerierte Karten. Der Entwickler hat sich dann einfach ein paar Karten für die Kampagne rausgesucht und nur den entsprechenden Seed vorgegeben.

Auf Blitzcoder.com hat einer übrigens einen platformunabhängigen Zufallsgenerator ausgestellt:
http://www.blitzcoder.com/cgi-...etwist.zip
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group