[ALG2] Projet Cartagène - Embrouille avec MVC

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

[ALG2] Projet Cartagène - Embrouille avec MVC

Message  Garkline le Sam 28 Fév 2009, 23:36

Bonsoir mesdames et mesdames!!!!

Voilà je suis confronté à un soucis sur mon projet de Cartagène graphique, comme une sorte de noeud que je ne sais pas déméler.
Je vais donner ici bas un extrait de l'énoncé pour être le plus clair possible:


Créez les interfaces:
✗ CartageneListener; c'est l'interface qui définit qu'une vue de Cartagena est à l'écoute
du modèle. Elle permettra donc la mise à jour de la vue lorsque le modèle change.
✗ CartageneModeleInterface; c'est l'interface d'un modèle cartagene, elle détermine
les méthodes qui seront utiles à l'interfaçage du contrôleur avec son modèle (elle doit
notamment, présenter la méthode effectuerCoup(Coup coup))

Écrire les classes:
✗ DataCartagene; ce sont des instances de cette classe, transmises par le modèle, qui
permettront de faire connaitre aux écouteurs l'état du modèle.
✗ CartageneModele étendant Jeu du .jar fourni et implémentant Cartagene-
ModeleInterface. Elle devra mettre en place ce qu'il faut pour qu'elle puisse être
observée (écoutée) par la vue.

Il est préconisé de placer dans un package "CartageneModele" et de regrouper dans un autre les
différents éléments devant être connus aussi bien du modèle que des écouteurs (DataCartagene,
CartageneModeleInterface, CartageneListener).

Modifiez PlateauVue pour qu'il implémente CartageneListener.

Ajoutez une classe permettant de lancer le tout et ... jouez!

Bon nous voilà renseigné sur ce qu'il faut faire. Il me semble avoir bien compris le concept des deux interfaces. Seulement les deux classes à créer me pose problème.

De ce que j'ai compris DataCartagene implémente CartageneModeleInterface (un peu comme dans l'exemple MVC donné au TD précédent), et a pour but donc de définir ce que font exactement les methodes de l'interface CartageneModeleInterface.

Mais alors à quoi sert la deuxiéme classe, CartageneModele. On nous dit qu'elle extend Jeu et implements CartageneModeleInterface.
Je cale complètement dessus, malgré qu'elle ressemble etrangement aux classes abstraite des exemple que j'ai trouvé:

* Elle ne se trouve pas dans le meme package que les deux interface et l'autre classe(On nous le dit même dans l'énoncé).
* Elle devrait se trouver dans le meme package que les vues.
* Elle extend Jeu alors que dans mes exemples, cette classes abstraite extend JComponent.
* Elle implements CartageneModeleInterface alors que si on suit mes exemples (TD MVC), elle devrait implements CartageneListener.
* PlateauVue devrait alors implements CartageneModele et plus CartageneListener.

De plus quand j'extend Jeu, il me dit "Cannot find symbole",apparement un rapport avec le constructeur de Jeu.

Enfin voilà je vous avoue que je tourne en rond depuis un moment, un peu comme un chien qui essaye de se mordre la queue...
La réponse doit se trouver pas loin mais bon...


Alors je viens demander de l'aide ici. J'espère avoir été clair.

Merci de votre lecture.
rendeer

Garkline

Nombre de messages : 15
Age : 30
Prénom : Grégory
Statut : 2éme gestion
Date d'inscription : 04/12/2006

Revenir en haut Aller en bas

Re: [ALG2] Projet Cartagène - Embrouille avec MVC

Message  mcd le Dim 01 Mar 2009, 00:11

Je n'ai pas suivi l'énoncé ni les attentes précises pour ce projet mais je répond par rapport à l'extrait donné et mes connaissances MVC.

Le DataCartagene ne doit pas forçément implémenter l'interface.
Lorsque l'écouteur est prévenu par le modèle que le modèle a changé, il doit connaître le nouvel état du modèle.
Deux solutions (et je ne sais pas laquelle vos professeurs ont choisi) :
1 - l'écouteur interroge le modèle
2 - l'état du modèle est passé en paramètre de la méthode qui prévient l'écouteur
Dans cette 2ème hypothèse, le paramètre en question est un DataCartagène.

En gros, DataCartagène contient l'état du (modèle du) jeu de Cartagène : le labyrinthe, la position des pirates, les mains des joueurs, ...
C'est toute l'info qui permet à la vue de savoir quoi montrer !

mcd

Nombre de messages : 1548
Prénom : Marco
Statut : prof
Localisation : Molenbeek
Date d'inscription : 29/09/2006

http://mcd.namok.be

Revenir en haut Aller en bas

Re: [ALG2] Projet Cartagène - Embrouille avec MVC

Message  pbt le Dim 01 Mar 2009, 09:21

Je suis d'accord avec le point 2 ... DataCartagene est l'objet qui permettra de transmettre l'information entre les différents acteurs, c'est l'état du modèle à un moment donné (il n'implémente ni n'hérite d'aucune classe/interface).

_________________
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: [ALG2] Projet Cartagène - Embrouille avec MVC

Message  Garkline le Dim 01 Mar 2009, 11:01

Code:
package additionneur.modele;

/**
 * Etat.java
 *
 * Created on 20 septembre 2007, 19:03
 *
 * État de l'additionneur. Cet état peut transiter du modèle à une vue.
 * @author adt,mcd
 */
public class Etat {
    private int terme1;
    private int terme2;
    private int somme;
    private int nbListeners;

    /** Creates a new instance of Etat */
    Etat() {
        terme1 = 0;
        terme2 = 0;
        somme = 0;
    }

    /**
    * retourne le premier terme de l'addition
    */
    public int getTerme1() {
        return terme1;
    }

    /**
    * positionne le premier terme de l'addition à l'entier fourni
    * @param terme1
    */
    void setTerme1(int terme1) {
        this.terme1 = terme1;
    }

    /**
    * retourne le deuxième terme de l'addition
    */
    public int getTerme2() {
        return terme2;
    }

    /**
    * positionne le deuxième terme de l'addition à l'entier fourni
    */
    void setTerme2(int terme2) {
        this.terme2 = terme2;
    }

    /**
    * retourne le résultat de la dernière addition
    */
    public int getSomme() {
        return somme;
    }

    /**
    * poistionne le résultat de la dernière addition effectuée
    */
    void setSomme(int somme) {
        this.somme = somme;
    }

    /**
    * retourne le nombre d'observateurs enregistrés du modèle
    */
    public int getNbListeners() {
        return nbListeners;
    }

    /**
    * poisitionne le nb d'observateurs du modèle
    */
    void setNbListeners(int nbListeners) {
        this.nbListeners = nbListeners;
    }
}

Ce code, pris tel quel du TD MVC précédent, serait donc un peu l'homologue de notre DataCartagene pour notre projet? Il permet de connaitre l'etat du modele. Chez nous au lieu des différent terme de somme, ce sera par exemple un passage, une main, ect?


Et j'ai toujours ce probleme lorsque que j'extend Jeu à CartagèneModele, il me dit qu'il trouve pas de symbol, en me précisant que cela vient du constructeur de la classe Jeu :s

*Problème avec l'extend Jeu reglé*

Garkline

Nombre de messages : 15
Age : 30
Prénom : Grégory
Statut : 2éme gestion
Date d'inscription : 04/12/2006

Revenir en haut Aller en bas

Re: [ALG2] Projet Cartagène - Embrouille avec MVC

Message  pbt le Dim 01 Mar 2009, 22:48

Garkline a écrit:Ce code, pris tel quel du TD MVC précédent, serait donc un peu l'homologue de notre DataCartagene pour notre projet? Il permet de connaitre l'etat du modele. Chez nous au lieu des différent terme de somme, ce sera par exemple un passage, une main, ect?

Exact, l'état du modèle peut s'appeler données (data) pour préciser les données qui transitent de l'un à l'autre ... c'est une simple question de nommage peu importante.

_________________
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: [ALG2] Projet Cartagène - Embrouille avec MVC

Message  Contenu sponsorisé Aujourd'hui à 10:47


Contenu sponsorisé


Revenir en haut Aller en bas

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