Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1497 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  classer des joueurs avec Delphi 6

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

classer des joueurs avec Delphi 6

n°1724694
Profil sup​primé
Posté le 25-04-2008 à 19:17:20  answer
 

Bonjour à tous
 
Je suis actuellement en train de coder un programme qui simule le jeu du Nain Jaune. J'ai presque fini, y'a juste un truc, tout bête a priori, que je n'arrive pas à faire. A la fin de la partie, chaque joueur se voit afficher les jetons qu'il a cumulé au cours des manches. Je voudrais que l'affichage se fasse en par ordre décroissant, celui qui en a le plus d'abord ... (3 joueurs au total)
 
J'arrive pas à l'écrire, si vous aviez une méthode à me proposer, ou des conseils, ce serait gentil.
 
Merci :)

mood
Publicité
Posté le 25-04-2008 à 19:17:20  profilanswer
 

n°1724699
Flagad'awa​re
c pô moi, j'ai pas touché!
Posté le 25-04-2008 à 20:04:15  profilanswer
 

Salut
 
donne un peu plus d'info sur le type de variables utilisée etc et dans quoi ou comment tu affiche le resultat

n°1724702
Profil sup​primé
Posté le 25-04-2008 à 20:24:39  answer
 

Salut

 

Chaque joueur est "représenté" par un pointeur de type T_joueur, qui est un record avec les champs suivant: pseudo(string), cpt_jeton(integer) et suivant(T_ptr_joueur)

 

J'avais écrit cette procédure, qui affiche les informations de chaque joueur à la fin de la partie:

 


Procedue AFFICH_SCORE(ptr_courant:T_ptr_joueur);
var
   i:integer;

 

begin
   For i:=1 to 3 do
      begin
         Writeln('La partie est finie. Les scores sont les suivants : ');
         With ptr_courant^ do
            writeln(pseudo,', vous avez gagne ',cpt_jeton,'jetons pendant la partie.');
      end;
   ptr_courant:=ptr_courant^.suivant
end;

  


Je voudrais juste que ça s'affiche dans la fenêtre d'exécution comme ça:
joueur X a gagné Z jetons,
joueur Y a gagné W jetons
                .
                .
                .

 

en commençant par celui qui en a gagné le plus.
Seulement ce que j'ai écrit ne se contente que d'afficher les champs de chaque joueur, et ne fait pas le classement.

 

Voilà, j'espère que ça sera suffisant, sinon dis moi ce qu'il te manque

 

Merci:)


Message édité par Profil supprimé le 25-04-2008 à 20:27:21
n°1724704
Flagad'awa​re
c pô moi, j'ai pas touché!
Posté le 25-04-2008 à 20:35:08  profilanswer
 

oulala j'voyais ça plus simple que ça  [:barthaliastoxik]
 
le plus simple serait de faire une procédure de classement avec comme paramètres les 3 scores puis de chopper le plus grand, le plus petit et enfin celui qui reste non?
 
edit: vais te faire un ptit code mais attention code flagada  :D


Message édité par Flagad'aware le 25-04-2008 à 20:36:39
n°1724710
Profil sup​primé
Posté le 25-04-2008 à 20:56:00  answer
 

J'ai essayé de l'écrire cette procédure de classement, mais je m'embrouille complètement. En gros, j'y arrive pas.

 

Alors je me suis dit qu'il y avait peut-être un moyen de classer les joueurs dans la procédure d'affichage, même si ca serait plus propre de faire cette procédure de classement :)

 

Sinon j'avais pensé à tableau ...


Message édité par Profil supprimé le 25-04-2008 à 20:56:26
n°1724713
Flagad'awa​re
c pô moi, j'ai pas touché!
Posté le 25-04-2008 à 21:05:09  profilanswer
 

ouais pas facile :( , je continue t'adaptera après
 
bon...
 

procedure tform1.classement(one:integer;two:integer;three:integer);
var
Tjoueurs:array[1..3] of integer;//à déclarer en haut au besoin???
Tentest:array[1..3] of integer;
temp,i:integer;
begin;
Tentest[1]:=one;
Tentest[2]:=two;
Tentest[3]:=three;
 
for i:= 1 to 3 do Tjoueurs[i]:= 0;
 
 
temp:=0;
for i:=1 to 3 do if Tentest[i]>temp then temp:=Tentest[i];
Tjoueurs[1]:=temp;
 
temp:=10000;
for i:=1 to 3 do if Tentest[i]<temp then temp:=Tentest[i];
Tjoueurs[3]:=temp;
 
for i:=1 to 3 do if Tentest[i]<>Tjoueurs[1] then
 if Tentest[i]<>Tjoueurs[3] then Tjoueurs[2]:=Tentest[i];
 
showmessage(inttostr(Tjoueurs[1])+' '+inttostr(Tjoueurs[2])+' '+inttostr(Tjoueurs[3]));
 
 
end;


 
voila comme ça , ça roule :)


Message édité par Flagad'aware le 25-04-2008 à 21:49:54
n°1724737
Flagad'awa​re
c pô moi, j'ai pas touché!
Posté le 25-04-2008 à 21:46:26  profilanswer
 

après t'appèle avec  
 
classement (ptr1, ptr2, ptr3); ou un truc comme ça mais c'est pas ça lol
 
pis writeln au lieu de showmessage
 
ouais après tu utilise ce code en modifiant juste les premières attibutions des Tentest[1] et tout rentre facilement dans la procédure d'affichage :)


Message édité par Flagad'aware le 25-04-2008 à 22:02:56
n°1724753
Profil sup​primé
Posté le 25-04-2008 à 22:18:40  answer
 

C'est vaiment sympa de ta part, je vais me débrouiller avec ca.
 
Merci :jap:

n°1724763
Flagad'awa​re
c pô moi, j'ai pas touché!
Posté le 25-04-2008 à 22:57:30  profilanswer
 

Y a pô d'koué  ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  classer des joueurs avec Delphi 6

 

Sujets relatifs
[Delphi]Cherche quelqu'un pour travailler sur GKMod[DELPHI] Changer le contenu d'une form
[DELPHI] Afficher des images dans un listview.Interopérabilité de delphi
vous avez un code source en delphi,comment le compilé?Delphi 1 et Mysql
[Delphi] Erreur de TColumnIndexSoS delphi
[DELPHI] cacher une frame quand une autre s'ouvrePb de structures de données dynamique delphi/pascal
Plus de sujets relatifs à : classer des joueurs avec Delphi 6


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR