AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 [RESOLU] Probleme Aleatoire random()

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
hakmoon
Plutôt bien


Messages : 44

MessageSujet: [RESOLU] Probleme Aleatoire random()   Ven 17 Jan 2014 - 11:32

Bonjour tout le monde... Smile

J'ai un petit problème pour la fonction aléatoire.
Ma fonction marche bien, par contre, j'ai remarqué que c'est toujours le même ordre aléatoire...
par exemple je fais :

Code:
variable = floor(random(5))

Quand je vais lancer le jeu, il fera toujours par exemple ces nombres aleatoire : 4, 2, 0, 1, 3.
J'ai vue que c'étais fais exprès par Game Maker pour débeuger plus facilement...


Mais comment enlever cette suite aléatoire que je ne veut pas..... ?


Merci pour vos réponses...

Hak.


Dernière édition par hakmoon le Ven 17 Jan 2014 - 16:51, édité 1 fois
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8904
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: [RESOLU] Probleme Aleatoire random()   Ven 17 Jan 2014 - 11:34

Il faut initialiser la seed du générateur de nombres aléatoires avec random_set_seed(seed).
Le plus simple et de lui donner la valeur de l'horloge (soit current_time).

_________________
                 
Revenir en haut Aller en bas
hakmoon
Plutôt bien


Messages : 44

MessageSujet: Re: [RESOLU] Probleme Aleatoire random()   Ven 17 Jan 2014 - 11:38

onilink_ a écrit:
Il faut initialiser la seed du générateur de nombres aléatoires avec random_set_seed(seed).
Le plus simple et de lui donner la valeur de l'horloge (soit current_time).

Merci Onilink pour ta réponse ultra rapide, comme a chaque fois Wink

J'avais vu un peu cette fonction sur le dico mais par contre je la comprends pas trop comment elle fonctionne.
Revenir en haut Aller en bas
hakmoon
Plutôt bien


Messages : 44

MessageSujet: Re: [RESOLU] Probleme Aleatoire random()   Ven 17 Jan 2014 - 11:55

Le seul truc que je comprends (mais je sais pas si je me trompe)

faut que je lui dise :

Code:
if debug random_set_seed(1);
alors si il vaut 1 alors le debug est activé et sa sera toujours la meme aléatoire... par contre, si il vaut 0 c'est désactivé et l'aléatoire est vraiment activé...

Je vais tester...

Hak.
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8904
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: [RESOLU] Probleme Aleatoire random()   Ven 17 Jan 2014 - 11:58

Le générateur de nombres aléatoires utilise une graine pour généré la suite de nombre.

Par exemple dans les vielles versions de pokémon, le générateur fonctionnait comme ça:
Code:
r = ( 0x41C64E6D * Seed) + 0x6073;
Seed = r
return r

Ce qui nous donne, avec une Seed de 1 sur 30 générations modulo 10:
6, 7, 2, 1, 8, 9, 6, 5, 0, 7, 4, 5, 8, 9, 4, 3, 6, 1, 8, 5, 8, 9, 6, 7, 0, 1, 0, 3, 2, 1,

Pour modifier la graine de façon a avoir une Seed différente a chaque fois, en général on passe par l'horloge.
Sous GM:
random_set_seed(current_time)

Bien entendu un gars un peu doué pourra prévoir tous les événements aléatoire de ton jeu s'il capte quel générateur aléatoire est utilisé, et comment tu as initialisé la Seed.
Dans la plupart des jeux sur consoles la seed utilise une valeur en fonction du temps, puis ajoute certains trucs comme les touches que tu as pressés en fonction de t avant d'avoir passé l'écran titre.

_________________
                 
Revenir en haut Aller en bas
hakmoon
Plutôt bien


Messages : 44

MessageSujet: Re: [RESOLU] Probleme Aleatoire random()   Ven 17 Jan 2014 - 15:23

ce que je comprends pas, il faut tapper a chaque fois :
Code:
random_set_seed(current_time);
pour chaque variable random () ??

Par exemple, j'ai mis ce que tu ma dit
Code:
random_set_seed(current_time)
au debut de mon create...mais comme je génère plusieurs variables avec un random...il va prendre l'horloge..
Mais comme l'horloge c'est la même, il me choisis la même variable pour tous...

Exemple :

Code:
random_set_seed(current_time)
variable = random(5)

random_set_seed(current_time)
variable1 = random(5)

Etc....Mais le problème sa m'affiche la même variable pour tous....A mon avis parce que c'est la même heure du coups il choisis la même variable pour tous....


Si je fais : (pas encore tester)

Code:
random_set_seed(current_time et quelque chose)
variable = random(5)

random_set_seed(current_time et quelque chose)
variable1 = random(5)

sa devrais marcher car il aura pas la meme valeur. c'est bien sa ???
ou je me goure complètement ?


Dernière édition par hakmoon le Ven 17 Jan 2014 - 15:45, édité 1 fois
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: [RESOLU] Probleme Aleatoire random()   Ven 17 Jan 2014 - 15:39

T'as fait une connerie, suffit d'initiliser la seed une seule fois et c'est bon. Donc tu le met dans le game create de ton héros par exemple, et ensuite t'as juste à utiliser la fonction random().
D'ailleurs ce genre des petits tests, fais les, tu verra bien ce qui ce passe, et ca t'évitera d'enchainer les doubles post Wink

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8904
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: [RESOLU] Probleme Aleatoire random()   Ven 17 Jan 2014 - 15:42

Yep, et y a une fonction editer si tu as besoin de modif un post.

_________________
                 
Revenir en haut Aller en bas
hakmoon
Plutôt bien


Messages : 44

MessageSujet: Re: [RESOLU] Probleme Aleatoire random()   Ven 17 Jan 2014 - 15:50

Térence68 a écrit:
T'as fait une connerie, suffit d'initiliser la seed une seule fois et c'est bon. Donc tu le met dans le game create de ton héros par exemple, et ensuite t'as juste à utiliser la fonction random().
D'ailleurs ce genre des petits tests, fais les, tu verra bien ce qui ce passe, et ca t'évitera d'enchainer les doubles post Wink

Je l'avais déja fais le test...sa marche pas...
Il me prends la même variable aléatoire pour chaque variable(random())

je fais par exemple :

// code dans create //
Code:

random_set_seed(script_test);
variable0 = floor(random(101))
variable1 = floor(random(101))
variable2 = floor(random(101))
variable3 = floor(random(101))

// code dans script_test //


Code:

var t;

t = floor(random(10000));
t = t * date_current_datetime();

return t;


Resultat...

Je créer 5 perso dans la map qui ont tous la meme valeur ..... triste2  triste2  triste2  triste2
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: [RESOLU] Probleme Aleatoire random()   Ven 17 Jan 2014 - 16:00

Pas possible.
Déjà faudra m'expliquer la logique de ton initialisation : t'utilise du random pour initialiser la seed de ton random oO ?!
Mets juste current_time en guise de seed et ca devrait marcher.

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
hakmoon
Plutôt bien


Messages : 44

MessageSujet: Re: [RESOLU] Probleme Aleatoire random()   Ven 17 Jan 2014 - 16:03

Térence68 a écrit:
Pas possible.
Déjà faudra m'expliquer la logique de ton initialisation : t'utilise du random pour initialiser la seed de ton random oO ?!
Mets juste current_time en guise de seed et ca devrait marcher.

si je mets juste current_time en guise de seed, il me met la même variable pour tous...
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: [RESOLU] Probleme Aleatoire random()   Ven 17 Jan 2014 - 16:14

Bon, met ton code entier, y compris celui d'affichage....

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
hakmoon
Plutôt bien


Messages : 44

MessageSujet: Re: [RESOLU] Probleme Aleatoire random()   Ven 17 Jan 2014 - 16:27

Bon j'ai compris pourquoi sa marche pas....
Vous aviez tout faut avec la fonction "random_set_seed"

random_set_seed = permet de forcer une graine qui elle permettra de donner une variable aleatoire...

Dans mon cas j'utilise plusieurs variable aléatoire, si j'utilise une graine elle va me donner la même variable aléatoire a chaque fois...

POur pas avoir ce problème, il ne faut pas utilsier la fonction "random_set_seed" mais "randomize()" qui elle fais en sorte que la graine soit toujours aleatoire...

Comme sa marche Wink

Sa aidera les prochains qui auront ce problème Smile

HAK.
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: [RESOLU] Probleme Aleatoire random()   Ven 17 Jan 2014 - 16:31

Erf, bah ils sont définitivement cons chez GM si c'est vraiment ca ><
Ca sert à rien ca, si tu veux garder un nombre random en mémoire, tu initialise une variable avec ta valeur random, et t'utilise la variable pour faire tes autres actions, le but de random_set/get_seed c'est de pouvoir garder la suite entière de valeurs random, et ca c'est utile pour sauvegarder un niveau généré procéduralement....

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
hakmoon
Plutôt bien


Messages : 44

MessageSujet: Re: [RESOLU] Probleme Aleatoire random()   Ven 17 Jan 2014 - 16:34

dans mon problème je voulais pas la garder la variable random() juste une fois c'est tout....
Mais bon au moins maintenant je maîtrise les random, mdrrrrrrr.
Revenir en haut Aller en bas
D-z
Utilisateur confirmé: Rang *****
avatar

Messages : 1609
Localisation : Montpellier

MessageSujet: Re: [RESOLU] Probleme Aleatoire random()   Ven 17 Jan 2014 - 17:41

Y'a des gens pas réveillés ici...

La fonction random() retourne un terme d'une suite de nombres, et passe au suivant. random_set_seed() permet de se placer sur un terme précis.
Du coup en appelant set_seed(constante) avant de faire des tirages, on obtient la même portion de la suite. Et c'est exactement ce que tu as fait dans le create de ton objet. Du coup chaque instance effectue les mêmes tirages (puisque current_time n'est pas assez précis pour varier entre deux instanciations).
Pour ce qui est de randomize(), elle fait bêtement un set_seed() avec une valeur dont on ne sait pas la provenance. Ça peut être une horloge plus précise, le contenu d'un registre quelconque ou quoi que ce soit d'autre.

_________________
 
Home is not a place, it's a feeling.
Revenir en haut Aller en bas
hakmoon
Plutôt bien


Messages : 44

MessageSujet: Re: [RESOLU] Probleme Aleatoire random()   Ven 17 Jan 2014 - 17:54

Tu a raison D-z

Sauf que pour mon probleme, je creer dans le meme instant 5 objet identique.
Jai essayer avec set_seed et lorloge, c'est pas bon car elle me redonne la meme valeur sur ces 5 objets...
La seule solution que j'ai trouver c'est randomize qui me fais pas ce probleme.
Revenir en haut Aller en bas
hakmoon
Plutôt bien


Messages : 44

MessageSujet: Re: [RESOLU] Probleme Aleatoire random()   Ven 17 Jan 2014 - 17:59

Je suis avec mon tel, je peut pas edit Sad
Je voulais dire que je lance 5 fois le meme objets dans le meme instant dans la room
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: [RESOLU] Probleme Aleatoire random()   Ven 17 Jan 2014 - 18:07

Tu viens de m'apprendre un truc D-z ^^' N'empêche avec la 8.1 c'était quand même plus simple... Tous ces messages pour une connerie de ce genre.... Mais bref...
Bon, et hakmoon, tu te mets en version ordinateur, c'est pas compliqué, tu peux le changer depuis le site même ou bien dans les options de ton portable ; ou alors, encore mieux, tu relis ton message avant de le poster, et pas après...

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
hakmoon
Plutôt bien


Messages : 44

MessageSujet: Re: [RESOLU] Probleme Aleatoire random()   Ven 17 Jan 2014 - 18:19

Térence68 a écrit:
Tu viens de m'apprendre un truc D-z ^^' N'empêche avec la 8.1 c'était quand même plus simple... Tous ces messages pour une connerie de ce genre.... Mais bref...
Bon, et hakmoon, tu te mets en version ordinateur, c'est pas compliqué, tu peux le changer depuis le site même ou bien dans les options de ton portable ; ou alors, encore mieux, tu relis ton message avant de le poster, et pas après...


Oui Chef, pardon Chef...
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: [RESOLU] Probleme Aleatoire random()   Ven 17 Jan 2014 - 18:46

Excuse moi, je pense qu'effectivement j'en demande trop là.

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8904
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: [RESOLU] Probleme Aleatoire random()   Ven 17 Jan 2014 - 21:19

random_set_seed(script_test);

Pour infos, tu as oublié les parenthèses: random_set_seed(script_test());
script_test étant un identifiant de script, c'est une constante, et pour que tu ais les même valeurs, j'imagine que sa valeur étais de 0.

_________________
                 
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: [RESOLU] Probleme Aleatoire random()   

Revenir en haut Aller en bas
 
[RESOLU] Probleme Aleatoire random()
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» probleme de sommeil
» probleme de dos,quelle echarpe choisir?
» il as tu un probleme avec le site......
» PROBLEME DES CLINIQUES CNSS
» Probleme d'avatar

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide débutants-
Sauter vers: