| [résolu] Choisir au hasard X nombres dans une liste de X+1 nombres | |
|
|
Auteur | Message |
---|
Jerom Très bonne participation
Messages : 155 Localisation : Dijon Projet Actuel : LOKI's BREED #shmup 2D www.metalepse-games.com
| Sujet: [résolu] Choisir au hasard X nombres dans une liste de X+1 nombres Lun 12 Mar 2012 - 17:52 | |
| ça devrait être assez simple à résoudre pour les pros du forum ^^ je cherche à piocher 3 nombres compris entre un minimum et un maximum, sans que ce soient les mêmes. ex. au final, si je donne les bornes 0 et 100, je trouverais 3, 68 et 92 par exemple.
Je devrait y arriver avec random_range, et for, non?
Dernière édition par Jerom le Lun 12 Mar 2012 - 18:40, édité 1 fois |
|
| |
mortelkill Utilisateur confirmé: Rang ***
Messages : 780 Localisation : Canada Projet Actuel : Watchmakers
| Sujet: Re: [résolu] Choisir au hasard X nombres dans une liste de X+1 nombres Lun 12 Mar 2012 - 17:55 | |
| en attendant qu`ils te répondent tu peux me dire ce que tu vas faire avec ça? sa m interesse. |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: [résolu] Choisir au hasard X nombres dans une liste de X+1 nombres Lun 12 Mar 2012 - 18:17 | |
| - Code:
-
// getRandomNumbers(start, end, number) // arg 0 1 2 // return list id var r, l, v; r = argument1 - argument0 l = ds_list_create() ds_list_add(l, floor(random(r)+argument0))
while(ds_list_size(l) < argument2) { v = floor(random(r)+argument0) if(ds_list_find_index(l, v) == -1) ds_list_add(l, v) }
return l Pense a supprimer la liste une fois que tu l'a utilisée. Par exemple : - Code:
-
list = getRandomNumbers(0, 100, 3) // on tire 3 nombres entre 0 et 100 for(i=0; i<3; i+=1) traitement( ds_list_find_value(list, i) ) // traitement des nombres ds_list_destroy(list) // on detruit la liste |
|
| |
Jerom Très bonne participation
Messages : 155 Localisation : Dijon Projet Actuel : LOKI's BREED #shmup 2D www.metalepse-games.com
| Sujet: Re: [résolu] Choisir au hasard X nombres dans une liste de X+1 nombres Lun 12 Mar 2012 - 18:22 | |
| |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: [résolu] Choisir au hasard X nombres dans une liste de X+1 nombres Lun 12 Mar 2012 - 18:30 | |
| - Jerom a écrit:
- Je devrait y arriver avec random_range, et for, non?
Juste comme ça, for c'est quand on connais le nombre d'itérations, et while quand on ne le connais pas. La tu tire des nombres au hasard, tu regarde si tu les a déjà tirés, etc. Donc c'est un while car ça ne prendras pas forcément x itérations, si tu tombe plusieurs fois sur le même nombre. Aussi je n'ai pas utilisé random_range car je suis encore sous GM6, mais tu peut remplacer les floor(random(r)+argument0) par cette fonction, qui est apparue depuis :p |
|
| |
Jerom Très bonne participation
Messages : 155 Localisation : Dijon Projet Actuel : LOKI's BREED #shmup 2D www.metalepse-games.com
| Sujet: Re: [résolu] Choisir au hasard X nombres dans une liste de X+1 nombres Lun 12 Mar 2012 - 18:45 | |
| C'est nickel, merci (Il faut modifier la variable "pos" dans ds_list_find_value(id,pos) pour récupérer les chiffres voulus, par 0, 1, 2, etc.). Si j'aboutis à un jeu jouable, je posterais ça sur ce forum! Si tu as le temps, si tu pouvais m'expliquer à quoi correspondent les lignes du script, ça m'aiderait à piger le processus de création de ce type de script (car je n'utilise jamais les scripts) |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: [résolu] Choisir au hasard X nombres dans une liste de X+1 nombres Lun 12 Mar 2012 - 19:00 | |
| // on crée une liste l = ds_list_create() // on tire un nombre au hasard et on l'ajoute a la liste ds_list_add(l, irandom_range(argument0, argument1))
// maintenant, on tire des nombres au hasard tant que notre liste ne contient pas les x éléments while(ds_list_size(l) < argument2) { v = irandom_range(argument0, argument1) // tire au hasard un nombre if(ds_list_find_index(l, v) == -1) // on regarde si la liste contient déjà l'élément. Si l'élément n'est pas trouvé la fonction retourne -1 ds_list_add(l, v) // et alors on l'ajoute a la liste }
// on retourne l'identifiant de la liste return l |
|
| |
Jerom Très bonne participation
Messages : 155 Localisation : Dijon Projet Actuel : LOKI's BREED #shmup 2D www.metalepse-games.com
| Sujet: Re: [résolu] Choisir au hasard X nombres dans une liste de X+1 nombres Lun 12 Mar 2012 - 19:02 | |
| |
|
| |
Jerom Très bonne participation
Messages : 155 Localisation : Dijon Projet Actuel : LOKI's BREED #shmup 2D www.metalepse-games.com
| Sujet: Re: [résolu] Choisir au hasard X nombres dans une liste de X+1 nombres Jeu 15 Nov 2012 - 13:56 | |
| - onilink_ a écrit:
- Pense a supprimer la liste une fois que tu l'a utilisée.
À propos de ce script (et du fait de créer une liste dans un script), du coup la liste "l" n'est pas détruite au final? ou bien, en détruisant "list" avec ds_list_destroy(list); ça supprime les deux liste d'un coup? |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: [résolu] Choisir au hasard X nombres dans une liste de X+1 nombres Jeu 15 Nov 2012 - 22:24 | |
| En fait la fonction renvoie l'id de la liste, et quand tu fait list = getRandomNumbers(0, 100, 3) bah tu récupère cet id, et donc quand tu détruit 'list', tu détruit la liste l du script |
|
| |
Jerom Très bonne participation
Messages : 155 Localisation : Dijon Projet Actuel : LOKI's BREED #shmup 2D www.metalepse-games.com
| Sujet: Re: [résolu] Choisir au hasard X nombres dans une liste de X+1 nombres Ven 16 Nov 2012 - 0:33 | |
| Merci pour la réponse, ça confirme ce que j'avais déduis entre-temps (j'avais fait un DRAW pour tester). |
|
| |
Mobi Utilisateur confirmé: Rang ****
Messages : 1256 Localisation : Dijon
| Sujet: Re: [résolu] Choisir au hasard X nombres dans une liste de X+1 nombres Ven 16 Nov 2012 - 16:21 | |
| - Citation :
- En gros, une petite compét' informelle pour faire un simili-roguelike. J'ai des connaissances (vraiment) basiques, mais je vais tenter de faire un petit jeu Razz
Moi aussi, je code en ce moment un roguelike Tu veux qu'on s'allie ? En plus j'habite pas loin |
|
| |
Jerom Très bonne participation
Messages : 155 Localisation : Dijon Projet Actuel : LOKI's BREED #shmup 2D www.metalepse-games.com
| Sujet: Re: [résolu] Choisir au hasard X nombres dans une liste de X+1 nombres Sam 17 Nov 2012 - 20:39 | |
| @Mobi bah pourquoi pas (perso je bloque pour faire les IA des ennemis, du coup j'avais laissé tomber), par MP pour en discuter alors |
|
| |
Contenu sponsorisé
| Sujet: Re: [résolu] Choisir au hasard X nombres dans une liste de X+1 nombres | |
| |
|
| |
| [résolu] Choisir au hasard X nombres dans une liste de X+1 nombres | |
|