Partage
  • Partager sur Facebook
  • Partager sur Twitter

Debut difficile

    2 juin 2008 à 23:57:56

    Voila j'essaye de coder une classe jeu de carte (c'est la premiere fois pour moi que je fais de la POO) et les résultats que le compilateur me donnent ne sont pas très clairs(cout undeclared, rand undeclared,...)
    d'ou viennent ces problemes?

    Fichier jeuCarte.cpp
    #include <iostream>
    #include <time.h>
    #include "jeuCarte.h"
    
    
    jeuCartes::jeuCartes(){
        //Propriétés générales
            nbCartes=32;
            nbCouleurs=4;
    
        //Definition des valeurs
            nbValeurs=8;
            valeurs=new char[nbValeurs+1];
            //On doit tout de meme rentrer manuellement les valeurs...
                valeurs[0]='7';valeurs[1]='8';valeurs[2]='9';valeurs[3]='10';
                valeurs[4]='V';valeurs[5]='D';valeurs[6]='R';valeurs[7]='A';
                valeurs[8]='\0';
    
        //Definition des couleurs
            nbCouleurs=4;
            couleurs=new char[nbCouleurs+1];
            //On rentre les couleurs qu'il y a
                valeurs[0]='C';valeurs[1]='T';
                valeurs[2]='P';valeurs[3]='K';
                valeurs[4]='\0';
    
        //On crée le jeu de carte à distribuer a partir d'un tableau de booleen
         /* Le tableau de booleen sera représenté de la manière suivante:
             C   1 1 1  1  1 1 1 1
             T   1 1 1  1  1 1 1 1
             P   1 1 1  1  0 1 1 1
             K   1 1 1  1  1 1 1 1
                 7 8 9 10  V D R A
    
          L'indice est 0(false) si la carte a été distribuée, 1(true) sinon
          */
          //On rangera les cartes en utilisant comme code carte=10*i+j
          *tableauBooleen=new bool[nbValeurs];
          for(int i=0;i<nbValeurs;i++){
            tableauBooleen[i]=new bool[nbCouleurs];
          }
    
          initTableauBooleen();
    
          jeu=new int[nbCartes];
          for (int i=0;i<nbCartes;i++){
              jeu[i]=-1;
          }
    
          // On initialise le jeu de 32 cartes
          int *compteur;
          compteur=new int;
          while (nombreCartesBool!=0){
              int i=rand()%nbValeurs;
              int j=rand()%nbCouleurs;
              if (tableauBooleen[i][j]==true){
                jeu[compteur]=10*i+j;
                compteur++;
                nombreCartesBool--;
                tableauBooleen=false;
              }
          }
          delete(compteur);
          nbCartesRestantes=0;
    }
    
    void jeuCartes::initTableauBooleen(){
        for (int i=0;i<nbValeurs;i++){
              for (int j=0;j<nbCouleurs;j++){
                tableauBooleen[i][j]=true;
              }
          }
        nombreCartesBool=nbCartes;
    }
    
    void jeuCartes::afficherJeu(){
        for (int i=nbCartes-nbCartesRestantes;i<nbCartes;i++){
            card carte(jeu[i]);
            cout<<carte.valeur<<carte.couleur<<"-";
        }
    }
    
    card::card(int codeEnvoye){
        code=codeEnvoye;
        valeur=jeuDeCarte.valeurs[codeEnvoye%10];
        couleur=jeuDeCarte.couleurs[(codeEnvoye-codeEnvoye%10)/10];
    }
    


    Fichier jeuCartes.h
    #ifndef DEF_JEUCARTES
    #define DEF_JEUCARTES
    class jeuCartes{
       public:
            jeuCartes();
            void afficherJeu();
       private:
    
            void initTableauBooleen();
    
            int nbCartes;
            int nbValeurs;
            char *valeurs;
            int nbCouleurs;
            char *couleurs;
            bool **tableauBooleen;
            int nombreCartesBool;
            int *jeu;
            int nbCartesRestantes;
    };
    
    class card{
        public:
            card(int codeEnvoye);
        private:
            int code;
            char couleur();
            char valeur();
    
    };
    
    #endif
    
    • Partager sur Facebook
    • Partager sur Twitter
      3 juin 2008 à 0:05:11

      Rajoutes :

      using namespace std;
      


      après tes includes, et ça devrai aller déjà mieux ^^
      • Partager sur Facebook
      • Partager sur Twitter
        3 juin 2008 à 0:11:05

        Copie-colle la liste exacte et complète des erreurs du compilateur si tu veux qu'on puisse complètement t'aider. :)
        • Partager sur Facebook
        • Partager sur Twitter

        If you'd like to join us, read "How do we work at OpenClassrooms"! :)

          3 juin 2008 à 0:13:25

          C'est ce que j'allais faire, le voila qu'il m'insulte maintenant :'(
          D:\Langage C++\Belote\Belote\jeuCarte.cpp||In member function `void jeuCartes::afficherJeu()':|
          D:\Langage C++\Belote\Belote\jeuCarte.cpp|78|error: no match for 'operator<<' in 'std::cout << carte.card::valeur'|
          C:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\include\c++\3.4.2\bits\ostream.tcc|63|note: candidates are: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ostream<_CharT, _Traits>&(*)(std::basic_ostream<_CharT, _Traits>&)) [with _CharT = char, _Traits = std::char_traits<char>]|
          C:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\include\c++\3.4.2\bits\ostream.tcc|74|note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ios<_CharT, _Traits>&(*)(std::basic_ios<_CharT, _Traits>&)) [with _CharT = char, _Traits = std::char_traits<char>]|
          C:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\include\c++\3.4.2\bits\ostream.tcc|86|note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(std::ios_base&(*)(std::ios_base&)) [with _CharT = char, _Traits = std::char_traits<char>]|
          C:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\include\c++\3.4.2\bits\ostream.tcc|121|note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(long int) [with _CharT = char, _Traits = std::char_traits<char>]|
          C:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\include\c++\3.4.2\bits\ostream.tcc|155|note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(long unsigned int) [with _CharT = char, _Traits = std::char_traits<char>]|
          C:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\include\c++\3.4.2\bits\ostream.tcc|98|note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(bool) [with _CharT = char, _Traits = std::char_traits<char>]|
          C:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\include\c++\3.4.2\ostream|178|note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(short int) [with _CharT = char, _Traits = std::char_traits<char>]|
          C:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\include\c++\3.4.2\ostream|189|note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(short unsigned int) [with _CharT = char, _Traits = std::char_traits<char>]|
          C:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\include\c++\3.4.2\ostream|193|note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(int) [with _CharT = char, _Traits = std::char_traits<char>]|
          C:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\include\c++\3.4.2\ostream|204|note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(unsigned int) [with _CharT = char, _Traits = std::char_traits<char>]|
          C:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\include\c++\3.4.2\bits\ostream.tcc|179|note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(long long int) [with _CharT = char, _Traits = std::char_traits<char>]|
          C:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\include\c++\3.4.2\bits\ostream.tcc|214|note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(long long unsigned int) [with _CharT = char, _Traits = std::char_traits<char>]|
          C:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\include\c++\3.4.2\bits\ostream.tcc|238|note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(double) [with _CharT = char, _Traits = std::char_traits<char>]|
          C:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\include\c++\3.4.2\ostream|219|note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(float) [with _CharT = char, _Traits = std::char_traits<char>]|
          C:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\include\c++\3.4.2\bits\ostream.tcc|261|note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(long double) [with _CharT = char, _Traits = std::char_traits<char>]|
          C:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\include\c++\3.4.2\bits\ostream.tcc|284|note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(const void*) [with _CharT = char, _Traits = std::char_traits<char>]|
          C:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\include\c++\3.4.2\bits\ostream.tcc|307|note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_streambuf<_CharT, _Traits>*) [with _CharT = char, _Traits = std::char_traits<char>]|
          C:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\include\c++\3.4.2\ostream|449|note:                 std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, char) [with _CharT = char, _Traits = std::char_traits<char>]|
          C:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\include\c++\3.4.2\bits\ostream.tcc|505|note:                 std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, char) [with _Traits = std::char_traits<char>]|
          C:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\include\c++\3.4.2\ostream|460|note:                 std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, signed char) [with _Traits = std::char_traits<char>]|
          C:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\include\c++\3.4.2\ostream|465|note:                 std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, unsigned char) [with _Traits = std::char_traits<char>]|
          C:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\include\c++\3.4.2\bits\ostream.tcc|567|note:                 std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, const char*) [with _CharT = char, _Traits = std::char_traits<char>]|
          C:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\include\c++\3.4.2\bits\ostream.tcc|612|note:                 std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const char*) [with _Traits = std::char_traits<char>]|
          C:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\include\c++\3.4.2\ostream|499|note:                 std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const signed char*) [with _Traits = std::char_traits<char>]|
          C:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\include\c++\3.4.2\ostream|504|note:                 std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const unsigned char*) [with _Traits = std::char_traits<char>]|
          D:\Langage C++\Belote\Belote\jeuCarte.cpp||In constructor `card::card(int)':|
          D:\Langage C++\Belote\Belote\jeuCarte.cpp|84|error: `jeuDeCarte' undeclared (first use this function)|
          D:\Langage C++\Belote\Belote\jeuCarte.cpp|84|error: (Each undeclared identifier is reported only once for each function it appears in.)|
          ||=== Build finished: 3 errors, 0 warnings ===|
          • Partager sur Facebook
          • Partager sur Twitter
            3 juin 2008 à 0:20:39

            cout<<carte.valeur()<<carte.couleur()<<"-";
            valeur est une methode, donc faut les () ;) sinon l'attribut valeaurs a un 's' a la fi
            • Partager sur Facebook
            • Partager sur Twitter

            Debut difficile

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown