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

Java Discussion :

Modélisation jeu loup garou UML


Sujet :

Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Janvier 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2017
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Modélisation jeu loup garou UML
    Bonjour,
    Je suis en train de suivre une formation durant laquelle j'ai un projet "fil rouge".
    Le projet en question, créer un jeu de loup garou en Java.

    J'ai besoin d'être aiguillé pour construire le diagramme de classe.

    Chaque joueur possède un rôle, certains rôles peuvent être cumulés, par exemple :
    - Un loup garou peut être maire.
    - Un villageois peut être une voyante mais il peut aussi être maire en plus.

    Le jeu se joue en tour par tour avec une alternance jour/nuit:
    - Le jour les villageois votent pour essayer d'éliminer un loup garou.
    - La nuit les joueurs qui ont un rôle spéciale (loup garou, voyante, etc) peuvent effectuer une action spéciale qui dépend de leur rôle.

    Le problème c'est que le maire n'est pas vraiment un joueur spéciale, il est simplement un rôle supplémentaire, n'importe qui peut être maire, un (villageois, loup garou, ect) et ça je ne sais pas vraiment comment le représenter proprement dans le diagramme.

    Mon groupe de projet et moi avons réussi à créer le programme, il fonctionne mais je ne suis pas du tout satisfait de la façon dont les choses ont été implémentés, on a régulièrement bidouillé ce qui rend les choses complexes et "sales".
    Le diagramme ci-dessous est une tentative de ma part de créer quelque chose de plus cohérent.

    Nom : uml_classe.PNG
Affichages : 484
Taille : 80,8 Ko

    Merci d'avance

  2. #2
    Membre averti
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mai 2020
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mai 2020
    Messages : 326
    Points : 439
    Points
    439
    Par défaut
    Bonjour,

    Vous travaillez uniquement avec de l'héritage alors que la composition est parfois tout aussi utile. Je n'ai pas les détails, ni l'envie d'y réfléchir à votre place, mais vous pourriez par exemple donner plus d'importance à Role. Au lieu d'en faire une enum, ça pourrait-être la source de votre héritage avec une classe pour chaque action spéciale. La classe Joueur contiendrais un ensemble de rôle qu'elle utilise pour savoir ce qu'elle peut faire.

    Regardez peut-être du côté des designs patterns de comportement. Je pense notamment a Command et Chaine de reponsabilité.

    Mais, encore une fois, je ne connais pas vos besoins. Je sais juste que lorsque l'héritage pose problème le composition est parfois la solution. Ou qu'il faut revoir le modèle et changer la classe parente. Dans tous les cas, j'ai l'impression qu'un Joueur n'est pas un village, mais qu'il joue le Role d'un Villageois.

  3. #3
    Membre régulier

    Inscrit en
    Novembre 2010
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 44
    Points : 124
    Points
    124
    Par défaut
    Bonjour,

    Ce serai bien de fournir le code source de ce qui fonctionne parce que je ne vois pas à quoi servent les rôles de voyant, sorcière, chasseur, cupidon. En lisant le wiki j'ai compris que le vote du maire compte double.

    Je pense que je ferai une classe village contenant une liste des habitants et une variable supplémentaire pour connaitre le maire. Cette structure assure l'unicité du maire dans le village.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    class village {
        List<Villageois> villageois;
        Villageois maire;
    }
    Ensuite je pense que le type énumération Rôle ne sert pas. Si tu utilises des Switch/Case sur les Rôles, alors il vaut mieux utiliser le polymorphisme.

Discussions similaires

  1. Petits exercices de modélisation par objets avec UML
    Par Jéjé34 dans le forum Débuter
    Réponses: 8
    Dernier message: 06/06/2013, 16h52
  2. Modéliser le temps en uml (retour)
    Par cypher.sephiroth dans le forum UML
    Réponses: 1
    Dernier message: 26/05/2009, 17h54
  3. modélisation jeu d'échecs
    Par KindPlayer dans le forum C
    Réponses: 2
    Dernier message: 29/06/2008, 12h04
  4. Réponses: 10
    Dernier message: 07/04/2006, 10h03
  5. modéliser une bd avec uml
    Par komando dans le forum Diagrammes de Classes
    Réponses: 4
    Dernier message: 06/10/2004, 12h45

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