AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment : -38%
Ecran PC gaming 23,8″ – ACER KG241Y P3bip ...
Voir le deal
99.99 €

 

 [résolu] Choisir au hasard X nombres dans une liste de X+1 nombres

Aller en bas 
4 participants
AuteurMessage
Jerom
Très bonne participation
Jerom


Messages : 155
Localisation : Dijon
Projet Actuel : LOKI's BREED #shmup 2D www.metalepse-games.com


[résolu] Choisir au hasard X nombres dans une liste de X+1 nombres Empty
MessageSujet: [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 EmptyLun 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
Revenir en haut Aller en bas
http://2945-devblog.blogspot.com/
mortelkill
Utilisateur confirmé: Rang ***
mortelkill


Messages : 780
Localisation : Canada
Projet Actuel : Watchmakers

[résolu] Choisir au hasard X nombres dans une liste de X+1 nombres Empty
MessageSujet: 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 EmptyLun 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.
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


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

[résolu] Choisir au hasard X nombres dans une liste de X+1 nombres Empty
MessageSujet: 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 EmptyLun 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

Revenir en haut Aller en bas
Jerom
Très bonne participation
Jerom


Messages : 155
Localisation : Dijon
Projet Actuel : LOKI's BREED #shmup 2D www.metalepse-games.com


[résolu] Choisir au hasard X nombres dans une liste de X+1 nombres Empty
MessageSujet: 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 EmptyLun 12 Mar 2012 - 18:22

@mortekill
http://7drl.org/ "Seven-Days rogue-like" du 10-18 mars http://forums.tigsource.com/index.php?topic=24865.0
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

@onilink_ ok merci, je teste ça à l'instant!
Revenir en haut Aller en bas
http://2945-devblog.blogspot.com/
onilink_
Modérateur
onilink_


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

[résolu] Choisir au hasard X nombres dans une liste de X+1 nombres Empty
MessageSujet: 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 EmptyLun 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
Revenir en haut Aller en bas
Jerom
Très bonne participation
Jerom


Messages : 155
Localisation : Dijon
Projet Actuel : LOKI's BREED #shmup 2D www.metalepse-games.com


[résolu] Choisir au hasard X nombres dans une liste de X+1 nombres Empty
MessageSujet: 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 EmptyLun 12 Mar 2012 - 18:45

C'est nickel, merci Very Happy (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) Wink
Revenir en haut Aller en bas
http://2945-devblog.blogspot.com/
onilink_
Modérateur
onilink_


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

[résolu] Choisir au hasard X nombres dans une liste de X+1 nombres Empty
MessageSujet: 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 EmptyLun 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
Revenir en haut Aller en bas
Jerom
Très bonne participation
Jerom


Messages : 155
Localisation : Dijon
Projet Actuel : LOKI's BREED #shmup 2D www.metalepse-games.com


[résolu] Choisir au hasard X nombres dans une liste de X+1 nombres Empty
MessageSujet: 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 EmptyLun 12 Mar 2012 - 19:02

Merci!
Revenir en haut Aller en bas
http://2945-devblog.blogspot.com/
Jerom
Très bonne participation
Jerom


Messages : 155
Localisation : Dijon
Projet Actuel : LOKI's BREED #shmup 2D www.metalepse-games.com


[résolu] Choisir au hasard X nombres dans une liste de X+1 nombres Empty
MessageSujet: 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 EmptyJeu 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?
Revenir en haut Aller en bas
http://2945-devblog.blogspot.com/
onilink_
Modérateur
onilink_


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

[résolu] Choisir au hasard X nombres dans une liste de X+1 nombres Empty
MessageSujet: 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 EmptyJeu 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 Wink
Revenir en haut Aller en bas
Jerom
Très bonne participation
Jerom


Messages : 155
Localisation : Dijon
Projet Actuel : LOKI's BREED #shmup 2D www.metalepse-games.com


[résolu] Choisir au hasard X nombres dans une liste de X+1 nombres Empty
MessageSujet: 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 EmptyVen 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).
Revenir en haut Aller en bas
http://2945-devblog.blogspot.com/
Mobi
Utilisateur confirmé: Rang ****
Mobi


Messages : 1256
Localisation : Dijon

[résolu] Choisir au hasard X nombres dans une liste de X+1 nombres Empty
MessageSujet: 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 EmptyVen 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 gnii
Revenir en haut Aller en bas
Jerom
Très bonne participation
Jerom


Messages : 155
Localisation : Dijon
Projet Actuel : LOKI's BREED #shmup 2D www.metalepse-games.com


[résolu] Choisir au hasard X nombres dans une liste de X+1 nombres Empty
MessageSujet: 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 EmptySam 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 Wink
Revenir en haut Aller en bas
http://2945-devblog.blogspot.com/
Contenu sponsorisé





[résolu] Choisir au hasard X nombres dans une liste de X+1 nombres Empty
MessageSujet: 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 Empty

Revenir en haut Aller en bas
 
[résolu] Choisir au hasard X nombres dans une liste de X+1 nombres
Revenir en haut 
Page 1 sur 1

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: