IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Désespéré :D Help svp


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Points : 21
    Points
    21
    Par défaut Désespéré :D Help svp
    Bon voila je m'explique j'ai un projet de bataille navale à réaliser et j'ai un gros soucis voila je m'explique en faite j'ai deux joueurs, j'ai donc créer un constructeur de joueur qui creer 4 bateaux jusque la tout ce passe bien. J'ai créer également 2 tableau ou sont enregistrer les positions des bateaux (0 si pas de bateaux, 2 si detro, 3 si ss marin etc...) bon j'attaque mon probleme Voila il y a donc deux joueurs mais le probleme est que je n'arrive pas a faire comprendre que le joueurs 1 place les bateaux et ensuite c'est le joueurs 2 j'ai créer une fonction PlacementBateaux et je veux donc passer un paramètre et faire les appels pour le J1 d'abord et apres le J2 voila si quelqu'un pouvait m'aider c'est une des dernière chose qu'il me reste a faire car sinon le reste marche a peu pres correctement Merci d'avance

    ps: j'ai deja éssayer de passer un tableau en paramètre (mais je c'est pas comment faire donc bcp d'erreur dont une probleme de convertion int int ** et la en ce moment je suis sur une fonction qui retourne le tableau du joueur correspondant a l'intérieur du paramètre ==> placementBateau(J1.GetSonTableau()) sans succes également erreur que je n'arrive a corriger

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Points : 21
    Points
    21
    Par défaut
    personne ???

    Un autre truc t'en que je suis sur ce poste est-ce possible de passer un constructeur en parametre ou de creer un constructeur global pour l'ensemble du code et non pas pour seulement une fonction merci

  3. #3
    Membre actif Avatar de lun4t1k
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    276
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 276
    Points : 274
    Points
    274
    Par défaut
    Tu peux toujours créer des surclasses qui appelent les constructeurs d'autres classes pour rassembler.

    sinon pour le premier post, tout est en bloc j'ai pas lu.
    si tu poses du code et un pb précis tu auras de l'aide...

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Points : 21
    Points
    21
    Par défaut
    ok merci du conseil
    Donc je vais essayer d'expliquer plus clairement je voudrai donc passer en paramètre un tableau pour que suivant le paramètre c'est ce tableau qui soit modifier dans ma fonction pour le moment j'ai essayer:

    1 er méthode:
    void Partie:lacementBateaux(int ** Tab)
    {
    ...
    Tab[SonX-1][SonY-1])=Taille
    ...
    }
    PlacementBateaux(TabBateauxJ1);
    int TabBateauxJ1 [25][25]
    erreur obtenu:
    1>e:\Partie.cpp(152) : error C2664: 'Partie:lacementBateaux'*: impossible de convertir le paramètre 1 de 'int [25][25]' en 'int **'
    2nd méthode:
    la définition et la déclaration de ma fonction est la même
    appel de la fonction :
    PlacementBateaux(J1.GetSonTableaux());
    ma fonction GetSonTableaux est sencer retourner le tableau du J1

    int** Joueurs::GetSonTableau(std::string Joueurs)
    {
    int** Ptr_J1=new TabBateauxJ1;
    return Ptr_J1;
    }
    La je suis pas trop sur de ma fonction...

    et la l'erreur obtenu vient donc de ma fonction Get :
    1>e:\Joueurs.cpp(29) : error C2061: erreur de syntaxe*: identificateur 'TabBateauxJ1'
    voila j'éspère avoir été plus claire que avant merci




    et sinon un dernier probleme sa en fait oui ^^ donc j'ai construit mon J1 et mon J2 dans une fonction init() il sont donc local à la fonction ??? car apres je veux les réutiliser il me dit que J1 n'est pas déclarer comment faire svp car je ne peu pas les reconstruire sa réinitialiserai tout mes donner a chque tour

  5. #5
    Membre actif Avatar de lun4t1k
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    276
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 276
    Points : 274
    Points
    274
    Par défaut
    et sinon un dernier probleme sa en fait oui ^^ donc
    C'est bizarre tu écris comme tu parles?

    sinon utilise les balises codes [ code ][ /code ] prévues pour le code.

    Avec ça tu devrais t'en sortir, http://emmanuel-delahaye.developpez.....htm#param_tab
    (Merci Emmanuel )

    Pour le deuxième problème, si tu les déclares en tant qu'attributs de ta classe, tu peux t'en servir, met en place un accesseur.
    Mais attention aux règles d'héritages.

    Donne nous donc une hierarchie de tes classes, ca sera plus clair.
    Sinon regarde comment on crée une classe en C++.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Points : 21
    Points
    21
    Par défaut
    oui en effet j'ecrit comme je parle merci de m'avoir repondu aussi rapidement et merci pour le liens en ce qui concerne l'heritage de mes classe ba je n'ai pas d'héritage en faite

  7. #7
    Membre actif Avatar de lun4t1k
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    276
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 276
    Points : 274
    Points
    274
    Par défaut
    Tu n'as pas besoin d'héritage si tu n'as qu'une classe!
    Regarde la faq et va voir google.
    Apres si ya un probleme reviens

  8. #8
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Normal, int[25][25] et int** sont des types qui n'ont rien à voir.

    Déclare tout simplement ta fonction ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void Partie:PlacementBateaux(int Tab[25][25])
    {
    ...
    }

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Points : 21
    Points
    21
    Par défaut
    aaaaaaaaaahhhh ^^ merci beaucoup pour le lien sa marche ouffff depuis le temps que je cherchais je vais enfin pouvoir avancer un peu merci encore maintenant il me reste mon probleme de constructeur.
    Est-t-il possible de créer une fonction qui retourne un constructeur ??? en gros un accesseur de construcuteur ??? si oui comment merci

    Est-ce que cela est possible car quand je compile cela me produit une erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Class Joueurs
    {
                 Joueurs J1("J1");
                 Joueurs J2("J2");
                     public:
                 Joueurs(std::string);
    }

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Points : 21
    Points
    21
    Par défaut
    bon ba c'est remoi dsl mais j'ai pas compris, je voit pas comment on peu faire avec deux joueur pour les fonctions je vais pas créer deux fois la meme fonction pour chacun des joueurs .

    J'ai pencer a des constructeurs mais je n'arrive pas à les déclarer en global donc je c'est plus quoi faire ...

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Points : 21
    Points
    21
    Par défaut
    bon je fait une dernière tentaive svp comment fait-on pour déclarer ceci en global:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Joueurs J1;
    Joueurs J2;
    sachant que j'ai deux fichier Partie.hpp et .cpp et Joueurs.hpp .cpp

    Mon constructeur joueurs est de ce type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Joueurs::Joueurs()
    :PorteAvion(5),Cuirasse(4),Destroyer(3),Torpilleur(2)
    {...}
    Et je veut faire ceci:
    cette fonction si j'ai bien compris les constructeurs, cette fonction devrais donc décrémenter le bateaux toucher de un selon le joueurs et si il arrive a 0 ba couler

    merci pour ceux qui repondrons si il y a des reponces

  12. #12
    Membre actif Avatar de lun4t1k
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    276
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 276
    Points : 274
    Points
    274
    Par défaut
    Je suis désolé mais je n'arrive pas a comprendre ce que tu cherches a faire.
    Pourquoi declarer deux instance de joueurs en global?
    Tu t'en sers dans un main?

    postes tout ton code ici et s'il est trop conséquent va voir du coté de http://rafb.net rubrique paste pour le coller.
    (donnes l'adresse ensuite )

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Points : 21
    Points
    21
    Par défaut
    ba en faite si je veut utiliser mes J1 et J2 dans la fonction Tir() mais je ne peut pas les déclarer dans Tir() car cette fonction est appeller plusieur fois dans le programme donc sa réinitilisera mes Joueurs a chaque fois mais je ne sais pas ou les déclarer car si je les déclarer dans une autre fonction il me dit J1 et J2 non déclarer (logique il sont local à la fonction non ???)

    Donc je ne sais pas ou les mettre ... Voila si tu a toujours pas compris je te mettrai du code mais il est assez long

  14. #14
    Membre actif Avatar de lun4t1k
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    276
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 276
    Points : 274
    Points
    274
    Par défaut
    Bonjour,
    Va sur http://rafb.net rubrique paste et met le code complet commenté et qui compile.

    Après ca ira mieux

  15. #15
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 949
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 949
    Points : 5 665
    Points
    5 665
    Par défaut
    Pio,
    Citation Envoyé par tigger_riric
    ba en faite si je veut utiliser mes J1 et J2 dans la fonction Tir() mais je ne peut pas les déclarer dans Tir() car cette fonction est appeller plusieur fois dans le programme donc sa réinitilisera mes Joueurs a chaque fois mais je ne sais pas ou les déclarer car si je les déclarer dans une autre fonction il me dit J1 et J2 non déclarer (logique il sont local à la fonction non ???)

    Donc je ne sais pas ou les mettre ... Voila si tu a toujours pas compris je te mettrai du code mais il est assez long
    Sais-tu qu'on peut passer des paramètres à une fonction ?

  16. #16
    Membre régulier Avatar de fdubks
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 73
    Points : 81
    Points
    81
    Par défaut
    Bonjour,

    Il me semble que ta methode PlacementBateaux devrait être une methode de ta classe Joueur.
    En effet, dans ce cas, l'appel se ferait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    J1.PlacementBateaux();
    J2.PlacementBateaux();
    Bien que mes souvenir de bataille navale soit loin, il me semble que les deux joueurs ont des grilles indépendantes qui leur sont totalement propre.

    Dans ce cas, aucun probleme pour acceder à ta grille.


    Pour ce qui est de verifCouler, je n'ai pas compris ton problème. J1.verifCouler() ne devrait pas posé de probleme.

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Points : 21
    Points
    21
    Par défaut
    merci pour ceux qui on repondu, droggo pour repondre a ta question oui je c'est que l'on peut mettre des arguement en fonction c'est ainsi que j'ai fait pour réaliser mon placement de bateaux en passant en paramètre les tableaux des joueurs.

    Sinon fdubks c'est ce que je voudrai faire mais le probleme c'est qu eje ne sais pas ou déclarer mes constructeur de J1 et J2 pour qu'il soit accessible partout dans le programme ...

  18. #18
    Membre régulier Avatar de fdubks
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 73
    Points : 81
    Points
    81
    Par défaut
    Je suis désolé de ne pas bien comprendre le problème.
    En effet,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    class Joueur
    {
    public:
    	 Joueur();
    	~Joueur();
    	void placeBateaux();
    }
    et placeBateaux est accessible de partout.

    Peux tu m'en dire plus sur la manière d'appeler ta methode ?

  19. #19
    Membre régulier Avatar de fdubks
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 73
    Points : 81
    Points
    81
    Par défaut
    Désolé, j'avais pas lu le morceaux de code dans lequel tu as deux objets de ta classe définie au sein même de leur class. Cela me parait tres compliqué.
    Pourquoi n'as tu pas une classe Joueur (définissant les propriétés et les méthodes d'un seul joueur) et une autre définissant si tu le souhaites l'ensemble des deux joueurs, bien que je ne soit pas certain de sa nécéssité.

    Ensuite dans ton programme tu gère chaque joueur indépendemment.

    Dans la bataille navale, les deux joueurs jouent sur des tableaux différents, il n'ont pas besoin de partager leurs grilles.

  20. #20
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Points : 21
    Points
    21
    Par défaut
    pour mon probleme de constructeur j'i enfin trouverla reponce j'ai fait comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class Partie
    {
         Joueurs J1;
         Joueurs J2;
               ...
    }
    Sinon je voudrai avoir une reponce est ce que quand je fait ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Joueurs J1
    Joueurs J2
    sachant que mon constructeur comme cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Joueurs::Joueurs()
    :PorteAvion(5),Cuirasse(4),Destroyer(3),Torpilleur(2)
    {
    	std::cout<<"PorteAvion créer"<<PorteAvion<<std::endl;
    	std::cout<<"Cuirasse créer"<<Cuirasse<<std::endl;
    	std::cout<<"Destroyer créer"<<Destroyer<<std::endl;
    	std::cout<<"Torpilleur créer"<<Torpilleur<<std::endl;
    }
    Je voudrai donc savoir si lorsque je fait sa sa crée bien un PorteAvion,Destroyer... pour chaque joueurs ???

Discussions similaires

  1. Message d'erreur pas très explicite-- help SVP!
    Par vonemya dans le forum C++
    Réponses: 3
    Dernier message: 28/08/2007, 14h05
  2. mon CV je marque ou pas?help svp
    Par lisalisaaa dans le forum CV
    Réponses: 3
    Dernier message: 27/07/2007, 13h38
  3. Impossible restaurer DUMP HELP SVP
    Par globule2 dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 12/02/2007, 09h11
  4. recuperation données help svp
    Par max_killer93 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/01/2007, 14h51
  5. Tableaux, boucles help SvP
    Par 3xplo dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 08/11/2006, 17h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo