Commit 4dbf873a authored by Achille Lacoin's avatar Achille Lacoin
Browse files

Correction des toString

parent dce28935
......@@ -148,6 +148,7 @@ public class Main {
}
public static void saisirOrdre(JoueurHumain joueurHumain){
System.out.println(String.format("%s\n%s", joueurHumain, joueurHumain.getPiece()));
if (joueurHumain.estMort()) {
System.out.println(joueurHumain.getNom());
}
......
......@@ -87,7 +87,7 @@ public class Serrure extends Objet implements Activable {
}
Clef clef = null;
try{
clef = new Clef(genererNom(this.monde, "Serrure"),this.monde);
clef = new Clef(genererNom(this.monde, "Clef"),this.monde);
} catch(NomDEntiteDejaUtiliseDansLeMondeException e){
}
......
......@@ -10,20 +10,22 @@ import fr.insarouen.asi.prog.asiaventure.elements.objets.ObjetNonDeplacableExcep
import fr.insarouen.asi.prog.asiaventure.elements.vivants.Vivant;
/**
*classe permettant de definit la notion de Piece
*/
* classe permettant de definit la notion de Piece
*/
public class Piece extends ElementStructurel {
private HashMap<String, Vivant> collectionVivant;
private HashMap<String, Objet> collectionObjet;
private HashMap<String, Porte> collectionPorte;
/**
*Constructeur de la piece
* @param nom une chaine de caractere designant la piece
* @param monde le monde auquel la piece appartient
* @throws NomDEntiteDejaUtiliseDansLeMondeException Lance une exception si le monde contient déjà une entité avec ce nom.
*/
* Constructeur de la piece
*
* @param nom une chaine de caractere designant la piece
* @param monde le monde auquel la piece appartient
* @throws NomDEntiteDejaUtiliseDansLeMondeException Lance une exception si le
* monde contient déjà une
* entité avec ce nom.
*/
public Piece(String nom, Monde monde) throws NomDEntiteDejaUtiliseDansLeMondeException {
super(nom, monde);
this.collectionObjet = new HashMap<>();
......@@ -33,59 +35,67 @@ public class Piece extends ElementStructurel {
/**
* ajoute un porte a la piece
*
* @param porte La porte a ajouter
* @param nom nom de la clef
* @param nom nom de la clef
*/
public void addPorte(Porte porte){
this.collectionPorte.put(porte.getNom(),porte);
public void addPorte(Porte porte) {
this.collectionPorte.put(porte.getNom(), porte);
}
/**
* teste si une porte est presente dans la piece
*
* @param porte
* @return booleen
*/
public boolean aLaPorte(Porte porte){
public boolean aLaPorte(Porte porte) {
return this.aLaPorte(porte.getNom());
}
/**
* teste si une porte est presente dans la piece
*
* @param nomPorte
* @return booleen
*/
public boolean aLaPorte(String nomPorte){
public boolean aLaPorte(String nomPorte) {
return this.collectionPorte.containsKey(nomPorte);
}
/**
* retourne une porte de la piece a partir de son nom
*
* @param nomPorte
* @return Porte
*/
public Porte getPorte(String nomPorte){
public Porte getPorte(String nomPorte) {
return this.collectionPorte.get(nomPorte);
}
/**
* retourne l'ensemble des portes de la piece
*
* @return l'ensemble des portes
*/
public Collection<Porte> getPortes(){
public Collection<Porte> getPortes() {
return this.collectionPorte.values();
}
/**
*Methode permettant d'obtenir les objets de la piece
*@return une collection des objets de la piece
*/
* Methode permettant d'obtenir les objets de la piece
*
* @return une collection des objets de la piece
*/
public Collection<Objet> getObjets() {
return this.collectionObjet.values();
}
/**
*Methode permettant de deposer un objet dans la Piece
*@param obj l'objet a deposer
*/
* Methode permettant de deposer un objet dans la Piece
*
* @param obj l'objet a deposer
*/
public void deposer(Objet obj) {
if (obj != null) {
this.collectionObjet.put(obj.getNom(), obj);
......@@ -93,24 +103,34 @@ public class Piece extends ElementStructurel {
}
/**
* Methode permettabt de retirer un objet de la Piece
* @param obj l'objet a retirer
* @return l'objet retire
* @throws ObjetAbsentDeLaPieceException Lance une exception lorsque l'objet que l'on tente de retirer ne se trouve pas dans la pièce.
* @throws ObjetNonDeplacableException Lance une exception lorsque l'objet que l'on tente de retirer se trouve dans la pièce mais qu'il n'est pas déplacable.
*/
* Methode permettabt de retirer un objet de la Piece
*
* @param obj l'objet a retirer
* @return l'objet retire
* @throws ObjetAbsentDeLaPieceException Lance une exception lorsque l'objet que
* l'on tente de retirer ne se trouve pas
* dans la pièce.
* @throws ObjetNonDeplacableException Lance une exception lorsque l'objet que
* l'on tente de retirer se trouve dans la
* pièce mais qu'il n'est pas déplacable.
*/
public Objet retirer(Objet obj) throws ObjetAbsentDeLaPieceException, ObjetNonDeplacableException {
String nomObj = obj.getNom();
return retirer(nomObj);
}
/**
* Methode permettabt de retirer un objet de la Piece
* @param nomObj le nom de l'objet a retirer
* @throws ObjetAbsentDeLaPieceException Lance une exception lorsque l'objet que l'on tente de retirer ne se trouve pas dans la pièce.
* @throws ObjetNonDeplacableException Lance une exception lorsque l'objet que l'on tente de retirer se trouve dans la pièce mais qu'il n'est pas déplacable.
* @return l'objet retire
*/
* Methode permettabt de retirer un objet de la Piece
*
* @param nomObj le nom de l'objet a retirer
* @throws ObjetAbsentDeLaPieceException Lance une exception lorsque l'objet que
* l'on tente de retirer ne se trouve pas
* dans la pièce.
* @throws ObjetNonDeplacableException Lance une exception lorsque l'objet que
* l'on tente de retirer se trouve dans la
* pièce mais qu'il n'est pas déplacable.
* @return l'objet retire
*/
public Objet retirer(String nomObj) throws ObjetAbsentDeLaPieceException, ObjetNonDeplacableException {
if (nomObj == null) {
return null;
......@@ -126,27 +146,30 @@ public class Piece extends ElementStructurel {
}
/**
* methode testant la presence d'un objet dans la Piece
*@param obj l'objet dont on teste la presence
*@return un booleen
*/
* methode testant la presence d'un objet dans la Piece
*
* @param obj l'objet dont on teste la presence
* @return un booleen
*/
public boolean contientObjet(Objet obj) {
return contientObjet(obj.getNom());
}
/**
* methode testant la presence d'un objet dans la Piece
*@param nomObj le nom de l'objet dont on teste la presence
*@return un booleen
*/
* methode testant la presence d'un objet dans la Piece
*
* @param nomObj le nom de l'objet dont on teste la presence
* @return un booleen
*/
public boolean contientObjet(String nomObj) {
return this.collectionObjet.containsKey(nomObj);
}
/**
*Methode permettant d'ajouter un vivant dans la Piece
*@param vivant le vivant qu'on veut faire rentrer
*/
* Methode permettant d'ajouter un vivant dans la Piece
*
* @param vivant le vivant qu'on veut faire rentrer
*/
public void entrer(Vivant vivant) {
if (vivant != null) {
this.collectionVivant.put(vivant.getNom(), vivant);
......@@ -154,21 +177,27 @@ public class Piece extends ElementStructurel {
}
/**
*Methode permettant de sortir un vivant dans la Piece
*@param vivant le vivant qu'on veut faire sortir
*@return le vivant
*@throws VivantAbsentDeLaPieceException Lance une exception lorsque le vivant que l'on tente de sortir ne se trouve pas dans la pièce.
*/
* Methode permettant de sortir un vivant dans la Piece
*
* @param vivant le vivant qu'on veut faire sortir
* @return le vivant
* @throws VivantAbsentDeLaPieceException Lance une exception lorsque le vivant
* que l'on tente de sortir ne se trouve
* pas dans la pièce.
*/
public Vivant sortir(Vivant vivant) throws VivantAbsentDeLaPieceException {
return sortir(vivant.getNom());
}
/**
*Methode permettant de sortir un vivant dans la Piece
*@param nomVivant le nom du vivant qu'on veut faire sortir
*@return le vivant
*@throws VivantAbsentDeLaPieceException Lance une exception lorsque le vivant que l'on tente de sortir ne se trouve pas dans la pièce.
*/
* Methode permettant de sortir un vivant dans la Piece
*
* @param nomVivant le nom du vivant qu'on veut faire sortir
* @return le vivant
* @throws VivantAbsentDeLaPieceException Lance une exception lorsque le vivant
* que l'on tente de sortir ne se trouve
* pas dans la pièce.
*/
public Vivant sortir(String nomVivant) throws VivantAbsentDeLaPieceException {
if (nomVivant == null) {
return null;
......@@ -181,35 +210,44 @@ public class Piece extends ElementStructurel {
}
/**
* methode testant la presence d'un vivant dans la Piece
*@param vivant le vivant dont on teste la presence
*@return un booleen
*/
* methode testant la presence d'un vivant dans la Piece
*
* @param vivant le vivant dont on teste la presence
* @return un booleen
*/
public boolean contientVivant(Vivant vivant) {
return contientVivant(vivant.getNom());
}
/**
* methode testant la presence d'un vivant dans la Piece
*@param nomVivant le nom du vivant dont on teste la presence
*@return un booleen
*/
* methode testant la presence d'un vivant dans la Piece
*
* @param nomVivant le nom du vivant dont on teste la presence
* @return un booleen
*/
public boolean contientVivant(String nomVivant) {
return this.collectionVivant.containsKey(nomVivant);
}
/**
*methode permettant d'obtenir une description textuelle de la Piece
*@return la description textuelle
*/
* methode permettant d'obtenir une description textuelle de la Piece
*
* @return la description textuelle
*/
public String toString() {
StringBuilder txt = new StringBuilder();
txt.append(String.format("Piece : %s, Monde : %s\n", this.nom, this.monde));
txt.append(String.format("Piece : %s", this.nom));
txt.append("\nObjets de la Piece : ");
for (Objet e : this.collectionObjet.values()) {
txt.append(String.format("\t%s\n", e.getNom()));
txt.append(String.format("\t%s", e.getNom()));
}
txt.append("\nVivant de la Piece : ");
for (Vivant v : this.collectionVivant.values()) {
txt.append(String.format("\t%s\n", v.getNom()));
txt.append(String.format("\t%s", v.getNom()));
}
txt.append("\nPortes de la Piece : ");
for (Porte p : this.collectionPorte.values()) {
txt.append(String.format("\t%s", p));
}
return txt.toString();
}
......
......@@ -89,8 +89,7 @@ public class Porte extends ElementStructurel implements Activable {
}
public String toString() {
return String.format("La porte %s relie les pieces %s et %s de %s", this.nom, this.pieceA.getNom(),
this.pieceB.getNom(), this.monde.getNom());
return String.format("%s : %s <--> %s, %s", this.nom, this.pieceA.getNom(), this.pieceB.getNom(), this.getEtat());
}
}
......@@ -16,24 +16,28 @@ import fr.insarouen.asi.prog.asiaventure.elements.structure.PorteInexistanteDans
import fr.insarouen.asi.prog.asiaventure.elements.structure.VivantAbsentDeLaPieceException;
/**
*classe non instanciable definissant une entite vivante
*/
* classe non instanciable definissant une entite vivante
*/
public abstract class Vivant extends Entite {
private int pointVie, pointForce;
private Piece piece;
private HashMap<String, Objet> collectionObjets;
/**
*constructeur de vivant
*@param nom le nom du vivant
*@param monde le monde du vivants
*@param pointVie les points de vie du vivants
*@param pointForce les points de force du vivants
*@param piece la piece du vivant
*@param objets les objets du vivant
*@throws NomDEntiteDejaUtiliseDansLeMondeException Lance une exception si le monde contient déjà une entité avec ce nom.
*/
public Vivant(String nom, Monde monde, int pointVie, int pointForce, Piece piece, Objet... objets) throws NomDEntiteDejaUtiliseDansLeMondeException {
* constructeur de vivant
*
* @param nom le nom du vivant
* @param monde le monde du vivants
* @param pointVie les points de vie du vivants
* @param pointForce les points de force du vivants
* @param piece la piece du vivant
* @param objets les objets du vivant
* @throws NomDEntiteDejaUtiliseDansLeMondeException Lance une exception si le
* monde contient déjà une
* entité avec ce nom.
*/
public Vivant(String nom, Monde monde, int pointVie, int pointForce, Piece piece, Objet... objets)
throws NomDEntiteDejaUtiliseDansLeMondeException {
super(nom, monde);
this.pointVie = pointVie;
this.pointForce = pointForce;
......@@ -47,72 +51,89 @@ public abstract class Vivant extends Entite {
}
/**
*getter des points de vie
*@return les points de vie
*/
* getter des points de vie
*
* @return les points de vie
*/
public int getPointVie() {
return this.pointVie;
}
public void setPointsDeVie(int valeur){
this.pointVie=valeur;
public void setPointsDeVie(int valeur) {
this.pointVie = valeur;
}
/**
*getter des points de force
*@return les points de force
*/
* getter des points de force
*
* @return les points de force
*/
public int getPointForce() {
return this.pointForce;
}
/**
*getter de la piece
*@return la piece
*/
* getter de la piece
*
* @return la piece
*/
public Piece getPiece() {
return this.piece;
}
/**
*methode permettant d'obtenir un objet de l'inventaire
*@param nomObjet le nom de l'objet recherche
*@return l'objet recherche
*/
* methode permettant d'obtenir un objet de l'inventaire
*
* @param nomObjet le nom de l'objet recherche
* @return l'objet recherche
*/
public Objet getObjet(String nomObjet) {
return this.collectionObjets.get(nomObjet);
}
public HashMap<String,Objet> getObjets(){
public HashMap<String, Objet> getObjets() {
return this.collectionObjets;
}
/**
*methode permettant d'ajouter un objet a l'inventaire
*@param obj l'objet a ajouter
* @throws ObjetAbsentDeLaPieceException Lance une exception lorsque l'objet que l'on tente de retirer ne se trouve pas dans la pièce.
* @throws ObjetNonDeplacableException Lance une exception lorsque l'objet que l'on tente de retirer se trouve dans la pièce mais qu'il n'est pas déplacable.
*/
* methode permettant d'ajouter un objet a l'inventaire
*
* @param obj l'objet a ajouter
* @throws ObjetAbsentDeLaPieceException Lance une exception lorsque l'objet que
* l'on tente de retirer ne se trouve pas
* dans la pièce.
* @throws ObjetNonDeplacableException Lance une exception lorsque l'objet que
* l'on tente de retirer se trouve dans la
* pièce mais qu'il n'est pas déplacable.
*/
public void prendre(Objet obj) throws ObjetAbsentDeLaPieceException, ObjetNonDeplacableException {
this.prendre(obj.getNom());
}
/**
*methode permettant d'ajouter un objet a l'inventaire
*@param nomObj le nom de l'objet a ajouter
* @throws ObjetAbsentDeLaPieceException Lance une exception lorsque l'objet que l'on tente de retirer ne se trouve pas dans la pièce.
* @throws ObjetNonDeplacableException Lance une exception lorsque l'objet que l'on tente de retirer se trouve dans la pièce mais qu'il n'est pas déplacable.
*/
* methode permettant d'ajouter un objet a l'inventaire
*
* @param nomObj le nom de l'objet a ajouter
* @throws ObjetAbsentDeLaPieceException Lance une exception lorsque l'objet que
* l'on tente de retirer ne se trouve pas
* dans la pièce.
* @throws ObjetNonDeplacableException Lance une exception lorsque l'objet que
* l'on tente de retirer se trouve dans la
* pièce mais qu'il n'est pas déplacable.
*/
public void prendre(String nomObjet) throws ObjetAbsentDeLaPieceException, ObjetNonDeplacableException {
Objet obj = this.piece.retirer(nomObjet);
this.collectionObjets.put(nomObjet, obj);
}
/**
*methode permettant d'enlever un objet de l'inventaire
*@param nomObj le nom de l'objet a enlever
*@throws ObjetNonPossedeParLeVivantException Lance une exception lorsque l'objet ne se trouve pas dans l'inventaire du vivant.
*/
* methode permettant d'enlever un objet de l'inventaire
*
* @param nomObj le nom de l'objet a enlever
* @throws ObjetNonPossedeParLeVivantException Lance une exception lorsque
* l'objet ne se trouve pas dans
* l'inventaire du vivant.
*/
public void deposer(String nomObj) throws ObjetNonPossedeParLeVivantException {
if (nomObj == null) {
return;
......@@ -125,10 +146,13 @@ public abstract class Vivant extends Entite {
}
/**
*methode permettant d'enlever un objet de l'inventaire
*@param obj l'objet a enlever
*@throws ObjetNonPossedeParLeVivantException Lance une exception lorsque l'objet ne se trouve pas dans l'inventaire du vivant.
*/
* methode permettant d'enlever un objet de l'inventaire
*
* @param obj l'objet a enlever
* @throws ObjetNonPossedeParLeVivantException Lance une exception lorsque
* l'objet ne se trouve pas dans
* l'inventaire du vivant.
*/
public void deposer(Objet obj) throws ObjetNonPossedeParLeVivantException {
if (obj == null) {
return;
......@@ -142,18 +166,20 @@ public abstract class Vivant extends Entite {
}
/**
* methode testant la presence d'un objet dans l'inventaire
*@param obj l'objet dont on teste la presence
*@return un booleen
*/
* methode testant la presence d'un objet dans l'inventaire
*
* @param obj l'objet dont on teste la presence
* @return un booleen
*/
public boolean possede(Objet obj) {
return this.collectionObjets.containsValue(obj);
}
/**
*methode permettant de determiner si un vivant est Mort
*@return un booleen
*/
* methode permettant de determiner si un vivant est Mort
*
* @return un booleen
*/
public boolean estMort() {
return this.pointVie <= 0;
}
......@@ -180,4 +206,14 @@ public abstract class Vivant extends Entite {
throw new Error("Ne doit pas arriver si l'attribut vivant est a jour");
}
}
public String toString() {
StringBuilder texte = new StringBuilder();
texte.append(String.format("Vivant : %s, Monde : %s\n", this.getNom(), this.getMonde().getNom()));
texte.append("Inventaire : ");
for (Objet obj : this.getObjets().values()){
texte.append(String.format("%s, ", obj.getNom()));
}
return texte.toString();
}
}
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment