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

Diagrammes de Classes Discussion :

modélisation partie Uno


Sujet :

Diagrammes de Classes

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de Emmanuel Lecoester
    Profil pro
    Inscrit en
    Février 2003
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2003
    Messages : 1 493
    Par défaut modélisation partie Uno
    Bonjour,

    Je tente de me représenter sous forme objet une partie de Uno.

    J'ai donc
    - Une classe CarteUno (Type, Couleur)
    - Une classe JoueurUno (un tableau de carteUno, les méthodes JouerCarte, PiocherCarte, ...)
    - Une classe PiocheUno (un tableau de carteUno, les méthodes Mélange,...)
    - Une classe PartieUno (4 joueurs, la pioche, le sens de la partie,...)

    Ai-je déjà bon dans cette vision des choses ? Car a un moment donné une carte de la iPartieUno:m_PiocheUno ira dans iPartieUno:m_JoueurUno1. Cette méthode sera où ?

    Merci pour votre aide

  2. #2
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 551
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 551
    Par défaut
    sauf erreur la carte n'a pas à savoir où elle est
    tu peux donc faire une classe Porteur dont hérite les classes Joueur et Pioche, Porteur mémorise la liste des cartes possédées et définie les opérations prendre et donner
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

  3. #3
    Membre Expert
    Avatar de Emmanuel Lecoester
    Profil pro
    Inscrit en
    Février 2003
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2003
    Messages : 1 493
    Par défaut
    Citation Envoyé par bruno_pages Voir le message
    sauf erreur la carte n'a pas à savoir où elle est
    manquerait plus que çà

    tu peux donc faire une classe Porteur dont hérite les classes Joueur et Pioche, Porteur mémorise la liste des cartes possédées et définie les opérations prendre et donner
    OK. Je vais voir ce que çà donne.

    Coté Objet et encore plus modélisation je suis... débutant quoi

  4. #4
    Membre Expert
    Avatar de Emmanuel Lecoester
    Profil pro
    Inscrit en
    Février 2003
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2003
    Messages : 1 493
    Par défaut
    Bonjour,

    J'ai tenté de faire mon premier diagramme de classes.

    Par contre :

    - où vais-je insérer le fait qu'un joueur peut être l'ordinateur et "bifurquer" sur des méthodes d'intelligence artificielle ?

    - Quand le Joueur "JoueUneCarte", on doit vérifeir qu'elle est de même couleur ou du même type ou un Joker. J'ai donc une phase de validation du coup joué : je la met où cette notion ?

    - En fait quand le joueur tire une carte c'est un carte dans la pioche ? je dois faire une association ?

    Je précise, ce n'est pas dans le cadre d'un TP ou autres travaux estudiantins .

    Merci pour votre aide.
    Images attachées Images attachées  

  5. #5
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 551
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 551
    Par défaut
    arg, je n'avais pas vu que je répondais à un outils concurrent

    ceci dit de ce que j'ai vu (rapidement) sur la toile, Windev à l'air très (uniquement ?) orienté BD, est-ce que modéliser un jeu de Uno est finalement un bon choix ?

    Citation Envoyé par Emmanuel Lecoester Voir le message
    - où vais-je insérer le fait qu'un joueur peut être l'ordinateur et "bifurquer" sur des méthodes d'intelligence artificielle ?
    il y a une partie de la modélisation qui n'a pas à savoir si le joueur est ou non humain, ce qui est le cas des classes déjà présentées

    par 'définition' ton programme de jeu héritera de Joueur, il aura ainsi les mêmes interactions avec le jeu

    - Quand le Joueur "JoueUneCarte", on doit vérifeir qu'elle est de même couleur ou du même type ou un Joker. J'ai donc une phase de validation du coup joué : je la met où cette notion ?
    il me semble préférable de vérifier la validité des coups, cela permet aussi de debugger le programme de jeu automatique

    pour le reste en regardant rapidement (il y a bien longtemps que je n'ai pas joué au Uno !) il semble que certaines cartes on des actions spécifiques sur le déroulement du jeu, il est préférable que ces actions soient automatisées

    - En fait quand le joueur tire une carte c'est un carte dans la pioche ? je dois faire une association ?
    par besoin d'association, la pioche est une classe à une seule instance (singleton), il est inutile que les autres classes aient besoin de mémoriser cette instance, c'est Pioche qui l'offre via une opération instance(), à moins que les opérations de prise d'une carte ou autres soient des opérations de classe et non d'instance (static). Ceci dit je ne sais pas si ce genre de chose à un sens avec Windev puisque je ne connais pas ses éventuelles limitations

    Je précise, ce n'est pas dans le cadre d'un TP ou autres travaux estudiantins .
    combien tu payes ?

    les opérations battre et trier sur Porteur ne me paraissent pas utiles, à quoi sert afficherCartes ?

    Bruno
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

  6. #6
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Citation Envoyé par bruno_pages Voir le message

    ceci dit de ce que j'ai vu (rapidement) sur la toile, Windev à l'air très (uniquement ?) orienté BD, est-ce que modéliser un jeu de Uno est finalement un bon choix ?
    A vrai dire pour l'avoir utilisé sur plusieurs projets en production j'ai réussi à implémenter grossomodo à 80% en OO, principalement sur des systèmes industriels temps réel le reste étant de la gestion.

    Costaud en BD oui uniquement orienté....Cependant ce n'est manifestement pas aussi riche que les langages OO comme C++ ou Java.

    Et pour répondre à ta question, on ne peut pas avoir une classe statique (en tout cas jusqu'à la version 12 que je connais) tu passes forcément par des fonctions membres statiques puisque le mot clé static n'existe pas.


    Emmanuel :

    Pour revenir à ton diagramme de classe conceptuelle, tu peux aussi ajouter les classes Dialogues/IHM puisque c'est le modèle qu'il faudra au final implémenter.

    Ensuite pour les classes du domaine/métiers je pense qu'il doit encore manquer quelques éléments ne serait-ce que les règles qui régissent une partie ou une méthode distribuer ?

    c'est vrai que je pars de la fin faute de connaissances.
    En fait dans l'idée c'est que les diagrammes de séquence (boite noir et boite blanche) permettent de construire plus facilement les diagrammes de classes conceptuelles puisque tu pourras récupérer toutes les interactions des classes comme des méthodes, en fait les 2 diagrammes devraient être fait en paralléle.

    (que je vois vois parler de singleton, instance, et cie je me dit que j'ai encore du chemin à faire).
    C'est une histoire de vocabulaire du monde OO.

    Un exemple en Windev serait plus cool.

    carte est une instance de la classe Carte, fastoche

    Singleton

    En Windev il faudrait faire autrement que dans les langages "traditionnels" puisque le mot clé static n'existe pas. En utilisant par exemple les fonctions d'allocations dynamiques ou autres.

  7. #7
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Bonjour

    Je précise déja ne connaître le jeu ce qui fait que mes réponses te paraitront peut-être à l'ouest


    Citation Envoyé par Emmanuel Lecoester Voir le message
    - où vais-je insérer le fait qu'un joueur peut être l'ordinateur et "bifurquer" sur des méthodes d'intelligence artificielle ?
    Au vu du DC je dirais qu'il faut ajouter une classe JoueurIA qui hérite de Joueur.


    - Quand le Joueur "JoueUneCarte", on doit vérifeir qu'elle est de même couleur ou du même type ou un Joker. J'ai donc une phase de validation du coup joué : je la met où cette notion ?
    Tu as fais un diagramme de classe conceptuelle, cela se voit aux opérations qui sont présentes. Tu peux donc ajouter dans ton modèle les classes de type Controleur.


    - En fait quand le joueur tire une carte c'est un carte dans la pioche ? je dois faire une association ?
    Tu as une association entre carte et porteur et comme porteur est un joueur...


    Aussi le diagramme de classes conceptuelle peut se construire (pour ne pas dire devrait) à partir d'autres diagrammes plus dynamique comme le diagramme de séquence et de communication, d'ailleurs c'est avec le dernier qu'on peut regarder de plus près les design pattern. Cela peut être intéressant pour quelques opérations, les plus significatifs, comme jouercarte par exemple.

    Aussi, cela dépendra du temps et de l'expérience, un diagramme de package peut s'avérer trés utile pour organiser les classes et l'architecture du logiciel car on y voit bien les dépendances entre classes.

  8. #8
    Membre Expert
    Avatar de Emmanuel Lecoester
    Profil pro
    Inscrit en
    Février 2003
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2003
    Messages : 1 493
    Par défaut
    Pour tous : un lien pour comprendre le jeu

    @bruno : WinDev sait faire plein de choses méconnues coté UML il sait gérer les diagramme de classes, de cas d'utilisation, d'objets, de composants, d'activités, de séquence, de collaboration, d'états-transition, de déploiement. On a donc le choix

    J'ai modifié battre en mélanger et je l'ai mis dans la pioche : il faut bien que les 104 cartes soit mélangées au départ . J'ai mis Trier au niveau Joueur : c'est le fait de mettre les bleus puis les jaunes puis les rouges... C'est plus joli à l'affichage en plus. AfficherCartes c'est pour afficher les carte à l'écran en lui donnant le nom de la fenêtre (je sens que tu vas me dire que ce n'est pas là qu'il faut le mettre voire ne pas le mettre du tout ). Tu entends quoi par "Actions automatisées" : déclarer ces méthodes dans le Controleur ?

    @hegros : c'est vrai que je pars de la fin faute de connaissances . Pour l'IA j'ai ajouté. J'ai ajouté aussi un contrôleur. Concernant le temps : j'en ai et l'expérience : elle est quasi nulle (que je vois vois parler de singleton, instance, et cie je me dit que j'ai encore du chemin à faire).

    Ci dessous ma dernière version :
    Images attachées Images attachées  

Discussions similaires

  1. Quels logiciels de modélisation pour une base de données ?
    Par octopus dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 11/06/2023, 16h20
  2. [Modélisation] Schéma constellation
    Par senke dans le forum Décisions SGBD
    Réponses: 8
    Dernier message: 13/05/2016, 13h27
  3. [MCD] Modéliser l'ensemble des parties d'une moto
    Par Mikerhinos dans le forum Schéma
    Réponses: 17
    Dernier message: 09/03/2009, 01h39
  4. [TSplitter] 3 parties...
    Par agh dans le forum Delphi
    Réponses: 3
    Dernier message: 07/09/2006, 13h11
  5. comment remplacer une partie de texte dans un champs
    Par patlapi dans le forum Paradox
    Réponses: 4
    Dernier message: 20/11/2003, 14h38

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