| [RESOLU] Probleme Aleatoire random() | |
|
|
Auteur | Message |
---|
hakmoon Plutôt bien
Messages : 44
| Sujet: [RESOLU] Probleme Aleatoire random() Ven 17 Jan 2014 - 12:32 | |
| Bonjour tout le monde... 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 - 17:51, édité 1 fois |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: [RESOLU] Probleme Aleatoire random() Ven 17 Jan 2014 - 12: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). |
|
| |
hakmoon Plutôt bien
Messages : 44
| Sujet: Re: [RESOLU] Probleme Aleatoire random() Ven 17 Jan 2014 - 12: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 J'avais vu un peu cette fonction sur le dico mais par contre je la comprends pas trop comment elle fonctionne. |
|
| |
hakmoon Plutôt bien
Messages : 44
| Sujet: Re: [RESOLU] Probleme Aleatoire random() Ven 17 Jan 2014 - 12: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. |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: [RESOLU] Probleme Aleatoire random() Ven 17 Jan 2014 - 12: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. |
|
| |
hakmoon Plutôt bien
Messages : 44
| Sujet: Re: [RESOLU] Probleme Aleatoire random() Ven 17 Jan 2014 - 16: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 - 16:45, édité 1 fois |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: [RESOLU] Probleme Aleatoire random() Ven 17 Jan 2014 - 16: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 _________________ Je suis partie sur les ailes du vent et la tempête m'a ramenée.
|
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: [RESOLU] Probleme Aleatoire random() Ven 17 Jan 2014 - 16:42 | |
| Yep, et y a une fonction editer si tu as besoin de modif un post. |
|
| |
hakmoon Plutôt bien
Messages : 44
| Sujet: Re: [RESOLU] Probleme Aleatoire random() Ven 17 Jan 2014 - 16: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 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 ..... |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: [RESOLU] Probleme Aleatoire random() Ven 17 Jan 2014 - 17: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.
|
|
| |
hakmoon Plutôt bien
Messages : 44
| Sujet: Re: [RESOLU] Probleme Aleatoire random() Ven 17 Jan 2014 - 17: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... |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: [RESOLU] Probleme Aleatoire random() Ven 17 Jan 2014 - 17: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.
|
|
| |
hakmoon Plutôt bien
Messages : 44
| Sujet: Re: [RESOLU] Probleme Aleatoire random() Ven 17 Jan 2014 - 17: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 Sa aidera les prochains qui auront ce problème HAK. |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: [RESOLU] Probleme Aleatoire random() Ven 17 Jan 2014 - 17: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.
|
|
| |
hakmoon Plutôt bien
Messages : 44
| Sujet: Re: [RESOLU] Probleme Aleatoire random() Ven 17 Jan 2014 - 17: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. |
|
| |
D-z Utilisateur confirmé: Rang *****
Messages : 1611 Localisation : Montpellier
| Sujet: Re: [RESOLU] Probleme Aleatoire random() Ven 17 Jan 2014 - 18: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.
|
|
| |
hakmoon Plutôt bien
Messages : 44
| Sujet: Re: [RESOLU] Probleme Aleatoire random() Ven 17 Jan 2014 - 18: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. |
|
| |
hakmoon Plutôt bien
Messages : 44
| Sujet: Re: [RESOLU] Probleme Aleatoire random() Ven 17 Jan 2014 - 18:59 | |
| Je suis avec mon tel, je peut pas edit Je voulais dire que je lance 5 fois le meme objets dans le meme instant dans la room |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: [RESOLU] Probleme Aleatoire random() Ven 17 Jan 2014 - 19: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.
|
|
| |
hakmoon Plutôt bien
Messages : 44
| Sujet: Re: [RESOLU] Probleme Aleatoire random() Ven 17 Jan 2014 - 19: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... |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: [RESOLU] Probleme Aleatoire random() Ven 17 Jan 2014 - 19: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.
|
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: [RESOLU] Probleme Aleatoire random() Ven 17 Jan 2014 - 22: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. |
|
| |
Contenu sponsorisé
| Sujet: Re: [RESOLU] Probleme Aleatoire random() | |
| |
|
| |
| [RESOLU] Probleme Aleatoire random() | |
|