Zufallszahlen überprüfen
Übersicht

BluejuceBetreff: Zufallszahlen überprüfen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi Leute,
ich versuche gerade 50 Bilder zufällig auf dem Bildschirm erscheinen zu lassen. Die Koordinaten habe ich vorher in einer zufälligen Reihenfolge mit "Rand" erstellt und in zwei Dim-Felder gespeichert. Dadurch entstand folgendes Problem. Einige der Bilder lagen nach der Berechnung übereinander. Wie kann ich die Zahlen so überprüfen lassen das diese einen Mindestabstand von 10 Zahlen haben, da die Bilder 10x10 Pixel gross sind? Würde mich sehr über eure Hilfe freuen. |
||
DjDETE |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Die Maximale x und y koordinate durch 10 teilen (beim zufall berechnen also anstat rand(100,100) rand(10,10) und dann beim Drawen wieder mit 10 multiplizieren...
müsste funktionieren MfG DjDETE |
||
Aktuelles Projekt: XXX |XXX | 3% der v1b fertig
www.emu-soft.de.vu Für die Homepage suche ich noch Linktauschpartner, bei Interesse einfach melden. |
Bluejuce |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hey DjDETE,
danke für die sehr schnelle antwort ![]() Genau das habe ich gesucht. Funktioniert super. |
||
DjDETE |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
kein Problem ![]() |
||
Aktuelles Projekt: XXX |XXX | 3% der v1b fertig
www.emu-soft.de.vu Für die Homepage suche ich noch Linktauschpartner, bei Interesse einfach melden. |
Shark |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Bei DJDetes Lösungsansatz gibt es nur noch ein Problem es können Bilder von andern Bilder überzeichnet werden...
Falls du das nicht willst musst du testen ob schon ein Bild auf dem feld ist wenn ja dann musst du mithilfe von Goto nochmal eine Zufallszahl auswählen ![]() mfg Shark |
||
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mach es lieber so (Statt mit GOTO ![]() Code: [AUSKLAPPEN] For i = 1 to 50
weiter = 0 While weiter = 0 xx = Rand(10) yy = Rand(10) anz = 0 For j = 1 to 50 If xx = xPos(j) And yy = yPos(j) then ;Wenn ungleiche Positionen anz = 1:Exit;Sagen, dass gleich sind EndIf Next If anz = 0 weiter = 1 Wend xPos(i) = xx yPos(i) = yy Next So geht das gaaaanz einfach ![]() mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
DjDETE |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ähm die Bilder können sich nicht überschneiden, da sie ja immer im abstand von 10 Pixeln sind, und die Bilddateien ja ebensoviele hoch/breit sind. | ||
Aktuelles Projekt: XXX |XXX | 3% der v1b fertig
www.emu-soft.de.vu Für die Homepage suche ich noch Linktauschpartner, bei Interesse einfach melden. |
Shark |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Die meisten haben Angst vor Goto pfff ![]() Zitat: Ähm die Bilder können sich nicht überschneiden, da sie ja immer im abstand von 10 Pixeln sind, und die Bilddateien ja ebensoviele hoch/breit sind.
Was ich damit meine ist, dass es doch sein kann, dass eine Zufallszahl gleich der vorherigen ist.... Zum Beispiel: 1. Zahl 2 2. Zahl 5 3. Zahl 2 So jetzt ist die Zahl 2 doppelt und das Bild wird ja wohl jetzt vom andern Bild übermalt.... mfg Shark |
||
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was er meint ist das :
Code: [AUSKLAPPEN] xPos(1) = 5
yPos(1) = 5 xPos(2) = 5 yPos(2) = 5 For i = 1 to 2 DrawImage BILD,xPos(i)*10,yPos(i)*10 Next Bild 1+2 Überschneiden sich ![]() mfg ToeB Edit: Zu langsam... |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
Shark |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habe mal eine Alternative zu Toebs Code geschrieben, die ich persönlich finde und du kannst es sofort testen ![]() Ich hoffe du lernst draus, indem du den Code verstehst ![]() Code: [AUSKLAPPEN] Graphics 640,480,16,2
SetBuffer BackBuffer() ;Dadurch ist der nachfolgende Code schneller, ;weil öfters nicht die gleiche Zahl nacheinander ;entsteht... größere Chance das ein Feld noch nicht ;besetzt wird ;) SeedRnd = MilliSecs() Dim map(10,10) For z = 1 To 50 .start map_x = Rnd(10) map_y = Rnd(10) ;Es wird getestet ob ein Feld schon mit einer Grafik ;besetzt ist, falls nicht, dann wird das Feld durch ;den Wert 1 gesetzt If map(map_x,map_y) = 1 Then Goto start Else map(map_x,map_y) = 1 EndIf Next ;Die Bilder werden gezeichnet Color 255,0,0 For x = 1 To 10 For y = 1 To 10 If map(x,y) = 1 Then Rect x*10,y*10,10,10 EndIf Next Next Flip WaitKey() End mfg Shark |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group