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

SL & STL C++ Discussion :

utilisation du conteneur pair


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Ingénieur Développement
    Inscrit en
    Juin 2006
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Développement

    Informations forums :
    Inscription : Juin 2006
    Messages : 140
    Par défaut utilisation du conteneur pair
    Bonjour,
    je réalise un programme capable de jouer au jeu Agora.
    le jeu se constitue d'un plateau rectangulaire.
    pour jouer un coup, on déplace d'une case à l'autre puis on se met soit au dessus soit en dessous des pions existant sur la case.
    j'ai une classe plateau et une classe coup pour l'instant.
    Je voudrais savoir si ma structure de données pour un coup est juste.
    j'utilise le conteneur pair de la stl.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    class coup {
     
    private:
     
    pair<int,int> position; //position d'un pion sur un plateau
     
    pair<position,position> positions; // couple position de départ et position d'arrivée
     
    pair<positions,bool> c;// coup est représenté par une position de départ et une position d'arrivée plus un bool dessus/dessous
     
    vector<c> listedescoups;//  vecteur liste des coups
    //constructeurs et selecteurs
    coup() {}
    coup(int lignedepart, int coldepart, int lignearrivee, int colarrivee, bool dessus) : 
    c(positions(position(lignedepart, coldepart), position(lignearrivee, colarrivee)), dessus) {}
    En fait je voudrais savoir si c'est suffisant de déclarer mes types 'postion' et 'positions' comme je l'ai fait ou est ce qu'il faut que je créer des classes qui leur correspondent.

    merci

  2. #2
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 290
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    Citation Envoyé par zakalova Voir le message
    En fait je voudrais savoir si c'est suffisant de déclarer mes types 'postion' et 'positions' comme je l'ai fait ou est ce qu'il faut que je créer des classes qui leur correspondent.
    Ca dépend de ce que tu entend par "c'est suffisant".
    Si tu veux juste que ça compile et que ça marche, alors oui, c'est suffisant.
    Si tu souhaites aller plus loin (notamment utiliser des 'position' et des 'positions' comme des types), alors non, ce n'est pas suffisant.

    Dans ton code, position et positions sont des variables membres de ta classe Coup, donc uniquement utilisables en tant que tel.

    Hope it helps.

  3. #3
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par r0d Voir le message
    Bonjour,

    Ca dépend de ce que tu entend par "c'est suffisant".
    Si tu veux juste que ça compile et que ça marche, alors oui, c'est suffisant.
    ?? manque pas des typedef???

    Citation Envoyé par r0d Voir le message
    Si tu souhaites aller plus loin (notamment utiliser des 'position' et des 'positions' comme des types), alors non, ce n'est pas suffisant.

    Dans ton code, position et positions sont des variables membres de ta classe Coup, donc uniquement utilisables en tant que tel.

    Hope it helps.
    +1

  4. #4
    Membre confirmé
    Profil pro
    Ingénieur Développement
    Inscrit en
    Juin 2006
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Développement

    Informations forums :
    Inscription : Juin 2006
    Messages : 140
    Par défaut
    ok,

    donc si je mes des typedef, est ce que je pourrai les utiliser comme des types?
    merci

  5. #5
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 290
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Mongaulois Voir le message
    ?? manque pas des typedef???
    Hum... tu me fais douter... mais je crois bien que oui. Mais je peux pas tester de suite, j'ai cassé gcc

  6. #6
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Il me semble bien que ce que voudrait faire le PO c'est bien mettre des typedef devant 'positions' etc...

  7. #7
    Membre confirmé
    Profil pro
    Ingénieur Développement
    Inscrit en
    Juin 2006
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Développement

    Informations forums :
    Inscription : Juin 2006
    Messages : 140
    Par défaut
    salut
    j'ai mis des typesdef mais je ne peux pas encore tester
    donc voilà à quoi ressemble mon fichier coup.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    #include <vector>
    #include <iostream>
    #includ <utility>
    #include <deque>
    using namespace std;
     
    class Coup {
     
    private:
     
    typedef pair<int,int> Position; //position d'un pion sur un plateau
     
    typedef pair<Position,Position> Positions; // couple position de départ et position d'arrivée
     
    pair<Positions,bool> c;// coup est représenté par une position de départ et une position d'arrivée plus un bool dessus/dessous
     
    typedef vector<c> Listedescoups;//  vecteur liste des coups
     
    bool dessus;
     
    public:
     
    //constructeurs 
    Coup() {}
    Coup(int lignedepart, int coldepart, int lignearrivee, int colarrivee, bool dessus) ; 
    c(Positions(Position(lignedepart, coldepart), Position(lignearrivee, colarrivee)), dessus) {}
     
    //selcteurs et accesseurs
    int getlignedepart() const {
        return c.first.first.first;
      }
    int getcoldepart() const {
        return c.first.first.second;
      }
    int getlignearrivee() const {
        return c.first.second.first;
      }
    int getcolarrivee() const {
        return c.first.second.second;
      }
     
    friend ostream& operator<<(ostream& o, const Coup& c);
    friend istream& operator>>(istream& i, Coup& c);
     
    };
    est ce que ça à l'air potable tout ça? merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utilisation du conteneur léger du framework Indigo
    Par freegreg dans le forum Flex
    Réponses: 0
    Dernier message: 25/01/2009, 00h11
  2. Réponses: 5
    Dernier message: 18/11/2008, 10h39
  3. cable torsadé : utilisation de deux paires seulement
    Par devlopassion dans le forum Hardware
    Réponses: 8
    Dernier message: 10/03/2008, 15h51
  4. utiliser des conteneurs triés stl pour pointeurs, utile?
    Par Pacorabanix dans le forum SL & STL
    Réponses: 13
    Dernier message: 08/12/2007, 16h19

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