[CPP] projet Cephalopod

Page 2 sur 4 Précédent  1, 2, 3, 4  Suivant

Voir le sujet précédent Voir le sujet suivant Aller en bas

Re: [CPP] projet Cephalopod

Message  smb le Sam 04 Déc 2010, 17:44

Qui plus est, je crois l'avoir dit au cours , avec la classe Chaine lorsque j'ai parlé des instanciations :

C'est quoi ça :

Chaine str() ;

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

Re: [CPP] projet Cephalopod

Message  bluestyle le Lun 06 Déc 2010, 00:32

Bonjour,
je voulais savoir si c'est possible d'indiquer lors de la lecture au clavier (avec le "cin") qu'on désire avoir que des chiffres et pas d'autres caractères?

bluestyle

Nombre de messages : 10
Prénom : Liron
Date d'inscription : 28/11/2010

Revenir en haut Aller en bas

Re: [CPP] projet Cephalopod

Message  nvs le Lun 06 Déc 2010, 09:13

bluestyle a écrit:je voulais savoir si c'est possible d'indiquer lors de la lecture au clavier (avec le "cin") qu'on désire avoir que des chiffres et pas d'autres caractères?
oui, c'est possible : tu peux afficher tes desiderata sur l'écran de la console, mais rien ne garantit que l'utilisateur ne frappera que des chiffres. peut-être qu'en le menaçant, il fera plus attention à tes désirs, mais s'il a l'esprit rebelle, il s'en tamponnera. il faut donc toujours vérifier les chaînes fournies a posteriori.

note que cela n'a rien à voir avec le langage de programmation, mais avec la docilité et l'adresse -- éventuellement biaisée par son degré d'ivresse -- de l'utilisateur.

une autre approche serait de ne lire que des chiffres et pas d'autres caractères, c'est-à-dire extraire du flux les chiffres et laisser dans le flux le reste. c'est compliqué... et laid, à mon goût Smile









clown

_________________

nvs

Nombre de messages : 5238
Age : 43
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: [CPP] projet Cephalopod

Message  mvh le Lun 06 Déc 2010, 09:38

[HS]
pas très optimiste ...
nvs le misanthrope a écrit:...
note que cela n'a rien à voir avec le langage de programmation, mais avec la docilité et l'adresse -- éventuellement biaisée par son degré d'ivresse -- de l'utilisateur.
...
... mais une belle leçon de vie quand même !
[/HS]

_________________

La fête c'est nul sans Kidibul !
... (vieux proverbe local)



mvh

Nombre de messages : 5973
Age : 104
Prénom : Marcel VANHAELEN
Statut : (fin de bail)
Win 3.1 à reprendre
Localisation : Koekeliek de Baselberg
Date d'inscription : 06/12/2006

Revenir en haut Aller en bas

Re: [CPP] projet Cephalopod

Message  pbt le Lun 06 Déc 2010, 20:12

nvs a écrit:
oui, c'est possible : tu peux afficher tes desiderata sur l'écran de la console, mais rien ne garantit que l'utilisateur ne frappera que des chiffres. peut-être qu'en le menaçant, il fera plus attention à tes désirs, mais s'il a l'esprit rebelle, il s'en tamponnera. il faut donc toujours vérifier les chaînes fournies a posteriori.


Ceci est très joliement dit.

Cette manière de voir les choses à normalement déjà été exposée lors de ton cours de Java en première. Lorsqu'il faut lire une donnée entrée par l'utilisateur, il faut toujours lire ce qu'il veut bien entrer comme données ... et ensuite regarder si cela te convient.

Si ce n'est pas le cas, gentiement lui demander de réentrer autres choses ... il se lassera avant le programme.

_________________
smartq.namok.be · faq ·  · IRC / irc.freenode.net #esi · blog.namok.be
style #pbt {heigth:189cm; weight:79kg; eye-color:#524000; hair:very short; dead pixels: some; }

pbt
Admin

Nombre de messages : 4862
Age : 45
Prénom : Pierre
Statut : prof
Localisation : La cité des géants
Date d'inscription : 24/11/2005

http://esi.namok.be

Revenir en haut Aller en bas

Re: [CPP] projet Cephalopod

Message  mvh le Mar 07 Déc 2010, 10:39


pbt a écrit:...
Lorsqu'il faut lire une donnée entrée par l'utilisateur, il faut toujours lire ce qu'il veut bien entrer comme données ... et ensuite regarder si cela te convient.
...
Ceci est très joliement dit ... aussi !

_________________

La fête c'est nul sans Kidibul !
... (vieux proverbe local)



mvh

Nombre de messages : 5973
Age : 104
Prénom : Marcel VANHAELEN
Statut : (fin de bail)
Win 3.1 à reprendre
Localisation : Koekeliek de Baselberg
Date d'inscription : 06/12/2006

Revenir en haut Aller en bas

Re: [CPP] projet Cephalopod

Message  didi le Mar 07 Déc 2010, 23:24

bonsoir à tous

j'ai une problème de compilation de projet

je vien de creér une classe Etat
just le Etat.h
Code:

#ifndef ETAT_H_
#define ETAT_H_

#include "De.h"
#include "typesCommuns.h"
#include "Position.h"
#include "Plateau.h"
#include "Joueur.h"
#include "Etat.h"



using namespace std;

class Etat   {
private :
   Plateau   plateau ;
   Joueur joueurCourant ;
   Joueur joueurGagnant ;

public :
   Etat(unsigned int ligne ,unsigned int colonne);
   Etat(Plateau unPlateau,Joueur unJoueur,Joueur gagnant);
   Plateau getPlateau();
   Joueur getJoueurCourant();
   Joueur getJoueurGagnant();
   void changeJoueurCourant();
};

mais le compilater ne trouve pas les fichiers .h

#include "Plateau.h"
#include "Joueur.h"


j'ai comme erreur :

Code:
..\src\/Etat.h:26:2: error: 'Joueur' does not name a type
..\src\/Etat.h:31:2: error: 'Plateau' does not name a type

merci d'avance
et bonne soirée


didi

Nombre de messages : 215
Prénom : Dinesh
Statut : Smile
Date d'inscription : 21/01/2009

Revenir en haut Aller en bas

Re: [CPP] projet Cephalopod

Message  nvs le Mar 07 Déc 2010, 23:30

didi a écrit:j'ai une problème de compilation de projet

je vien de creér une classe Etat
just le Etat.h
Code:

#ifndef ETAT_H_
#define ETAT_H_

#include "De.h"
#include "typesCommuns.h"
#include "Position.h"
#include "Plateau.h"
#include "Joueur.h"
#include "Etat.h"

[...]
je ne sais pas trop pour les problèmes que tu rencontres -- j'ai ma petite idée --, mais inclure Etat.h dans Etat.h, c'est assez burné je trouve Very Happy









rabbit

_________________

nvs

Nombre de messages : 5238
Age : 43
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: [CPP] projet Cephalopod

Message  didi le Mar 07 Déc 2010, 23:39

c'est vrai Smile
mais je viens de le corriger le même problem ...Sad
est-ce que c'est les classes sont limitées dans un repertoir source ..? Smile
(celui la paraît une questione bête mais bon on sais jamais Smile )

didi

Nombre de messages : 215
Prénom : Dinesh
Statut : Smile
Date d'inscription : 21/01/2009

Revenir en haut Aller en bas

Re: [CPP] projet Cephalopod

Message  smb le Mer 08 Déc 2010, 08:48

J'ai aussi une petite idée :

Si dans Plateau tu utilises des objets Etat (et non des pointeurs), tu dois inclure le fichier Etat.h.
Si dans Etat tu utilises un objet Plateau (et non des pointeurs), tu dois inclure le fichier Plateau.h.
etc...

Et voilà un beau serpent qui se mange la queue !

Code:

class B {
   A a;
};

class A {
   B b;
};
Dans l'exemple ci-dessus, pour construire un objet B, le compilateur a besoin de connaître la taille de l'objet A, qui lui-même contient un objet B dont il doit connaître la taille pour être construit.
cqfd

Pour résoudre le problème, voir entre autre , points [34.6] et suivants :
http://jlecomte.ifrance.com/c++/c++-faq-lite/misc-technical-issues-fr.html

santa

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

Re: [CPP] projet Cephalopod

Message  didi le Mer 08 Déc 2010, 11:02

merci

Si dans Plateau tu utilises des objets Etat (et non des pointeurs), tu dois inclure le fichier Etat.h.
Si dans Etat tu utilises un objet Plateau (et non des pointeurs), tu dois inclure le fichier Plateau.h.

mais dans mes classe je n'ai pas de objet Etat

classe Plateau :
Code:

#ifndef PLATEAU_H_
#define PLATEAU_H_
#include "De.h"
#include "Position.h"
#include "typesCommuns.h"
#include "Joueur.h"
#include <vector>


class Plateau   {
private :
   unsigned short NBLIGNE;
   unsigned short NBCOLONNE;
   vector<vector<De> > plateau;

public :
   Plateau();
   Plateau(unsigned short ligne,unsigned short colonne = 4);
   Plateau(const Plateau& autre);
   Plateau& operator=(const Plateau& autre);
   void affiche();
   void placerUnDe(Position unePos,De unDe);
   De getDe(Position p1);
   bool estAuNord(Position unePosition);
   bool estALEst(Position unePosition);
   bool estAuSud(Position unePosition);
   bool estAlOuest(Position unePosition);
   Position voisinNord(Position unePosition);
   Position voisinSud(Position unePosition);
   Position voisinEst(Position unePosition);
   Position voisinOuest(Position unePosition);
   De enleverDe(Position unePosition);
   bool isLibre(Position unePosition);
   vector<Position> lesVoisin(Position unePosition);
   bool isFull();
};

classe Joueur :
Code:

#ifndef JOUEUR_H_
#define JOUEUR_H_
#include "De.h"
#include "typesCommuns.h"
#include "Position.h"
#include "Plateau.h"
#include "Etat.h"
#include <stdlib.h>
#include <iostream>
using namespace std;
class Joueur   {
private :
   COULEUR couleur;
   unsigned int nbDe;

public :
   Joueur();
   Joueur(COULEUR uneCouleur);
   Joueur(const Joueur& autre );
   Joueur& operator=(const Joueur& autre);
   COULEUR getCouleur();
   unsigned int getNbDe();

};

#endif

toujour les erreurs ...... Crying or Very sad Sad

didi

Nombre de messages : 215
Prénom : Dinesh
Statut : Smile
Date d'inscription : 21/01/2009

Revenir en haut Aller en bas

Re: [CPP] projet Cephalopod

Message  smb le Mer 08 Déc 2010, 11:10

Commence par retirer tous les #include non nécessaires de chaque header !
Ensuite, quels sont les messages d'erreurs ?

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

Re: [CPP] projet Cephalopod

Message  didi le Mer 08 Déc 2010, 11:42



Dernière édition par didi le Mer 08 Déc 2010, 12:21, édité 2 fois

didi

Nombre de messages : 215
Prénom : Dinesh
Statut : Smile
Date d'inscription : 21/01/2009

Revenir en haut Aller en bas

Re: [CPP] projet Cephalopod

Message  smb le Mer 08 Déc 2010, 11:52

Parce que la présence d'un header inutile était à la base de l'erreur de compilation !

Wink

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

Re: [CPP] projet Cephalopod

Message  didi le Mer 08 Déc 2010, 12:17

nonnnnnnnnn
je viens de retirer tous les #include qui sert à rien ..

dans le Joueur j'ai un methode :

Code:
void joueur(Etat unEtat)

dans la classe Etat il ne trouve plus le Joueur

Code:
Joueur' does not name a type

mais quand je met en commentaire cette methode (void joueur(Etat unEtat)
alors il n'y aucune problème ...
(j'ai erreurs que dans la classe Etat )



didi

Nombre de messages : 215
Prénom : Dinesh
Statut : Smile
Date d'inscription : 21/01/2009

Revenir en haut Aller en bas

Re: [CPP] projet Cephalopod

Message  smb le Mer 08 Déc 2010, 12:27

La réponse est dans une de mes réponses précédentes !

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

Re: [CPP] projet Cephalopod

Message  didi le Mer 08 Déc 2010, 12:31

smb a écrit:La réponse est dans une de mes réponses précédentes !

oui je l'ai essayé aussi :

Code:
using namespace std;
class Joueur;
class Etat   {
private :
   Plateau   plateau ;
   Joueur joueurCourant ;
   Joueur joueurGagnant ;

public :
   Etat();
   Etat(Plateau unPlateau,Joueur unJoueur,Joueur gagnant);
   Plateau getPlateau();
   Joueur getJoueurCourant();
   Joueur getJoueurGagnant();
   void changeJoueurCourant();
};


cette fois une autre erreur comme :
Code:
error: field 'joueurCourant' has incomplete type
error: field 'joueurGagnant' has incomplete type


didi

Nombre de messages : 215
Prénom : Dinesh
Statut : Smile
Date d'inscription : 21/01/2009

Revenir en haut Aller en bas

Re: [CPP] projet Cephalopod

Message  smb le Mer 08 Déc 2010, 12:42

C'est normal car il ne connaît pas le type Joueur !

La déclaration class Joueur ne suffit pas, il faut le header dans ce cas !

Par contre, si tu avais dans ta classe :
Joueur * joueurCourant;
Joueur * joueurGagnant;

Là, ....

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

Re: [CPP] projet Cephalopod

Message  didi le Mer 08 Déc 2010, 13:12

mais même après avoir inclure le Joueur.h aussi même chose ....................
je suis vraiment coincé .....
Sad

didi

Nombre de messages : 215
Prénom : Dinesh
Statut : Smile
Date d'inscription : 21/01/2009

Revenir en haut Aller en bas

Re: [CPP] projet Cephalopod

Message  smb le Mer 08 Déc 2010, 13:22

Le problème avec toi c'est qu'on ne sait pas où tu en es dans tes modifications, et quels sont les nouveaux messages du compilateur.

As-tu essayé avec les pointeurs Joueur *, sans inclure le header Joueur.h mais en faisant une déclaration anticipée class Joueur ?

Le header Joueur.h devra être inclus dans le .cpp.

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

Re: [CPP] projet Cephalopod

Message  didi le Mer 08 Déc 2010, 13:58

( c'est vrai que la reference que vous avez donner pour un objet qui contien
un pointer d'un autre objet )
dans mon cas c'est pas ça ...

jen sais pas beacoup quelle est l'interêt d'avoir un Joueur * que un Joueur
pour un Joueur * je doit allouer la mémoire dynamique et à la fin en doit liberer la mémoir
mais pour un Joueur le constructeur creér un objet de ce type et détruit cet objet à la fin de la block
que celui apparait ..
(sauf si j'utilise mot clé new )
donc je n'ai pas utiliser un pointer de Joueur

mes problem vien de class Etat ...
il ne trouve pas le class Joueur
(qui contien une methode qui reçoit en parametre une Etat
mais là il y a aucun problem dans le classe Joueur )
si je met cette methode en commentair
la classe etat passe bien en compilation . pas d'erreur ....




didi

Nombre de messages : 215
Prénom : Dinesh
Statut : Smile
Date d'inscription : 21/01/2009

Revenir en haut Aller en bas

Re: [CPP] projet Cephalopod

Message  smb le Mer 08 Déc 2010, 14:19

Pointeur ou référence, quasi même combat dans ce cas.
Mais je commence à perdre patience et je crois que tu n'as pas compris tous les messages que j'ai posté !

Ma dernière réponse est la suivante :
dans le header Joueur.h retire l'inclusion de Etat.h
et fais ceci void joueur(class Etat & unEtat);
plutôt que void joueur(Etat unEtat);

et n'oublie pas d'inclure les headers nécessaires dans Joueur.cpp

Bonne chance, je passe le relais à un collègue compatissant...

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

Re: [CPP] projet Cephalopod

Message  didi le Mer 08 Déc 2010, 14:43

meeeeeeeeeeeerci
ça marche bien avec
et fais ceci void joueur(class Etat & unEtat);

mais c'est comment ..?
on a pas inclure le fichier Etat.h

dans la methode on a simplement dit que class Etat & c'est une reference d'une classe
s'appelle Etat , mais le compilateur comment il trouve ce fichier ...
(par defaut il cherche une classe s'appelle Etat dans le repertoire courant ..? )

didi

Nombre de messages : 215
Prénom : Dinesh
Statut : Smile
Date d'inscription : 21/01/2009

Revenir en haut Aller en bas

Re: [CPP] projet Cephalopod

Message  nvs le Mer 08 Déc 2010, 14:49

didi a écrit:[...] le compilateur comment il trouve ce fichier ...
(par defaut il cherche une classe s'appelle Etat dans le repertoire courant ..? )
l'include est dans le .cpp.






cyclops

_________________

nvs

Nombre de messages : 5238
Age : 43
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: [CPP] projet Cephalopod

Message  didi le Sam 11 Déc 2010, 11:14

bonjour j'ai une erreur d'execution
dans la methode jouer(class Etat & unEtat); dans le classe Joueur;
et fais ceci void jouer(class Etat & unEtat);



la methode est :

Code:
void Joueur :: jouerUnCoup(class Etat& unEtat)   {
   unsigned int ligne = 2;
   unsigned int colonne = 2;
   Position pos;
   De unDe(ROUGE,9);
   vector<Position> vect;
   pos = Position(ligne,colonne);
   unEtat.getPlateau().placerUnDe(pos,unDe);
   vect = unEtat.getPlateau().lesVoisin(pos); // cette endroit il y a d'erreur d'execution .. :(
      
}

dans le classe plateau il ya une methode :
Code:
vector<Position> lesVoisin(Position unePosition);

quand j'appelle cette methode apartir de classe Joueur
( via la methode jouer(class Etat & unEtat));
il y d'erreur execution

mais je tester cette methode dans le main ça fontionne bien
(il n'y a pas d'erreur message .. )

main :

Code:
int main()   {
   Position P1(3,3),P2(3,2),P3(2,3),P4(3,4),P5(4,3);
   Etat etat ;
   vector<Position>vect;
   Plateau tab;
   Joueur moi;
   Joueur toi;
   De uneDe(BLUE,5);
   tab.placerUnDe(P1,uneDe);
   etat = Etat (&tab,moi,toi);
   etat.getPlateau().placerUnDe(P1,uneDe);
   etat.getPlateau().placerUnDe(P2,uneDe);
   etat.getPlateau().placerUnDe(P3,uneDe);
   etat.getPlateau().placerUnDe(P4,uneDe);
   etat.affiche();

   vect = etat.getPlateau().lesVoisin(P1);
        cout << "\nnombr des voisins de point P1 : "<< vect.size() ;
   cout << "\nparcour des voisins de point P1 : \n";
   for(unsigned int i = 0; i <vect.size();i++)   {
      vect[i].affiche();
   }

   moi.jouerUnCoup(etat); // erruer d'execution
   return 0;

}

je pense l'erreur viens de la déclaration de methode void jouer(class Etat & unEtat);
mais j'ai tester toutes les methodes de plateau à partir de cette methode
par example :

Code:
unEtat.getPlateau().placerUnDe(pos,unDe);
unEtat.getPlateau().estAuNord(pos);
...
toutes les methodes fonctionnent bien seulment la methode
Code:
vector<Position> lesVoisin(Position unePosition);
qui a le problem ..

quelqu'un une idée ..?
merci d'avance

didi

Nombre de messages : 215
Prénom : Dinesh
Statut : Smile
Date d'inscription : 21/01/2009

Revenir en haut Aller en bas

Re: [CPP] projet Cephalopod

Message  Contenu sponsorisé Aujourd'hui à 21:00


Contenu sponsorisé


Revenir en haut Aller en bas

Page 2 sur 4 Précédent  1, 2, 3, 4  Suivant

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum