Zufallszahlen immer gleich (Entwickler?)

Previous topic - Next topic

Joergpaul

Hallo,
vielleicht mache ich einen Gedankenfehler... Habe mal diese kleine Programm, zig mal durchlaufen lassen (mindestens 50 Mal  ::): Screen habe ich auf 1020 x 768 eingestellt...

FOR x=0 TO 14
FOR y=0 TO 14
// 225 Zufallszahlen zwischen 1 und 52
  LOCAL b=RND(52)+1
  PRINT b, x*64, y*48
NEXT
NEXT
SHOWSCREEN
MOUSEWAIT

Das Programm gibt 225 Zufallszahlen aus. Aber: Es gibt bei mir nur zwei Varianten aus, und beide sind IMMER gleich (alle Zahlen) - entweder in der ersten Bildschirmausgabe oder der zweiten.
Mir ist das aufgefallen, weil mir bei meinem Erstlings-kartenspiel nur zwei verschiedene Kartenvarianten gegeben werden, immer die selben. Kann doch nicht sein, oder bin ich so blöd, dass ich vor Scham in den Boden versinken müsste  :O. wenn ja, sofort die Wahrheit sagen (bitte)... Ich bin hart im nehmen  :help:

LG aus Berlin Jörg

Asmodean

Hallo,

vielleicht versteh ich die Frage falsch, aber bei mir ändern sich die Zahlen.
Ich habe eine While-Schleife um dein Programm gelegt und immer wenn ich einen Maus-Klick mache stehen da an jeder Postion andere Zahlen.

Vielleicht ein Fehler in dem restlichen Programm?

Joergpaul

Mhm, also das vollständige Programm sieht so aus:

SETSCREEN 1020, 768, 1
LOADBMP "titel.bmp"
SHOWSCREEN
LOADFONT "nfont.png", 1
SETFONT 1
FOR x=0 TO 14
FOR y=0 TO 14
// 225 Zufallszahlen zwischen 1 und 52
  LOCAL b=RND(52)+1
  PRINT b, x*64, y*48
NEXT
NEXT
SHOWSCREEN
MOUSEWAIT

Liegt das etwa an dem SHOWSCREEN-Befehl? Ich habe nochmal getestet, immer derselbe Effekt.

Danke für die Antwort!!!  :good:

LG aus Berlin Jörg

Asmodean

Ich habe mal drei Durchläufe gemacht und das als Bild angehängt. Vielleicht reden wir irgendwie aneinander vorbei :). Aber für mich sieht das alles Unterschiedlich aus.

[attachment deleted by admin]

D2O

Das Zauberwort heist SEEDRND

Code (glbasic) Select
SETSCREEN 1020, 768, 1

SEEDRND GETTIMERALL()  ///<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

LOADBMP "titel.bmp"
SHOWSCREEN
LOADFONT "nfont.png", 1
SETFONT 1
FOR x=0 TO 14
FOR y=0 TO 14
// 225 Zufallszahlen zwischen 1 und 52
  LOCAL b=RND(52)+1
  PRINT b, x*64, y*48
NEXT
NEXT
SHOWSCREEN
MOUSEWAIT
I7 2600K; 8 GB RAM ; Win10 Pro x64 | NVidia GTX 750 TI 2048MB ; Realtec OnBoard Sound;
Lenovo ThinkPad T400: XP Pro
GLB Premium-immer Aktuell

Joergpaul

Hallo,

vielen Dank für Eure Antworten! Also mit dem SEEDRND GETTIMERALL () klappt das ausgezeichnet bei diesem Programm. Super! Jetzt muss ich noch die richtige Stelle in meinem Kartenspiel finden, wo ich den Befehl einfüge. scheint wohl wichtig zu sein, denn an Anfang eingesetzt, kommen immer noch die gleichen Karten auf den Bildschirm. Na ja, wahrscheinlich typisch Einsteigerfehler...
LG aus Berlin Jörg