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ébutant] jeu à base de dés


Sujet :

C++

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 7
    Points : 3
    Points
    3
    Par défaut [débutant] jeu à base de dés
    Salut,

    Tout d'abord meilleurs voeux a tous

    Alors voila je dois faire un programme qui simule un lancer de dés et qui réponds aux conditions suivantes:

    La classe CDe a pour responsabilité de "simuler" le fonctionnement reel d'un dé de jeu. elle possedera:
    -un attribut: la valeur du dernier lancé de dé
    -un constructeur qui effectura automatiquement un lancer du dé
    -une méthode jet qui permettra de lancer le dé
    -un accesseur sur la valeur de la face du dé, la valeur du dernier lancé effectué.

    Implémentation de la classe CDe avec les caractéristiques suivantes:

    -un constructeur qui, dans cette partie, initialisera la face du dé à la valeur un.
    -un attribut m_valface
    -un accesseur en lecture sur l'attribut m_valface (Get_valface)
    representation UML:



    Donc pour resumer: j'ai pour le moment
    -les differentes de l'attribut m_valface qui sont 1,2,3,4,5 et 6.
    avec le prototype qui est pour le moment:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include <iostream>
     
    class CDe
    {
    public:
    	void Jet();
    	char Get_ValFace(const);
     
    private:
    	unsigned char m_ValFace;
    }
    Et je voudrai juste savoir si le prototype est ok ?

    Merci!

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Il manque le constructeur par défaut, et le const dans Get_ValFace est syntaxiquement mal placé.

    A part ça pour le moment c'est bon.

  3. #3
    Candidat au Club
    Inscrit en
    Novembre 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par Laurent Gomila
    Il manque le constructeur par défaut, et le const dans Get_ValFace est syntaxiquement mal placé.

    A part ça pour le moment c'est bon.
    Oui, justement on a parlé en classe du constructeur par défaut, constructeur par référence... par contre je n'ai pas encore bien assimilé ces notions et je ne vois pas bien a quoi il sert, mais je sais aussi que le constructeur par défaut ne dispose pas de parametre et il n'est pas indispensable alors pourquoi il en faut un ??!

    Et concernant le Get_ValFace je ne comprends pas

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Oui, justement on a parlé en classe du constructeur par défaut, constructeur par référence... par contre je n'ai pas encore bien assimilé ces notions et je ne vois pas bien a quoi il sert, mais je sais aussi que le constructeur par défaut ne dispose pas de parametre et il n'est pas indispensable alors pourquoi il en faut un ??!
    Le constructeur par défaut est utile ici, puisqu'on te demande d'y initialiser la valeur à 1. Le constructeur étant appelé à chaque fois que tu crées des objets de type CDe, ça permettra à ceux-ci d'avoir comme valeur initiale la face 1.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    class CDe
    {
    public:
     
        CDe() {m_ValFace = 1;}
     
        ...
    };
    Et concernant le Get_ValFace je ne comprends pas
    La syntaxe correcte est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char Get_ValFace() const;

  5. #5
    Candidat au Club
    Inscrit en
    Novembre 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    ok merci beaucoup Laurent !!

    donc la c'est ok ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include <iostream>
     
    class CDe
    {
    public:
    	void Jet();
    	char Get_ValFace()const;
     
    private:
    	unsigned char m_ValFace=1;
    }
    edit: par contre pour le constructeur par défaut je ne suis pas encore sur

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 117
    Points : 76
    Points
    76
    Par défaut
    Non, tu n'as pas mis de constructeur, il faut mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include <iostream>
     
    class CDe
    {
    public:
                 CDe(); // C'est ici qu'il faudra faire l'initialisation
    	void Jet();
    	char Get_ValFace()const;
     
    private:
    	unsigned char m_ValFace;
    }
    Ensuite dans ton fichier .cpp tu auras
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CDe()
    {
         m_ValFace = 1;
    }
    Pour ce qui est du constructeur par défaut, quand tu n'en fournis pas un, le compilateur utilise celui par défaut pour te permettre de créer tes objets. En gros ça veut dire que quand il n'y a rien à faire en particulier à la création de ton objet, tu ne mets pas de constructeur et ça fonctionnera.

    PS : le constructeur n'a pas de type, et il doit avoir le même nom que sa classe.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 125
    Points : 145
    Points
    145
    Par défaut
    Citation Envoyé par Myth_Titans
    Non, tu n'as pas mis de constructeur, il faut mettre :

    Ensuite dans ton fichier .cpp tu auras
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CDe()
    {
         m_ValFace = 1;
    }

    Prends l'habitude d'écrire le constructeur comme ça plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    CDe(): m_ValFace (1)
    {
     
    }
    la premiere version utilise le constructeur par defaut puis l'operateur=
    la seconde utilise directement le constructeur spécialise ou de recopie

  8. #8
    Candidat au Club
    Inscrit en
    Novembre 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par alskaar
    Prends l'habitude d'écrire le constructeur comme ça plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    CDe(): m_ValFace (1)
    {
     
    }
    la premiere version utilise le constructeur par defaut puis l'operateur=
    la seconde utilise directement le constructeur spécialise ou de recopie
    Effectivement, j'ai vu les 2 méthodes et c'est dans ce cas la le constructeur de copie est le plus approprié ou des qu'en general il faut initialiser une valeur ??

    Concernant la méthode Get_ValFace, il s'agit de l'accesseur en lecture, mais je ne vois pas comment la coder

    danc le cpp me donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include <iostream>
    #include <cstdlib>
     
    CDe(): m_ValFace (1) //constructeur qui initialise le dé sur la face 1
    {
    };
     
    char Get_ValFace() //accesseur en lecture sur l'attribut m_ValFace
    {
    	//?
    };
    et pour finir le programme de test de la classe et la je bloque completement

    Merci bcp.

  9. #9
    Membre expérimenté
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Points : 1 452
    Points
    1 452
    Par défaut
    pour jeter le dé, http://man.developpez.com/man3/rand.3.php te donne les infos nécessaires sur la génération de nombres aléatoires

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 125
    Points : 145
    Points
    145
    Par défaut
    Si tu n'as pas besoin d'initialiser ta variable
    le code est superflu car le compilateur va lui même faire l'appel au constructeur par défaut
    mais tu peux toujours l’écrire de manière explicite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CDe(): m_ValFace ()
    {
     
    }
    pour ta methode Get_ValFace tu as du voir en cours le mot clef return,
    return m_ValFace;

    Enfin pour ton programme de test le but est d'utiliser ton énoncé.
    Tu dois checker toute l'interface de ton objet et trouver les cas pertinents qui peuvent bloquer

    Dans ton cas c’est très simple tu as le constructeur et la fonction jet() et get_valface() a tester

  11. #11
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour, je cherche moi aussi à faire un simulateur de jet de dés mais en HTML dans le même style que celui ci : http://lilitu.phpnet.org/simulateur.php
    une case ou mettre le nom, une pour l'action, et le nombre de dès et la difficulté.
    Mais je ne sais pas comment m'y prendre. ( je suis nul en programmation lol )
    Quelqu'un pourrais m'aider ?

    Merci d'avance.

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

Discussions similaires

  1. Débutant : Applet+base de donnée
    Par mikado_O dans le forum Applets
    Réponses: 2
    Dernier message: 30/11/2006, 13h47
  2. Réponses: 9
    Dernier message: 20/08/2006, 23h43
  3. [Débutant] jeu du Yam
    Par miagistevn dans le forum Général Java
    Réponses: 6
    Dernier message: 16/05/2006, 22h55
  4. [Débutant] Jeu Morpion en C++ avec OpenGL
    Par Paulinho dans le forum OpenGL
    Réponses: 2
    Dernier message: 31/03/2006, 13h15
  5. [C réseau débutant] jeu
    Par Heimdall dans le forum Développement
    Réponses: 6
    Dernier message: 22/05/2003, 13h58

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