Random liefert immer gleiche Zahlen

Es scheint wie verhext zu sein. Der random-Befehl spuckt IMMER die gleichen Zahlen aus. Mindestens die ersten fünf einer Reihe stimmen immer überein. Ist es in Wirklichkeit gar kein „Zufallsgenerator“ sondern arbeitet nach einem Logarithmus?

Ich werd meschugge. Mit Delphi gibts keine Probleme. Auch scheint mir das Ziehen der gleichen Farbe nacheinander bei dem unten abgebildeten Code viel zu häufig. 5 bis 6 mal ist keine Seltenheit. Da stimmt was nicht.

(Bitte keine Mecker über Labels :smile: ich finds übersichtlich)

program Roulette;
uses crt,dos;

var
key:char;
Number,tipp,i:byte;
count,credit:integer;
Chance: array[0…36]of integer;
label menue,ziehen,ende;

BEGIN
credit:=100;

menue:
key:=readkey;
CASE key OF
‚j‘:goto ziehen;
‚n‘:goto ende;
END;

ziehen:
for i:=1 to 1 DO BEGIN {zweite Eins später durch Var. erstzen}
count:=count+1;
credit:=credit-1;
if odd(count) then Tipp:=1 else Tipp:=2
Number:=random(37);
Chance[Number]:=Chance[Number]+1;
CASE Number OF
0:textcolor(10);
1,3,5,7,9,12,14,16,18,19,21,23,25,27,30,32,34,36:BEGIN textcolor(12); if Tipp=1 then credit:=credit+2; END; {ROT}
2,4,6,8,10,11,13,15,17,20,22,24,26,28,29,31,33,35:BEGIN textcolor(8); if Tipp=2 then credit:=credit+2; END; {SCHWARZ}
END;
writeln(Number,’ ',credit);
END;
goto menue;

ende:
clrscr;
FOR i:=0 TO 36 DO
BEGIN
textcolor(15);
writeln(i,’ ',(Chance[i]));
END;
readln;

END.

Hehe, ich hab mir grad gedacht, schau einfach mal in das Forum, vlt. weißt du ja noch was von früher!

Wenn du ganz am Anfang des Programms
randomize timer
eingibst, sollte es klappen.
Hintergrund: du kannst dir auch deinen eigenen zufallszahlengenerator schreiben, aber hier soll timer genutzt werden.

hoffe das klappt!

Ohhhh autsch. In der Tat… das war der Haken. Ich Dummerchen.

Wenn du ganz am Anfang des Programms
randomize timer
eingibst, sollte es klappen.

Hintergrund: du kannst dir auch deinen eigenen
zufallszahlengenerator schreiben, aber hier soll timer :genutzt werden.

Wie das gehen soll ist mir Neu. Hast du da Infos drüber?

Danke für die Hilfe.

Wie das gehen soll ist mir Neu. Hast du da Infos drüber?

also, timer ist eine Funktion. Wenn du dir eine eigene Funktion bastelst, die verschiedene Werte ausgibt (z.B. durch einlesen eines Sensors der ein Rauschen auswertet), kannst du diese Funktion hinter Randomize setzen, um echte Zufallszahlen zu bekommen.
siehe auch: http://de.wikipedia.org/wiki/Physikalischer_Zufallsz…

Probiert hab ich es nicht, aber es müsste eigentlich gehen.

Viel Spaß!