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

avec Java Discussion :

Creation d'un jeu, problème de conception


Sujet :

avec Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2013
    Messages : 3
    Points : 5
    Points
    5
    Par défaut Creation d'un jeu, problème de conception
    Bonjour,

    J'aimerais débuter un petit projet en java mais je suis bloquer dans l’élaboration du diagramme de classe.
    J'ai une classe Personnage qui à des caractéristiques => Vie, force, agilité,etc... ( tous des entiers)
    (ou alors un personnage qui contient une classe caractéristique qui contient des entiers vie, force, etc...)

    J'aimerais pouvoir améliorer les caractéristiques d'un personnage en lui mettant des équipements (ex: un chapeau).
    Un équipement possède des caractéristiques qu'il faudrait additionner au caractéristiques du personnage.

    Je suis bloqué à ce niveau la.
    J'aimerais que l'addition se fasse automatiquement lors de l'ajout de l'équipement, mais comment différencier les caractéristiques pour pouvoir les additionner étant donné qu'une caractéristique est un entier ?
    (ex : [Chapeau: int vie = 7, int force = 3] à additionner à la vie et à la force du personnage).

    Faut-il créer une classe par caractéristique ? Dans ce cas-ci je ne peux donc pas éviter le InstanceOf par la suite...

    Merci de votre aide.

    Cordialement,

    Arthur

  2. #2
    Membre confirmé

    Homme Profil pro
    Chomeur
    Inscrit en
    Juin 2006
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Chomeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 347
    Points : 452
    Points
    452
    Par défaut
    Bonjour,

    Jette un œil du coté des design pattern les plus communs. Je crois que dans le cas proposé un pattern "décorateur" permettrai de monter l'équipement facilement sur les personnages : http://fr.wikipedia.org/wiki/D%C3%A9..._conception%29
    Et probablement aussi héritage + pattern "factory" pour générer des perso de différentes races avec peut être un pattern façade...

    Bon courage
    Signature à venir...
    Ancienne : Divers NTIC (PHP, Dojo, à venir...) : http://tif44.fr/blog/

  3. #3
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Si les équipement peuvent être enlever, les décorateurs sont une solution. Sinon cela va poser problème quand tu voudra enlever un objet.

    Personnellement, je partirai plus vers le paterne "Visitor" ou "Chain-of-responsability".

    Si tu pars sur un visiteur, tu pourrai avoir un HealItemVisitor qui aurai pour bût de compter l'ensemble des points de vie ajouter au personnage par ses objets.

    Si tu pars sur une chaîne de responsabilité, tu pourrai avoir une méthode getSupplementHeal(int Current heal) sur l'ensemble des objets du personnages. Si tu appel le premier objet porter avec la vie de base du héro, celui-ci devra ajouter la vie qu'il offre et appeler l'objet suivant du héro pour qu'il réalise la même opération. Une fois tout les objet appeler tu as la vie total.

    Les deux options sont valables. Cependant, la chaîne de responsabilité impliqué que les objets sachent qui est objet suivant du héro (ce qui n'est pas leur rôle). Il est possible de réaliser une petite adaptation de ce concept et laisser cette responsabilité au héro lui-même.

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2013
    Messages : 3
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Effectivement le design pattern décorateur serait une bonne idée puisque je peux mettre et enlever les équipements.
    Néanmoins, j'aurais bien voulu avoir une structure du type Un personnage contient une liste d'équipement car je veux pouvoir tout sauvegarder dans une base de données et donc garder les relations entre les objets.

    Décorer mon personnage permet effectivement d'ajouter les caractéristiques d'un équipement au aux caractéristiques du personnage mais ne permet pas d'affecter l'objet au personnage.

    De plus, Tous les objets pouvant être équipé ne possède pas forcément les même caractéristiques
    (Ex : Chapeau1: vie=2 et Cape1: force=3 agilité=4)

    Le chapeau1 à de la vie alors qu'il n'a pas de force.
    La cape1 à de la force et de l'agilité mais n'a pas de vie

    Donc cela poserait problème au niveau de la méthode void setAgility(Personnage p) d'un décorateur personnageAvecChapeau par exemple.
    Mais il n'y aurait pas de problème pour la cape car elle donne de l'agilité

    Peut-être que la chose à faire serait de mettre toutes les caractéristiques existantes sur tous les objets mais mettre à 0 les attributs dont l'objet n'est pas sensé apporter.
    Mais j'espérais qu'il y ait une solution 'Objet' a mon problème.


    J'espère que je me suis correctement exprimé

  5. #5
    Inactif  
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2014
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Pas besoin d'un concept d'objet.

    Tu fais une classe Equipement : qui a comme champ une map<Int,Int> la clef tu fais une énum tu genre Caractéristiques{ VIE,FORCE,MAGIE...} et la valeur ben celle que tu veux .

    Ton perso il va avoir pareil du coup quand tu ajouteras un équipement tu feras :

    Pour chaque clef de l'équipement
    perso.map.set(clef,equipement.map.get(clef)+perso.map.get(clef));
    et pour virer la caractéristique tu fais moins.

    Mettre les champs à 0 est une autre possibilité .Faire de l'objet pour faire de l'objet c'est débile surtout si ya des solutions plus simples et plus rapides à implémenter.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2013
    Messages : 3
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup pour vos réponses ! En particulier JeanClude45 ! je pense que je vais adopter ta technique !

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

Discussions similaires

  1. Gestion des départements problème de conception
    Par snoopy69 dans le forum Modélisation
    Réponses: 7
    Dernier message: 11/10/2005, 13h08
  2. Creation de librairies dynamique... Problème !
    Par Franck.H dans le forum Linux
    Réponses: 12
    Dernier message: 24/06/2005, 11h18
  3. [jeu]problème de performance d'un algo
    Par le Daoud dans le forum Algorithmes et structures de données
    Réponses: 12
    Dernier message: 30/05/2005, 16h07
  4. creation d'un jeu en opengl et SDL sous DevC++
    Par loka dans le forum OpenGL
    Réponses: 1
    Dernier message: 07/05/2005, 11h16
  5. Problème de conceptions de tables
    Par dtavan dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/05/2004, 23h13

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