Llialn | Comment se fait il que lorsque j'effectue une action en utilisant cette classe, il ne mémorise pas les valeurs modifiées et me ressort à chaque fois les valeurs que je lui met lorsque je l'initialise. Pour les courageux, voici le code :
Code :
- #include "Attributs.h"
- Attributs::Attributs()
- {
- //cout<<"Constructeur par défaut Attributs"<<endl;
- for(int i=0; i<5; i++)
- {
- tableau[i]=5;
- }
- caractere=5;
- sociabilite=5;
- nourriture=5;
- proprete=5;
- sante=5;
- vie=15000;
- evolution=0;
- compteur1=5;
- sortie=tab[0]=true;
- }
- /***************************************************************************************************************************************/
- //Cette méthode consiste à ajouter le nombre voulu de points dans l'attribut que l'on souhaite. Cela dépend de l'action effectuée par le tama
- void Attributs::ajouter(int &var, int &att)
- {
- //cout<<"méthode ajouter"<<endl;
- //var représente la valeur à ajouter et att représente l'attribut choisi
- switch (att)
- {
- case(1): caractere+=var; //1 pour le caractere
- tableau[0]=caractere;
- if(caractere>10)
- {
- caractere=10;
- tableau[0]=caractere;
- }
- //stocker.tableau[0]=caractere;
- break;
- case(2): sociabilite+=var; //2 pour la soc
- tableau[1]=sociabilite;
- if(sociabilite>10)
- {
- sociabilite=10;
- tableau[1]=sociabilite;
- }
- //stocker.tableau[1]=sociabilite;
- break;
- case(3): nourriture+=var; //3 pour la nourriture
- tableau[2]=nourriture;
- if(nourriture>10)
- {
- nourriture=10;
- tableau[2]=nourriture;
- }
- // stocker.tableau[2]=nourriture;
- break;
- case(4): proprete+=var; //4 pour la proprete
- tableau[3]=proprete;
- if(proprete>10)
- {
- proprete=10;
- tableau[3]=proprete;
- }
- //stocker.tableau[3]=proprete;
- break;
- case(5): sante+=var; //5 pour la sante
- tableau[4]=sante;
- if(sante>10)
- {
- sante=10;
- tableau[4]=sante;
- }
- //stocker.tableau[4]=sante;
- break;
- default: cout<<"erreur manip"<<endl; //si aucun des chiffres désignés, erreur manip
- break;
- }
- //stocker.recevoir(caractere, sociabilite, nourriture, proprete, sante);
- }
- /**************************************************************************************************************/
- //Cette méthode consiste à enlever le nombre voulu de points dans l'attribut que l'on souhaite. Cela dépend de l'action effectuée par le tama
- void Attributs::enlever(int &var, int &att)
- {
- //cout<<"méthode enlever"<<endl;
- //var représente la valeur à enlever et att représente l'attribut choisi
- switch (att)
- {
- case(1): caractere-=var; //1 pour le caractere
- tableau[0]=caractere;
- if(caractere<0)
- {
- caractere=0;
- tableau[0]=caractere;
- }
- // stocker.tableau[0]=caractere;
- break;
- case(2): sociabilite-=var; //2 pour la soc
- tableau[1]=sociabilite;
- if(sociabilite<0)
- {
- sociabilite=0;
- tableau[1]=sociabilite;
- }
- // stocker.tableau[1]=sociabilite;
- break;
- case(3): nourriture-=var; //3 pour la nourriture
- tableau[2]=nourriture;
- if(nourriture<0)
- {
- nourriture=0;
- tableau[2]=nourriture;
- }
- // stocker.tableau[2]=nourriture;
- break;
- case(4): proprete-=var; //4 pour la proprete
- tableau[3]=proprete;
- if(proprete<0)
- {
- proprete=0;
- tableau[3]=proprete;
- }
- // stocker.tableau[3]=proprete;
- break;
- case(5): sante-=var; //5 pour la sante
- tableau[4]=sante;
- if(sante<0)
- {
- sante=0;
- tableau[4]=sante;
- }
- // stocker.tableau[4]=sante;
- break;
- default: cout<<"erreur manip"<<endl; //si aucun des chiffres désignés, erreur manip
- break;
- }
- //stocker.recevoir(caractere, sociabilite, nourriture, proprete, sante);
- }
- /********************************************************************************************************/
- bool Attributs::sortir()
- {
- //cout<<"methode sortir de attributs"<<endl;
- sortie=!sortie;
- tab[0]=sortie;
- return tab[0];
- }
- /*******************************************************************************************************/
- void Attributs::afficher()
- {
- cout<<"Voici les scores :"<<endl;
- cout<<"Caractère : "<<tableau[0]<<endl;
- cout<<"Sociabilite : "<<tableau[1]<<endl;
- cout<<"Nourriture : "<<tableau[2]<<endl;
- cout<<"Proprete : "<<tableau[3]<<endl;
- cout<<"Santé : "<<tableau[4]<<endl;
- //cout<<"méthode afficher"<<endl;
- //stocker.score();
- }
- /********************************************************************************************************/
- bool Attributs::acesseur()
- {
- //cout<<"acesseur de attributs"<<endl;
- tab[0]=sortie;
- return tab[0];
- }
- /********************************************************************************************************/
- void Attributs::stocker1()
- {
- cout<<"Méthode stocker"<<endl;
- FILE *fp = fopen("test.txt", "w+" );
- //fwrite(essai, sizeof(int), 2, fp);
- fprintf(fp, "%d", caractere);
- fprintf(fp, "%d", sociabilite);
- fprintf(fp, "%d", nourriture);
- fprintf(fp, "%d", proprete);
- fprintf(fp, "%d", sante);
- fclose(fp);
- }
- /*********************************************************************************************************/
- void Attributs::lire()
- {
- cout<<"Méthode lire"<<endl;
- // FILE *fichier;
- /*if (fscanf(stdin, "%d", &i))
- printf("L'entier lu est : %i\n", i);
- else {
- printf("Erreur lors de la lecture depuis le fichier d'entrée standard.\n" );
- return 1;*/
- getch();
- //fichier=fopen("test.txt", "w+" );
- //fread( tableau, sizeof(int), 5, fichier );
- for(int i=0; i<5; i++)
- {
- //fscanf( fichier, "%d", tableau[i] );
- }
- /* tableau[0]=caractere;
- tableau[1]=sociabilite;
- tableau[2]=nourriture;
- tableau[3]=proprete;
- tableau[4]=sante;*/
- }
|
Message édité par Llialn le 01-06-2005 à 10:21:49
|