FORUM, Forum Discussion, Forum Gratuit, Nom de domaine, Nom de domaine gratuit, Redirection gratuite,

Forum DCreload  : Tout (ou presque:) sur la seconde vie de la dreamcast Administrateurs :oggy, Cédric
Forum DCreload : Tout (ou presque:) sur la seconde vie de la dreamcast
Non connecté | Se connecter
en ligne : Il y a 6 connectés. Cliquez pour voir la liste
Inscription Inscription | Profil Profil | Messages Privés Messages Privés | Recherche Recherche | Online Online | Aide Aide | Créer un blog gratuit

forum Index du forum forumLa programmation forumrand()

Auteur : Sujet: rand()  Bas
 lafleche
 Messages postés : 26
 saucisses
  Posté le 05/06/2009 12:05:01
Send a private message to lafleche
Salut,

Mon petit jeu sous Kos avance pas mal (une adaptation de l'antique gorilla en 3D), mais j'ai un soucis avec la génération de nombre aléatoires.
J'utilise un code du style :  slope = rand %6;
et en déboguant je constate que, en émulant sous nulldc ou chankast, j'obtiens toujours la même valeur (5).
Pareil pour mes immeubles de tailles aléatoires qui sont identiques d'une exécution à l'autre.
Quelqu'un a-t-il une idée ?
Je me souviens avoir déjà vu sur d'autres plateformes une initialisation du moteur de génération (genre : random_seed ...), mais je suis surpris car les exemples de Kos ne font rien de particulier.
J'ai pensé que c'était dû à l'émulation , mais du coup ça me surprendrait d'avoir exactement la même chose entre chankast et nulldc ...

 Bouz
 Messages postés : 650
 choucroutes + bière
 Bouz
  Posté le 06/06/2009 23:19:23
Send a private message to Bouz
Il n'existe pas vraiment de génération aléatoire de valeurs. Il existe simplement un algo qui rend des suites de nombres pseudo aléatoires. Ces suites sont accessibles via la fonction rand().
Avant d'appeler rand(), tu dois initialiser ta suite pseudo aléatoire avec un appel à la fonction:
void srand(unsigned int);
En gros, si tu n'appelles pas srand, c'est comme si tu l'appelais à chaque fois avec la même valeur.
Une bonne solution pour avoir une suite aléatoire est d'appeler srand en lui passant l'heure système!
Je me souviens avec émotion de l'équivalent en basic sur mon TO7 où cette fonction prenait en paramètre un chiffre entre 0 et 9. Du coup, les séquences aléatoire se ressemblaient souvent :-)

 lafleche
 Messages postés : 26
 saucisses
  Posté le 08/06/2009 17:13:16
Send a private message to lafleche
La vache, le TO7, tu dois être aussi vieux que moi !
J'en avais un également, je passais des plombes à rentrer des programmes que je récupérais soit via des potes qui avaient des MO5, soit dans Jeux&Stratégies. Une fois sur deux je me tapais un "Out of Memory" ... faut dire que j'avais un TO7 "tout court", pas un TO7/70, et je devais faire avec genre 14Ko de RAM.
En tous cas merci pour le tuyau, j'essaye ça !

 Bouz
 Messages postés : 650
 choucroutes + bière
 Bouz
  Posté le 08/06/2009 22:29:08
Send a private message to Bouz
Hoho, moi, j'avais le 70, avec ses 64ko de RAM et ses connecteurs à l'arrière.
J'ai tapé des tonnes de programmes, et je pleurais de désespoir quand il se plantait à la sauvegarde (sur cassette!).
Après, j'ai eu un lecteur de disquettes et finis les ennuis :-)

 lafleche
 Messages postés : 26
 saucisses
  Posté le 09/06/2009 13:24:58
Send a private message to lafleche
'spèce de riche
ça m'a fait une sacrée transition de passer au ST après ça, mais bon ça apprends à programmer avec des contraintes.
En attendant mon gorilla marche bcp mieux avec un srand, j'ai un truc à peu près jouable et une topographie vraiment aléatoire ...

 Bouz
 Messages postés : 650
 choucroutes + bière
 Bouz
  Posté le 09/06/2009 21:32:57
Send a private message to Bouz
Incroyable, j'avais un ST aussi après!
GFA rulezzz... Et  puis STOS.


forum Index du forum forumLa programmation forumrand()
Haut
Aller à :
  Ajouter une réponse rapide

Ajouter une réponse rapide