![]() |
Zufallsgenerator für einen Würfel in C
Ich bräuchte in C einen Würfelzufallsgenerator der mir bei jedem Aufruf der Funktion eine neue 4er Kette von Zufälligen Zahlen bringt die zwischen 1 und 6 liegen. Also praktisch wie bei einem Würfel. Meine bisherigen bemühungen mit random() %7 brachten leider immer die gleichen Zahlen zum Vorschein.
|
du musst den seed setzen.
schau dir srandom(int seed); an wenn du den seed auf die systemzeit stellst, hast du jedesmal eine andere kette. |
Das funktioniert ja alles sehr gut nur hab ich das Zeug in einer Funktion stehen und die Funktion führ ich einfach 4 mal durch eine Schleife aus. Jetzt hab ich zwar eine Zufallszahl aber 4x die gleiche. Es sollten aber 4 völlig unterschiedliche zwischen 1 und 6 Befindliche sein.
Meine Zufallsgeneratorfunktion sieht jetzt so aus: Code:
srandom( time(0) ); Code:
for (x=0; x<4; x++) |
folgendes, du musst "srand(7);" am anfang der funktion schreiben dann sollts gehn
|
hab noch was gefunden und glei scanned
*edit: hoppla des mit dem anhängen von dateien funktioniert woll nicht!* |
noch ein versuch
*edit: es hat geklappt!!* |
dein problem ist folgendes:
da die schleife innerhalb kürzester zeit ausgeführt wird, ändert sich time net. dadurch setzt du innerhalb der funktion den seed (== ungefähr sowas wie der startpunkt der randomfunktion) merksatz: seed einmal setzen, dann kriegt man mit rand() zufallszahlen. |
Jetzt hab ichs so gemacht, dass ich srand(time(0)); einfach in die main Funktion gegeben hab noch vor des Schleifenaufrufs mit der Zufallsfunktion. Jetzt funktionieren das generieren der Zufallszahlen so wie es sollte nur sind ab und zu immer 0en drin was nicht sein sollte. Ich wollte rand() % 0+7 setzen aber das geht mit der 0 anscheinend nicht.
Jemand eine Lösung hierfür? |
Zitat:
|
Zitat:
rand()%6 + 1 = {1,2,3,4,5,6} @Dane rand()%1 ergibt immer 0 rand()%1 + 7 => immer 7 |
Alle Zeitangaben in WEZ +2. Es ist jetzt 13:29 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag