Commit 3d50573a authored by Aroubate Hamza's avatar Aroubate Hamza
Browse files

Tp3

parent 71c3bb5f
...@@ -6,202 +6,201 @@ import fr.insarouen.asi.prog.asiaventure.elements.vivants.*; ...@@ -6,202 +6,201 @@ import fr.insarouen.asi.prog.asiaventure.elements.vivants.*;
public class ClassMain { public class ClassMain {
public static void main (String[] args){ public static void main (String[] args){
try{
System.out.println("############");
System.out.println("##TestMain##");
System.out.println("############");
System.out.println("############");
System.out.println("##TestMain##");
System.out.println("############");
System.out.println("Test creation monde"); System.out.println("Test creation monde");
Monde monde = new Monde("nouveauMonde"); Monde monde = new Monde("nouveauMonde");
System.out.println(monde.toString()); System.out.println(monde.toString());
System.out.println("############"); System.out.println("############");
Entite entite1 = new Entite("nom1", monde){}; Entite entite1 = new Entite("nom1", monde){};
Entite entite2 = new Entite("nom2", monde){}; Entite entite2 = new Entite("nom2", monde){};
System.out.println("Test creation et ajout de 2 entites"); System.out.println("Test creation et ajout de 2 entites");
System.out.println(entite1.toString()); System.out.println(entite1.toString());
System.out.println(entite2.toString()); System.out.println(entite2.toString());
System.out.println(monde.toString()); System.out.println(monde.toString());
System.out.println("############"); System.out.println("############");
System.out.println("Test entite equals & hashcode"); System.out.println("Test entite equals & hashcode");
System.out.println("entite1 = entite1 ? " + entite1.equals(entite1)); System.out.println("entite1 = entite1 ? " + entite1.equals(entite1));
System.out.println("entite1 = entite2 ? " + entite1.equals(entite2)); System.out.println("entite1 = entite2 ? " + entite1.equals(entite2));
System.out.println("hashcode entite1: " + entite1.hashCode()); System.out.println("hashcode entite1: " + entite1.hashCode());
System.out.println("hashcode entite2: " + entite2.hashCode()); System.out.println("hashcode entite2: " + entite2.hashCode());
System.out.println("############"); System.out.println("############");
System.out.println("Test Monde.getEntite"); System.out.println("Test Monde.getEntite");
Entite entite3 = monde.getEntite("nom1"); Entite entite3 = monde.getEntite("nom1");
System.out.println(entite3.toString()); System.out.println(entite3.toString());
System.out.println("Entite trouve == entite1 ? " + entite3.equals(entite1)); System.out.println("Entite trouve == entite1 ? " + entite3.equals(entite1));
System.out.println("hashcode entite1: " + entite1.hashCode()); System.out.println("hashcode entite1: " + entite1.hashCode());
System.out.println("hashcode trouve: " + entite3.hashCode()); System.out.println("hashcode trouve: " + entite3.hashCode());
System.out.println("############"); System.out.println("############");
System.out.println("Test Valeurs Etat"); System.out.println("Test Valeurs Etat");
for (Etat c : Etat.values()){ //cf javadoc for (Etat c : Etat.values()){ //cf javadoc
System.out.println(c); System.out.println(c);
} }
System.out.println("############"); System.out.println("############");
System.out.println("Test Valeurs EtatDuJeu"); System.out.println("Test Valeurs EtatDuJeu");
for (EtatDuJeu c : EtatDuJeu.values()){ //cf javadoc for (EtatDuJeu c : EtatDuJeu.values()){ //cf javadoc
System.out.println(c); System.out.println(c);
} }
System.out.println("############"); System.out.println("############");
System.out.println("Test Objet"); System.out.println("Test Objet");
Objet objet = new Objet("objet 1", monde){ Objet objet = new Objet("objet 1", monde){
public boolean estDeplacable(){ public boolean estDeplacable(){
return false; return false;
} }
}; };
System.out.println("deplacable ? " + objet.estDeplacable()); System.out.println("deplacable ? " + objet.estDeplacable());
System.out.println("############"); System.out.println("############");
System.out.println("Test Pied De Biche"); System.out.println("Test Pied De Biche");
PiedDeBiche pdb = new PiedDeBiche("Super Pied de Biche", monde); PiedDeBiche pdb = new PiedDeBiche("Super Pied de Biche", monde);
System.out.println("deplacable ? " + pdb.estDeplacable()); System.out.println("deplacable ? " + pdb.estDeplacable());
System.out.println("############"); System.out.println("############");
System.out.println("Test Element Structurel"); System.out.println("Test Element Structurel");
PiedDeBiche es = new PiedDeBiche("Element Structurel", monde); PiedDeBiche es = new PiedDeBiche("Element Structurel", monde);
System.out.println("deplacable ? " + es.estDeplacable()); System.out.println("deplacable ? " + es.estDeplacable());
System.out.println("############"); System.out.println("############");
System.out.println("Test deposer Piece");
System.out.println("Test deposer Piece"); PiedDeBiche pb = new PiedDeBiche("mon pied de biche prefere",monde);
Objet o = new Objet("gitare", monde){
PiedDeBiche pb = new PiedDeBiche("mon pied de biche prefere",monde); public boolean estDeplacable(){
Objet o = new Objet("gitare", monde){ return true;
public boolean estDeplacable(){
return true;
};
}; };
Piece pc = new Piece(monde,"chambre"); };
pc.deposer(o); Piece pc = new Piece(monde,"chambre");
pc.deposer(pb); pc.deposer(o);
System.out.println("Piece : " + pc.toString()); pc.deposer(pb);
System.out.println("Piece : " + pc.toString());
System.out.println("############"); System.out.println("############");
System.out.println("Test Retirer Piece"); System.out.println("Test Retirer Piece");
Objet objetRetourne = pc.retirer(o); Objet objetRetourne = pc.retirer(o);
System.out.println("identiques ?" + objetRetourne.equals(o)); System.out.println("identiques ?" + objetRetourne.equals(o));
System.out.println("Piece : " + pc.toString()); System.out.println("Piece : " + pc.toString());
objetRetourne = pc.retirer(pb.getNom()); objetRetourne = pc.retirer(pb.getNom());
System.out.println("identiques ?" + objetRetourne.equals(pb)); System.out.println("identiques ?" + objetRetourne.equals(pb));
System.out.println("Piece : " + pc.toString()); System.out.println("Piece : " + pc.toString());
System.out.println("############"); System.out.println("############");
System.out.println("Test Contient Objet"); System.out.println("Test Contient Objet");
pc.deposer(o); pc.deposer(o);
System.out.println("Objet dans Pièce ? " + pc.contientObjet(o)); System.out.println("Objet dans Pièce ? " + pc.contientObjet(o));
pc.retirer(o); pc.retirer(o);
System.out.println("Objet dans Pièce ? " + pc.contientObjet(o.getNom())); System.out.println("Objet dans Pièce ? " + pc.contientObjet(o.getNom()));
System.out.println("############"); System.out.println("############");
System.out.println("Test Prendre Objet"); System.out.println("Test Prendre Objet");
Vivant v = new Vivant("chambre", monde, 10, 9, pc, o ){};
Objet obj1 = new Objet("banane", monde){
public boolean estDeplacable(){
return true;
}
};
pc.deposer(obj1);
v.prendre(obj1);
System.out.println(v.toString());
pc.deposer(o);
v.prendre(o.getNom());
System.out.println(v.toString());
System.out.println("############"); Vivant v = new Vivant("chambre", monde, 10, 9, pc, o ){};
Objet obj1 = new Objet("banane", monde){
public boolean estDeplacable(){
return true;
}
};
pc.deposer(obj1);
v.prendre(obj1);
System.out.println(v.toString());
pc.deposer(o);
v.prendre(o.getNom());
System.out.println(v.toString());
System.out.println("Test deposer Objet"); System.out.println("############");
v.deposer(obj1);
System.out.println(pc.toString());
v.prendre(obj1);
System.out.println(pc.toString());
v.deposer(obj1.getNom());
System.out.println(pc.toString());
System.out.println("############"); System.out.println("Test deposer Objet");
v.deposer(obj1);
System.out.println(pc.toString());
v.prendre(obj1);
System.out.println(pc.toString());
v.deposer(obj1.getNom());
System.out.println(pc.toString());
System.out.println("Test get Objet"); System.out.println("############");
System.out.println("est identiques ? " + v.getObjet(o.getNom()).equals(o));
System.out.println("############"); System.out.println("Test get Objet");
System.out.println("est identiques ? " + v.getObjet(o.getNom()).equals(o));
System.out.println("Test possede Objet"); System.out.println("############");
System.out.println("il possede l'objet ? " + v.possede(o));
System.out.println("############"); System.out.println("Test possede Objet");
System.out.println("il possede l'objet ? " + v.possede(o));
System.out.println("Test get pointvie"); System.out.println("############");
System.out.println("PointVie = 10 ? : " + (v.getPointVie() == 10));
System.out.println("############"); System.out.println("Test get pointvie");
System.out.println("PointVie = 10 ? : " + (v.getPointVie() == 10));
System.out.println("Test estMort"); System.out.println("############");
System.out.println("est mort ? : " + (v.getPointVie() == 0));
System.out.println("############"); System.out.println("Test estMort");
System.out.println("est mort ? : " + (v.getPointVie() == 0));
System.out.println("Test des Vivants dans Pièces"); System.out.println("############");
Vivant v1 = new Vivant("vivant", monde, 10, 9, pc, o ){}; System.out.println("Test des Vivants dans Pièces");
Piece p = new Piece(monde,"salon");
p.entrer(v1);
System.out.println(p.toString());
p.sortir(v1);
System.out.println(p.toString());
System.out.println("############"); Vivant v1 = new Vivant("vivant", monde, 10, 9, pc, o ){};
Piece p = new Piece(monde,"salon");
p.entrer(v1);
System.out.println(p.toString());
p.sortir(v1);
System.out.println(p.toString());
System.out.println("Test contient vivant"); System.out.println("############");
p.entrer(v1);
System.out.println("il contient vivant ? " + p.contientVivant(v1));
System.out.println("############"); System.out.println("Test contient vivant");
p.entrer(v1);
} System.out.println("il contient vivant ? " + p.contientVivant(v1));
System.out.println("############");
catch(NomDEntiteDejaUtiliseDansLeMondeException e){ catch(NomDEntiteDejaUtiliseDansLeMondeException e){
System.err.println(e); System.err.println(e);
} }
......
...@@ -9,13 +9,27 @@ public class Monde { ...@@ -9,13 +9,27 @@ public class Monde {
private String nom; private String nom;
private Entite[] tableauEntites = new Entite [0]; private Entite[] tableauEntites = new Entite [0];
/**
* Constructeur de Monde
* @param nom nom du monde
*/
public Monde(String nom){ public Monde(String nom){
this.nom = nom; this.nom = nom;
} }
/**
* GetNom Getter du nom du monde
* @return nom du monde
*/
public String getNom(){ public String getNom(){
return this.nom; return this.nom;
} }
/**
* GetEntite cherche une entite par son nom
* @param nom nom de l'entite a rechercher
* @return Entite cherche
*/
public Entite getEntite(String nom){ public Entite getEntite(String nom){
boolean trouve = false; boolean trouve = false;
int i = 0; int i = 0;
...@@ -32,6 +46,12 @@ public class Monde { ...@@ -32,6 +46,12 @@ public class Monde {
return null; return null;
} }
/**
* Ajouter ajoute une entite dans le monde
* @param nouvelleEntite l'entite a rechercher
* @throws NomDEntiteDejaUtiliseDansLeMondeException
* @throws EntiteDejaDansUnAutreMondeException
*/
public void ajouter(Entite nouvelleEntite) public void ajouter(Entite nouvelleEntite)
throws NomDEntiteDejaUtiliseDansLeMondeException, throws NomDEntiteDejaUtiliseDansLeMondeException,
EntiteDejaDansUnAutreMondeException { EntiteDejaDansUnAutreMondeException {
...@@ -53,6 +73,10 @@ public class Monde { ...@@ -53,6 +73,10 @@ public class Monde {
tableauEntites = tmp; tableauEntites = tmp;
} }
/**
* toString créer un String décrivant le monde
* @return le String de description
*/
public String toString(){ public String toString(){
String resultat; String resultat;
resultat = " Nom : "+ this.getNom() + ";\n"; resultat = " Nom : "+ this.getNom() + ";\n";
......
...@@ -10,7 +10,13 @@ public abstract class Entite { ...@@ -10,7 +10,13 @@ public abstract class Entite {
private String nom; private String nom;
private Monde monde; private Monde monde;
public Entite(String nom, Monde monde)throws NomDEntiteDejaUtiliseDansLeMondeException{ /**
* Constructeur de l'entite
* @param nom nom de l'entite
* @param monde monde de l'entite
* @throws NomDEntiteDejaUtiliseDansLeMondeException
*/
public Entite(String nom, Monde monde) throws NomDEntiteDejaUtiliseDansLeMondeException{
this.nom = nom; this.nom = nom;
if (monde.getEntite(nom) != null){ if (monde.getEntite(nom) != null){
...@@ -23,12 +29,26 @@ public abstract class Entite { ...@@ -23,12 +29,26 @@ public abstract class Entite {
} }
/**
* getNom Getter du nom de l'entite
* @return nom de l'entite
*/
public String getNom(){ public String getNom(){
return this.nom; return this.nom;
} }
/**
* getMonde Getter du monde de l'entite
* @return monde de l'entite
*/
public Monde getMonde(){ public Monde getMonde(){
return this.monde; return this.monde;
} }
/**
* equals Compare deux Object (!= Objet)
* @return un boolean true/false en fonction de la similarité
*/
public boolean equals(Object o){ public boolean equals(Object o){
if (o == null || o.getClass()!=this.getClass()){ if (o == null || o.getClass()!=this.getClass()){
return false; return false;
...@@ -37,6 +57,10 @@ public abstract class Entite { ...@@ -37,6 +57,10 @@ public abstract class Entite {
return nom.equals(e.nom) && monde.equals(e.monde); return nom.equals(e.nom) && monde.equals(e.monde);
} }
/**
* toString créer un String décrivant l'entite
* @return le String de description
*/
public String toString(){ public String toString(){
return "Nom : "+this.nom; return "Nom : "+this.nom;
} }
......
...@@ -9,11 +9,21 @@ import fr.insarouen.asi.prog.asiaventure.elements.structure.*; ...@@ -9,11 +9,21 @@ import fr.insarouen.asi.prog.asiaventure.elements.structure.*;
public abstract class Objet extends Entite{ public abstract class Objet extends Entite{
/**
* Constructeur de l'objet
* @param nom nom de l'objet
* @param monde monde de l'objet
* @throws NomDEntiteDejaUtiliseDansLeMondeException
*/
public Objet(String nom, Monde monde) public Objet(String nom, Monde monde)
throws NomDEntiteDejaUtiliseDansLeMondeException{ throws NomDEntiteDejaUtiliseDansLeMondeException{
super(nom,monde); super(nom,monde);
} }
/**
* estDeplacable méthode a redéfinir pour chaque objet
* @return boolean indiquant si l'objet est deplacable ou non
*/
public abstract boolean estDeplacable(); public abstract boolean estDeplacable();
......
...@@ -8,11 +8,21 @@ import fr.insarouen.asi.prog.asiaventure.elements.vivants.*; ...@@ -8,11 +8,21 @@ import fr.insarouen.asi.prog.asiaventure.elements.vivants.*;
import fr.insarouen.asi.prog.asiaventure.elements.structure.*; import fr.insarouen.asi.prog.asiaventure.elements.structure.*;
public class PiedDeBiche extends Objet{ public class PiedDeBiche extends Objet{
/**
* Constructeur de l'objet pied de biche
* @param monde monde de l'objet
* @throws EntiteDejaDansUnAutreMondeException
*/
public PiedDeBiche(String nom, Monde monde) public PiedDeBiche(String nom, Monde monde)
throws NomDEntiteDejaUtiliseDansLeMondeException{ throws NomDEntiteDejaUtiliseDansLeMondeException{
super(nom, monde); super(nom, monde);
} }
/**
* estDeplacable redefinition de la méthode abstraite de Objet
* @return true pour deplacable, false sinon
*/
public boolean estDeplacable(){ public boolean estDeplacable(){
return true; return true;
} }
......
...@@ -8,11 +8,14 @@ import fr.insarouen.asi.prog.asiaventure.elements.vivants.*; ...@@ -8,11 +8,14 @@ import fr.insarouen.asi.prog.asiaventure.elements.vivants.*;
import fr.insarouen.asi.prog.asiaventure.elements.structure.*; import fr.insarouen.asi.prog.asiaventure.elements.structure.*;
public abstract class ElementStructurel extends Entite{ public abstract class ElementStructurel extends Entite{
/**
* Constructeur de l'element structurel de base
* @param nom nom de l'element
* @param monde monde de l'element
* @throws NomDEntiteDejaUtiliseDansLeMondeException
*/
public ElementStructurel(String nom, Monde monde) public ElementStructurel(String nom, Monde monde)