Stringwith

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Serdon

Betreff: Stringwith

BeitragDo, Feb 09, 2012 22:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo allerseits
Ich habe mich wie schonmal gesagt ja jetzt an ein kleines Strategiespiel gewagt und habe gleich mal mit einem zufallsmapgenerator angefangen auf der Map sollen Bäume, Felsen, Ruinen, Büsche ... per zufall verteilt werden. Da es aber ständig vorkam dass dann ein Felsen über zwei Bäumen lag usw... habe ich mir über legt, mache ich z.B. kleine Waldgebiete mit Stringwith sodass die map jedesmal ein bisschen anders ausieht. aber z.B. es keine heillosen Durcheinander mehr gibt.
Mein Code (ersmal nur für Bäume sieht jetzt so aus:
Code: [AUSKLAPPEN]


Graphics 1024,768
SetBuffer BackBuffer() 
Gras = LoadImage("Gras.bmp")
TileBlock Gras
Baum1 = LoadImage("Baum1.bmp")
Viewport 100,100,200,200
While Not KeyHit(1)                                 
SeedRnd MilliSecs()
For t=1 To 1
DrawImage Baum1, Rand(60),Rand(60)
Next
Flip
Wend
WaitKey
End

Aber irgendwie greift der Code nicht... Ich weiß, die Lösung ist alles andere als elegant, aber ich würde ohnehin ganz gerne meinen Fehler erfahren. Fals jemand eine bessere und vor allem einfache Lösung hat, fänd ichs nett wenn er es mir genaustens erklären könnte.
Danke schonmal im Vorraus.
 

PacMani

BeitragDo, Feb 09, 2012 22:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
For t = 1 To 1
    DrawImage(Baum1, Rand(60), Rand(60))
Next


Diese Schleife wird nur einmal durchlaufen, da t schon beim ersten Durchlauf 1 ist und die Schleife bei größeren Werten endet.
Da du dir die Schleife demnach auch sparen könntest, denke ich, dass das nicht gewollt ist.
 

Serdon

BeitragDo, Feb 09, 2012 22:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Was soll ich stattdessen schreiben ?

Xeres

Moderator

BeitragDo, Feb 09, 2012 22:44
Antworten mit Zitat
Benutzer-Profile anzeigen
SeedRnd MilliSecs() gehört einmalig vor die Schleife, ansonsten wird der Zufallsgenerator immer wieder neu initialisiert und du bekommst immer wieder die exakt gleichen zufälligen Koordinaten (bis 1 Millisekunde vergangen ist).
Wenn du immer wieder das selbe Zufallsmuster bekommen willst, musst du den Zufallssamen auch konstant lassen.

Was hat das alles überhaupt mit Stringwidth zu tun? Da sehe ich keine Verbindung zu.
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
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

PacMani

BeitragDo, Feb 09, 2012 22:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Stimmt, das mit SeedRnd habe ich garnicht gesehen. Vermutlich, weil der Code nicht eingerückt und somit schlecht lesbar ist.

ozzi789

BeitragFr, Feb 10, 2012 16:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab keine IDE zur Hand, sollt aber so etwa aussehn

Code: [AUSKLAPPEN]
Graphics 1024,768
SetBuffer BackBuffer()

Gras = LoadImage("Gras.bmp")
Baum1 = LoadImage("Baum1.bmp")

SeedRnd MilliSecs()

;Array erstellen
dim map(21,21)

;Array mit zufälligen daten füllen
for x=0 to 20
   for y=0 to 20
      map(x,y)=rnd(1)
   next
next

;Grösse der Bilder auslesen
Baum1_x=imagewidth(Baum1)
Baum1_y=imageheight(Baum1)

Gras_x=imagewidth(Gras)
Gras_y=imageheight(Gras)


While Not KeyHit(1)   
   cls           
        ;alle felder durchgehn
   For x=0 to 20
      for y=0 to 20
                       ;Zeichnen
         if map(x,y)=1
            DrawImage Baum1,x*Baum1_x,y*Baum1_y
         endif
         if map(x,y)=0
            DrawImage Gras,x*Gras_x,y*Gras_y
         endif
      Next
   next
   Flip 30
Wend


WaitKey
End



Grüsse Wink
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Hubsi

BeitragFr, Feb 10, 2012 17:47
Antworten mit Zitat
Benutzer-Profile anzeigen
ozzi, ich weiß nicht recht ob es ihm in naher Zukunft helfen kann wenn man halbgare Codes in den Raum schmeisst? Ist echt nicht böse gemeint und ich weiß das es nur mal eben im Forum runtergetippt war, aber Serdon beginnt gerade bei Vollnull, da ist sowas in meinen Augen einfach in die falsche Richtung wirkend Smile
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group