AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 Tri aléatoire =)

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Kabcorp
Utilisateur confirmé: Rang **
avatar

Messages : 315
Localisation : Savoie
Projet Actuel : trop...

MessageSujet: Tri aléatoire =)   Mer 22 Mai 2013 - 12:53

Yop! Ca fais un petit moment que je ne suis pas venu sur le CBNA car tout roulait pour moi niveau syntaxes mais la...

Mon souci en version simplifié:
Comment réaliser un tri (Aléatoire) de 9 chiffres dans un tableau de 3x3?

Exemple:

random()

random()

random()


Mais surtout comment comment dire simplement au programme que tel chiffre est déja utilisé dans une case précédente donc GOTO NEXT Smile

merci de vos réponses! bye

_________________
Vous voulez un jeu pas comme les autres? Voici DeFRaG :
 
Revenir en haut Aller en bas
http://kabcorp.fr
D-z
Utilisateur confirmé: Rang *****
avatar

Messages : 1609
Localisation : Montpellier

MessageSujet: Re: Tri aléatoire =)   Mer 22 Mai 2013 - 13:49

http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle
Un peu de bidouille d'indices et c'est bon !

_________________
 
Home is not a place, it's a feeling.
Revenir en haut Aller en bas
hofmeister
Bavard


Messages : 109

MessageSujet: Re: Tri aléatoire =)   Mer 22 Mai 2013 - 13:59

En moins performant mais plus simple, tu peux aussi utiliser une map, initialiser ses cases à 0, puis faire une boucle qui n'ajoute la valeur que si la case est égale à 0.
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

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

MessageSujet: Re: Tri aléatoire =)   Mer 22 Mai 2013 - 14:04

Si tu veux pas te prendre la tête, tu crée une liste avec les éléments de 1 à 9, tu la mélange, et tu la met direct dans ton tableau 2d.

Pour cela:
for(i=0; i<9; i+=1)
matrix[i mod 3, i div 3] = ds_list_find_value(list, i)

_________________
                 
Revenir en haut Aller en bas
D-z
Utilisateur confirmé: Rang *****
avatar

Messages : 1609
Localisation : Montpellier

MessageSujet: Re: Tri aléatoire =)   Mer 22 Mai 2013 - 14:23

onilink_ : ça devient du Goldberg là :p

L'algorithme de Durstenfeld implémenté :
Code:
grille[0, 0] = 1;
for(i = 1; i < 9; i += 1) {
    j = irandom_range(0, i);
    grille[i mod 3, i div 3] = grille[j mod 3, j div 3];
    grille[j mod 3, j div 3] = i + 1;
}

_________________
 
Home is not a place, it's a feeling.
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

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

MessageSujet: Re: Tri aléatoire =)   Mer 22 Mai 2013 - 14:28

Oh sympa celui ci :b

_________________
                 
Revenir en haut Aller en bas
D-z
Utilisateur confirmé: Rang *****
avatar

Messages : 1609
Localisation : Montpellier

MessageSujet: Re: Tri aléatoire =)   Mer 22 Mai 2013 - 14:51

Bah pas besoin de sortir l'artillerie lourde pour remplir un tableau avec les nombres de 1 à 9 :p

_________________
 
Home is not a place, it's a feeling.
Revenir en haut Aller en bas
Kabcorp
Utilisateur confirmé: Rang **
avatar

Messages : 315
Localisation : Savoie
Projet Actuel : trop...

MessageSujet: Re: Tri aléatoire =)   Mer 22 Mai 2013 - 15:05

Merci a vous! j'éssairais tout ca ce soir Smile

_________________
Vous voulez un jeu pas comme les autres? Voici DeFRaG :
 
Revenir en haut Aller en bas
http://kabcorp.fr
Kabcorp
Utilisateur confirmé: Rang **
avatar

Messages : 315
Localisation : Savoie
Projet Actuel : trop...

MessageSujet: Re: Tri aléatoire =)   Jeu 6 Juin 2013 - 12:19

Code:
var G,G0,W,H,X,X0,Y,Y0;
G = argument0
W = ds_grid_width(G)
H = ds_grid_height(G)
for (X=0;X<W;X+=1)
{
    for (Y=0;Y<H;Y+=1)
    {
        X0=floor(random(W))
        Y0=floor(random(H))
        G0=ds_grid_get(G,X,Y)
        ds_grid_set(G,X,Y,ds_grid_get(G,X0,Y0))
        ds_grid_set(G,X0,Y0,G0)
    }
}

Impecable merci

_________________
Vous voulez un jeu pas comme les autres? Voici DeFRaG :
 
Revenir en haut Aller en bas
http://kabcorp.fr
Contenu sponsorisé




MessageSujet: Re: Tri aléatoire =)   

Revenir en haut Aller en bas
 
Tri aléatoire =)
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Problème freinage aléatoire

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: