[C/C++] Problemme de remplissage de tableau....

Problemme de remplissage de tableau.... [C/C++] - C++ - Programmation

Marsh Posté le 25-02-2003 à 07:37:54    

Mon programme vise a terme a etre un jeu de tarrot.
J'ai créé une classe JOUEUR definie comme suit :  
 
typedef struct{
               int carte[15];
               bool vide;
               }Cb;
typedef struct{
               int carte[22];
               bool vide;
               }Atout;
class JOUEUR
      {
       public:
       Cb carreau;
       Cb coeur;
       Cb pique;
       Cb treffle;
       Atout atouts;
       public:
       void prend_carte(int couleur,int carte,int place);      
      };
 
la fonction prend_carte() range la carte n° carte de la couleur couleur dans la case place du tableau de cette couleur.
Voici la fonction:
 
void JOUEUR::prend_carte(int couleur,int carte,int place)
     {
     
               if(couleur==5)
                             {
                              atouts.carte[place]=carte;
                             }
                         else
                            {
                             if(couleur==1)
                                carreau.carte[place]=carte;
                             if(couleur==2)
                                coeur.carte[place]=carte;
                             if(couleur==3)
                                pique.carte[place]=carte;
                             if(couleur==4)
                                treffle.carte[place]=carte;
                            }
             
               
     
                 
     }
 
Je veux ensuite remplir de 0 tous les jeux des joueurs , j'en ai crees 2 , JOUEUR p,TAROT;
 
Pour p , tout se passe bien , alors que TAROT se remplit de chiffres aleatoirement , c'est pourtant exactementr la meme fonction utilisee , je n'y comprend plus rien....
 
for(i=0;i<=21;i++)
          {
           if(i<=14)
                    {
                     for(j=1;j<=5;j++){
                         p.prend_carte(j,0,i);}
                         TAROT.prend_carte(j,0,i);
                    }
           else
               {
                p.prend_carte(5,0,i);
                TAROT.prend_carte(5,0,i);
               }
 
merci de m'aider , je sais qu'il n'est pas tres correct de poster de longues portions de code , mais je ne vois pas comment expliquer mon pb plus simplement . et la je seche.
davance merci


---------------
Do you serve a purpose,Or purposely serve?
Reply

Marsh Posté le 25-02-2003 à 07:37:54   

Reply

Marsh Posté le 25-02-2003 à 10:03:52    

ton code etant pas super lisible, j'ai pas trop lu, mais dans ton

Code :
  1. for(j=1;j<=5;j++){
  2.      p.prend_carte(j,0,i);}
  3.      TAROT.prend_carte(j,0,i);


t'es sur que l'accolade fermante est bien placée?
 
sinon, ta structure de donnée est pas top, essaie de voir pour faire mieux
 
dans ta fonction prend_carte, un switch (couleur) serait beaucoup plus simple.
 
PS: mets des balises cpp autour de tes portions de code plz

Reply

Marsh Posté le 25-02-2003 à 10:14:05    

:hello:  
Ne pas oublier qu'en C++ une struct ou une class c'est la même chose (sauf que par défaut, dans une struct, en l'abscense de specifier, tous les members sont public au lieu d'être privés comme avec une class).
Donc pas la peine d'ecrire:

Code :
  1. typedef struct{
  2.               int carte[15];
  3.               bool vide;
  4.               }Cb;


Il suffit de faire:

Code :
  1. struct Cb {
  2. int carte[15];
  3. bool vide;
  4. };


 
Puis d'utiliser l'Object Cb, comme tu le fais avec un object définit par "class".

Reply

Marsh Posté le 26-02-2003 à 08:32:06    

Comment puis-je etre aussi con?
mdr merci ct tt simplement laccolade mal placee.
merci pr tt et dsl pr les balises [Cpp]
En esperant ne plus vous revoir :)
++


---------------
Do you serve a purpose,Or purposely serve?
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed