Trier un tableau d'entier dans l'ordre Decroi
Philipe
-
xamurai Messages postés 223 Date d'inscription Statut Membre Dernière intervention -
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.
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
-
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 ^^-
-
-
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. -
-
-