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
cout<<carte.valeur()<<carte.couleur()<<"-";
valeur est une methode, donc faut les () sinon l'attribut valeaurs a un 's' a la fi
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.
If you'd like to join us, read "How do we work at OpenClassrooms"! :)