Trier un tableau d'entier dans l'ordre Decroi

Philipe -  
xamurai Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je viens vous exposé mon problème , que j'ai rencontré au cours de mon projet (Monopoly).

En effet , à un moment j'ai besoin de ranger les joueur dans un tableau de "Joueur" , mais dans l'ordre décroissant,qui sera déterminé par le lancé de Dés de chacun des joueurs.

Donc au début , j'ai un tableau de joueur,ensuite je le parcours, et je fais lancer le dés à chaque joueur du tableau,ensuite selon le résultat du lancé , le joueur est placé à un indice donné.S'il obtient 6 par exemple, il sera le premier dans le tableau( à indice 0) ...
Mais je ne sais pas comment ranger les joueurs, en comparant leur résultats.

Merci.
Configuration: Windows XP
Firefox 2.0.0.14

1 réponse

  1. Brachior Messages postés 616 Statut Membre 46
     
    j'ai eut besoin de ce genre de chose pour les HighScore de mon MasterMind ^^
    tiens voila ma fonction trier ^^
    int IndiceMin(int Score[],int i){
    	int j,k;
    	j=i;
    	for(k=i+1;k<11;k++){
    	  if(Score[k]<Score[j]){
    	    j=k;}}
    	return j;}
    
    void Trier(int Score[],char Pseudo[][500]){
      int i;
    	for(i=0;i<11;i++){
    		int j,temp;
    		char tmp[5000]; /* Pourquoi 5000 ? .. Je ne sais pas Oo */
    		j=IndiceMin(Score,i);
    		temp=Score[j];
    		Score[j]=Score[i];
    		Score[i]=temp;
    		strcpy(tmp, Pseudo[j]);
    		strcpy(Pseudo[j], Pseudo[i]);
    		strcpy(Pseudo[i], tmp);}}
    apres j'ai affiché le tableau en partant du bas ^^
    je te laisse le copier et le modifier a ta sauce lol xD ^^
    si t'as des questions n'hesites pas ^^
    0
    1. Philipe
       
      Merci beaucoup déjà , pour ce début de repense . En fait j'ai pas précisé , mais mon programme est en java ... :s
      0
    2. Brachior Messages postés 616 Statut Membre 46 > Philipe
       
      ah M**** =/ lol
      bon bah desolé ^^
      0
    3. Philipe > Brachior Messages postés 616 Statut Membre
       
      voila ce que j'ai trouver sur le net :

      public static void triBulle(int tableau[])
      {
      int longueur=tableau.length;
      boolean inversion;

      do
      {
      inversion=false;

      for(int i=0;i<longueur-1;i++)
      {
      if(tableau[i]>tableau[i+1])
      {
      echanger(tableau,i,i+1);
      inversion=true;
      }
      }
      }
      while(inversion);
      }

      mais la méthode "échanger" me dérange , je sais pas par quoi je pourrais la remplacer.
      0
    4. MisterNeo > Philipe
       
      salut,

      tu change ta methode "echanger(tableau, i, i+1)" par :

      int tmp;

      tmp = tableau[i] ;
      tableau[i] = tableau[i + 1];
      tableau[i + 1] = tmp ;
      0
    5. taboun
       
      wa siro ta7waw ya zwamal
      0