diff --git a/src/Cases/CaseAbstraite.java b/src/Cases/CaseAbstraite.java index 84f2cc7..97d7f6c 100644 --- a/src/Cases/CaseAbstraite.java +++ b/src/Cases/CaseAbstraite.java @@ -1,12 +1,16 @@ package Cases; +import Etats.EtatPersonnageKO; +import Etats.EtatPersonnageOK; import Objets.ObjetAbstrait; import Person.Personnage; import java.util.HashMap; public abstract class CaseAbstraite { - Personnage occupant; + + protected Personnage occupant; + protected ObjetAbstrait objetOccupant; HashMap voisins; @@ -20,6 +24,7 @@ public abstract class CaseAbstraite { voisins = new HashMap(); occupant = null; + objetOccupant= null; } public void ajouterVoisin(PointsCardinaux p, CaseAbstraite c) { @@ -29,8 +34,206 @@ public abstract class CaseAbstraite { public void ajouterOccupant(Personnage occ) { this.occupant = occ; } + + public void ajouterObjet(ObjetAbstrait objet) { + this.objetOccupant = objet; + } public Personnage getOccupant() { return occupant; } + + public ObjetAbstrait getObjetOccupant() { + return objetOccupant; + } + + public void setObjetOccupant(ObjetAbstrait objetOccupant) { + this.objetOccupant = objetOccupant; + } + + public void setOccupant(Personnage occupant) { + this.occupant = occupant; + } + + public HashMap getVoisins() { + return voisins; + } + + public void setVoisins(HashMap voisins) { + this.voisins = voisins; + } + + public ObjetAbstrait rechercheObjetProche(){ + ObjetAbstrait objetDeLaCase = null; + + for (PointsCardinaux mapKey : voisins.keySet()) { + if (voisins.get(mapKey).getObjetOccupant() != null) + { + objetDeLaCase = voisins.get(mapKey).getObjetOccupant(); + } + } + if (objetDeLaCase != null) + { + for (PointsCardinaux mapKey : voisins.keySet()) { + switch(mapKey) + { + case N: + if (voisins.get(mapKey).getVoisins().get(PointsCardinaux.N) != null){ + objetDeLaCase = voisins.get(mapKey).getVoisins().get(PointsCardinaux.N).getObjetOccupant(); + } + break; + case NE: + if (voisins.get(mapKey).getVoisins().get(PointsCardinaux.N) != null){ + objetDeLaCase = voisins.get(mapKey).getVoisins().get(PointsCardinaux.N).getObjetOccupant(); + } + if (voisins.get(mapKey).getVoisins().get(PointsCardinaux.NE) != null){ + objetDeLaCase = voisins.get(mapKey).getVoisins().get(PointsCardinaux.NE).getObjetOccupant(); + } + if (voisins.get(mapKey).getVoisins().get(PointsCardinaux.E) != null){ + objetDeLaCase = voisins.get(mapKey).getVoisins().get(PointsCardinaux.E).getObjetOccupant(); + } + break; + case E: + if (voisins.get(mapKey).getVoisins().get(PointsCardinaux.E) != null){ + objetDeLaCase = voisins.get(mapKey).getVoisins().get(PointsCardinaux.E).getObjetOccupant(); + } + break; + case SE: + if (voisins.get(mapKey).getVoisins().get(PointsCardinaux.E) != null){ + objetDeLaCase = voisins.get(mapKey).getVoisins().get(PointsCardinaux.E).getObjetOccupant(); + } + if (voisins.get(mapKey).getVoisins().get(PointsCardinaux.SE) != null){ + objetDeLaCase = voisins.get(mapKey).getVoisins().get(PointsCardinaux.SE).getObjetOccupant(); + } + if (voisins.get(mapKey).getVoisins().get(PointsCardinaux.S) != null){ + objetDeLaCase = voisins.get(mapKey).getVoisins().get(PointsCardinaux.S).getObjetOccupant(); + } + break; + case S: + if (voisins.get(mapKey).getVoisins().get(PointsCardinaux.S) != null){ + objetDeLaCase = voisins.get(mapKey).getVoisins().get(PointsCardinaux.S).getObjetOccupant(); + } + break; + case SW: + if (voisins.get(mapKey).getVoisins().get(PointsCardinaux.S) != null){ + objetDeLaCase = voisins.get(mapKey).getVoisins().get(PointsCardinaux.S).getObjetOccupant(); + } + if (voisins.get(mapKey).getVoisins().get(PointsCardinaux.SW) != null){ + objetDeLaCase = voisins.get(mapKey).getVoisins().get(PointsCardinaux.SW).getObjetOccupant(); + } + if (voisins.get(mapKey).getVoisins().get(PointsCardinaux.W) != null){ + objetDeLaCase = voisins.get(mapKey).getVoisins().get(PointsCardinaux.W).getObjetOccupant(); + } + break; + case W: + if (voisins.get(mapKey).getVoisins().get(PointsCardinaux.W) != null){ + objetDeLaCase = voisins.get(mapKey).getVoisins().get(PointsCardinaux.W).getObjetOccupant(); + } + break; + case NW: + if (voisins.get(mapKey).getVoisins().get(PointsCardinaux.W) != null){ + objetDeLaCase = voisins.get(mapKey).getVoisins().get(PointsCardinaux.W).getObjetOccupant(); + } + if (voisins.get(mapKey).getVoisins().get(PointsCardinaux.NW) != null){ + objetDeLaCase = voisins.get(mapKey).getVoisins().get(PointsCardinaux.NW).getObjetOccupant(); + } + if (voisins.get(mapKey).getVoisins().get(PointsCardinaux.N) != null){ + objetDeLaCase = voisins.get(mapKey).getVoisins().get(PointsCardinaux.N).getObjetOccupant(); + } + break; + default: + break; + + } + } + } + return objetDeLaCase; + } + + public Personnage rechercheJoueur(){ + Personnage personne = null; + + for (PointsCardinaux mapKey : voisins.keySet()) { + if (voisins.get(mapKey).getOccupant() != null) + { + personne = voisins.get(mapKey).getOccupant(); + } + } + if (personne != null) + { + for (PointsCardinaux mapKey : voisins.keySet()) { + switch(mapKey) + { + case N: + if (voisins.get(mapKey).getVoisins().get(PointsCardinaux.N) != null){ + personne = voisins.get(mapKey).getVoisins().get(PointsCardinaux.N).getOccupant(); + } + break; + case NE: + if (voisins.get(mapKey).getVoisins().get(PointsCardinaux.N) != null){ + personne = voisins.get(mapKey).getVoisins().get(PointsCardinaux.N).getOccupant(); + } + if (voisins.get(mapKey).getVoisins().get(PointsCardinaux.NE) != null){ + personne = voisins.get(mapKey).getVoisins().get(PointsCardinaux.NE).getOccupant(); + } + if (voisins.get(mapKey).getVoisins().get(PointsCardinaux.E) != null){ + personne = voisins.get(mapKey).getVoisins().get(PointsCardinaux.E).getOccupant(); + } + break; + case E: + if (voisins.get(mapKey).getVoisins().get(PointsCardinaux.E) != null){ + personne = voisins.get(mapKey).getVoisins().get(PointsCardinaux.E).getOccupant(); + } + break; + case SE: + if (voisins.get(mapKey).getVoisins().get(PointsCardinaux.E) != null){ + personne = voisins.get(mapKey).getVoisins().get(PointsCardinaux.E).getOccupant(); + } + if (voisins.get(mapKey).getVoisins().get(PointsCardinaux.SE) != null){ + personne = voisins.get(mapKey).getVoisins().get(PointsCardinaux.SE).getOccupant(); + } + if (voisins.get(mapKey).getVoisins().get(PointsCardinaux.S) != null){ + personne = voisins.get(mapKey).getVoisins().get(PointsCardinaux.S).getOccupant(); + } + break; + case S: + if (voisins.get(mapKey).getVoisins().get(PointsCardinaux.S) != null){ + personne = voisins.get(mapKey).getVoisins().get(PointsCardinaux.S).getOccupant(); + } + break; + case SW: + if (voisins.get(mapKey).getVoisins().get(PointsCardinaux.S) != null){ + personne = voisins.get(mapKey).getVoisins().get(PointsCardinaux.S).getOccupant(); + } + if (voisins.get(mapKey).getVoisins().get(PointsCardinaux.SW) != null){ + personne = voisins.get(mapKey).getVoisins().get(PointsCardinaux.SW).getOccupant(); + } + if (voisins.get(mapKey).getVoisins().get(PointsCardinaux.W) != null){ + personne = voisins.get(mapKey).getVoisins().get(PointsCardinaux.W).getOccupant(); + } + break; + case W: + if (voisins.get(mapKey).getVoisins().get(PointsCardinaux.W) != null){ + personne = voisins.get(mapKey).getVoisins().get(PointsCardinaux.W).getOccupant(); + } + break; + case NW: + if (voisins.get(mapKey).getVoisins().get(PointsCardinaux.W) != null){ + personne = voisins.get(mapKey).getVoisins().get(PointsCardinaux.W).getOccupant(); + } + if (voisins.get(mapKey).getVoisins().get(PointsCardinaux.NW) != null){ + personne = voisins.get(mapKey).getVoisins().get(PointsCardinaux.NW).getOccupant(); + } + if (voisins.get(mapKey).getVoisins().get(PointsCardinaux.N) != null){ + personne = voisins.get(mapKey).getVoisins().get(PointsCardinaux.N).getOccupant(); + } + break; + default: + break; + + } + } + } + return personne; + } } \ No newline at end of file