A voir également:
- Creation d'un jeu, problème de conception
- Media creation tool - Télécharger - Systèmes d'exploitation
- Creation compte gmail - Guide
- Creation adresse mail - Guide
- Jeu zuma - Télécharger - Jeux vidéo
- Création compte google - Guide
1 réponse
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
14 mars 2014 à 07:40
14 mars 2014 à 07:40
Par exemple :

public class Equipement
{
private final int deltaVie;
private final int deltaForce;
public Equipement(int deltaVie, int deltaForce)
{
this.deltaVie = deltaVie;
this.deltaForce= deltaForce;
}
public int getDeltaVie()
{
return deltaVie;
}
public int getDeltaForce()
{
return deltaForce;
}
}
public class Equipements
{
public static Equipement CHAPEAU = new Equipement(7,3);
}
public class Personnage
{
private int vie;
private int force;
public Personnage()
{
vie = 0;
force = 0;
}
public void add(Equipement e)
{
vie += e.getDeltaVie();
force += e.getDeltaForce();
}
public int getVie()
{
return vie;
}
public int getForce()
{
return force;
}
}
public class Test
{
public static void main(String[] args)
{
Personnage p = new Personnage();
p.add(Equipements.CHAPEAU);
}
}

14 mars 2014 à 13:34
Merci d'avoir répondu aussi rapidement.
Votre diagramme est similaire à celui que j'avais prévu de faire, cependant mon problème n'est toujours pas réglé, bien qu'éclairci.
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 add(Equipement e), il se peut que l'équipement ne contienne pas une telle caractéristique alors que d'autres si.
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.
14 mars 2014 à 19:38
public class Etat { private int vie; private int force; public Etat(int vie, int force) { this.vie = vie; this.force = force; } public int getVie() { return vie; } public void setVie(int vie) { this.vie = vie; } public void addVie(int deltaVie) { this.vie += deltaVie; } public void removeVie(int deltaVie) { this.vie -= deltaVie; } public int getForce() { return force; } public void setForce(int force) { this.force = force; } public void addForce(int deltaForce) { this.force += deltaForce; } public void removeForce(int deltaForce) { this.force -= deltaForce; } } public interface Equipement { void whenAdd(Etat etat); void whenRemove(Etat etat); } public class Chapeau implements Equipement { public void whenAdd(Etat etat) { etat.addVie(2); } public void whenRemove(Etat etat) { etat.removeVie(2); } } public class Cape implements Equipement { public void whenAdd(Etat etat) { etat.addForce(3); } public void whenRemove(Etat etat) { etat.removeForce(3); } } public class Personnage { private final Etat etat; public Personnage() { this(0, 0); } public Personnage(int vie, int force) { etat = new Etat(vie, force); } public void add(Equipement equipement) { equipement.whenAdd(etat); } public void remove(Equipement equipement) { equipement.whenAdd(etat); } public Etat getEtat() { return etat; } } public class Test { public static void main(String[] args) { Personnage perso = new Personnage(); Etat etat = perso.getEtat(); System.out.println(etat.getVie()); // 0 Chapeau chapeau = new Chapeau(); perso.add(chapeau); System.out.println(etat.getVie()); // 2 } }17 mars 2014 à 18:05