Recherche d'objets et personnage avec la portee.
This commit is contained in:
parent
bcd693aba7
commit
6e4e647866
@ -25,24 +25,24 @@ public abstract class CaseAbstraite {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void generateVoisins(CaseAbstraite[][] plateau) {
|
public void generateVoisins(CaseAbstraite[][] plateau) {
|
||||||
for (int i = coord.getHor() - 1; i < coord.getHor() + 1; i++) {
|
for (int i = coord.getLigne() - 1; i <= coord.getLigne() + 1; i++) {
|
||||||
for (int j = coord.getVert() - 1; j < coord.getVert() + 1; j++) {
|
for (int j = coord.getCol() - 1; j <= coord.getCol() + 1; j++) {
|
||||||
if (i > 0 && i < plateau.length && j > 0 && j < plateau[0].length) {
|
if (i >= 0 && i < plateau.length && j >= 0 && j < plateau[0].length) {
|
||||||
if (i == coord.getHor() && j < coord.getVert()) {
|
if (i < coord.getLigne() && j == coord.getCol()) {
|
||||||
voisins.put(PointsCardinaux.N, plateau[i][j]);
|
voisins.put(PointsCardinaux.N, plateau[i][j]);
|
||||||
} else if (i > coord.getHor() && j < coord.getVert()) {
|
} else if (i < coord.getLigne() && j > coord.getCol()) {
|
||||||
voisins.put(PointsCardinaux.NE, plateau[i][j]);
|
voisins.put(PointsCardinaux.NE, plateau[i][j]);
|
||||||
} else if (i > coord.getHor() && j == coord.getVert()) {
|
} else if (i == coord.getLigne() && j > coord.getCol()) {
|
||||||
voisins.put(PointsCardinaux.E, plateau[i][j]);
|
voisins.put(PointsCardinaux.E, plateau[i][j]);
|
||||||
} else if (i > coord.getHor() && j > coord.getVert()) {
|
} else if (i > coord.getLigne() && j > coord.getCol()) {
|
||||||
voisins.put(PointsCardinaux.NE, plateau[i][j]);
|
voisins.put(PointsCardinaux.SE, plateau[i][j]);
|
||||||
} else if (i == coord.getHor() && j > coord.getVert()) {
|
} else if (i > coord.getLigne() && j == coord.getCol()) {
|
||||||
voisins.put(PointsCardinaux.S, plateau[i][j]);
|
voisins.put(PointsCardinaux.S, plateau[i][j]);
|
||||||
} else if (i < coord.getHor() && j > coord.getVert()) {
|
} else if (i > coord.getLigne() && j < coord.getCol()) {
|
||||||
voisins.put(PointsCardinaux.SW, plateau[i][j]);
|
voisins.put(PointsCardinaux.SW, plateau[i][j]);
|
||||||
} else if (i < coord.getHor() && j == coord.getVert()) {
|
} else if (i == coord.getLigne() && j < coord.getCol()) {
|
||||||
voisins.put(PointsCardinaux.W, plateau[i][j]);
|
voisins.put(PointsCardinaux.W, plateau[i][j]);
|
||||||
} else if (i < coord.getHor() && j < coord.getVert()) {
|
} else if (i < coord.getLigne() && j < coord.getCol()) {
|
||||||
voisins.put(PointsCardinaux.NW, plateau[i][j]);
|
voisins.put(PointsCardinaux.NW, plateau[i][j]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,27 +1,27 @@
|
|||||||
package Cases;
|
package Cases;
|
||||||
|
|
||||||
public class Coordonnees {
|
public class Coordonnees {
|
||||||
private int vert;
|
private int col;
|
||||||
private int hor;
|
private int ligne;
|
||||||
|
|
||||||
public Coordonnees(int vert, int hor) {
|
public Coordonnees(int vert, int hor) {
|
||||||
this.vert = vert;
|
this.col = vert;
|
||||||
this.hor = hor;
|
this.ligne = hor;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getVert() {
|
public int getLigne() {
|
||||||
return vert;
|
return ligne;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setVert(int vert) {
|
public void setLigne(int ligne) {
|
||||||
this.vert = vert;
|
this.ligne = ligne;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getHor() {
|
public int getCol() {
|
||||||
return hor;
|
return col;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setHor(int hor) {
|
public void setCol(int col) {
|
||||||
this.hor = hor;
|
this.col = col;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,9 +10,5 @@ public abstract class EtatPersonnageAbstrait {
|
|||||||
this.joueur = perso;
|
this.joueur = perso;
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract void AnalyseJoueur();
|
protected abstract void execute();
|
||||||
public abstract void ExecutionJoueur();
|
|
||||||
public abstract void ConflitJoueur();
|
|
||||||
|
|
||||||
public abstract void mediationConflits();
|
|
||||||
}
|
}
|
||||||
|
@ -1,37 +0,0 @@
|
|||||||
package Etats;
|
|
||||||
|
|
||||||
import Person.Personnage;
|
|
||||||
|
|
||||||
public class EtatPersonnageCombattant extends EtatPersonnageAbstrait {
|
|
||||||
|
|
||||||
//Etat d'un personnage avec un marteau, cible les joueurs et ignore le reste.
|
|
||||||
|
|
||||||
protected EtatPersonnageCombattant(Personnage perso) {
|
|
||||||
super(perso);
|
|
||||||
// TODO Auto-generated constructor stub
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void AnalyseJoueur() {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void ExecutionJoueur() {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void ConflitJoueur() {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void mediationConflits() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -8,37 +8,12 @@ public class EtatPersonnageKO extends EtatPersonnageAbstrait {
|
|||||||
|
|
||||||
public EtatPersonnageKO(Personnage perso) {
|
public EtatPersonnageKO(Personnage perso) {
|
||||||
super(perso);
|
super(perso);
|
||||||
// TODO Auto-generated constructor stub
|
|
||||||
|
|
||||||
this.nbTourKO = 3;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void AnalyseJoueur() {
|
protected void execute() {
|
||||||
// TODO Auto-generated method stub
|
if (this.joueur.getPointsDeVie() > 0) {
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void ExecutionJoueur() {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
nbTourKO--;
|
|
||||||
if (nbTourKO==0){
|
|
||||||
this.joueur.ChangeEtat(EEtat.EtatOK);
|
this.joueur.ChangeEtat(EEtat.EtatOK);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void ConflitJoueur() {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void mediationConflits() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,72 +1,21 @@
|
|||||||
package Etats;
|
package Etats;
|
||||||
|
|
||||||
import Comportements.*;
|
|
||||||
import Person.Personnage;
|
import Person.Personnage;
|
||||||
|
|
||||||
public class EtatPersonnageOK extends EtatPersonnageAbstrait {
|
public class EtatPersonnageOK extends EtatPersonnageAbstrait {
|
||||||
|
|
||||||
private ComportementAction Action;
|
private int nbTourKO;
|
||||||
|
|
||||||
public EtatPersonnageOK(Personnage perso) {
|
public EtatPersonnageOK(Personnage perso) {
|
||||||
super(perso);
|
super(perso);
|
||||||
// TODO Auto-generated constructor stub
|
this.nbTourKO = 3;
|
||||||
|
|
||||||
this.ChangerAction(EAction.SeDeplacer);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void AnalyseJoueur() {
|
protected void execute() {
|
||||||
// TODO Auto-generated method stub
|
if (this.joueur.getPointsDeVie() == 0) {
|
||||||
|
this.joueur.ChangeEtat(EEtat.EtatKO);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void ExecutionJoueur() {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
Action.executerAction(this.joueur);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void ConflitJoueur() {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void mediationConflits() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ChangerAction(EAction nouvelAction) {
|
|
||||||
|
|
||||||
switch(nouvelAction)
|
|
||||||
{
|
|
||||||
case ChangerCouleurCase:
|
|
||||||
Action = new ComportementActionChangerCouleurCase();
|
|
||||||
break;
|
|
||||||
case RamasserNeige:
|
|
||||||
Action = new ComportementActionRamasserNeige();
|
|
||||||
break;
|
|
||||||
case SeDeplacer:
|
|
||||||
Action = new ComportementActionSeDeplacer();
|
|
||||||
break;
|
|
||||||
case TirerBalon:
|
|
||||||
Action = new ComportementActionTirerBalon();
|
|
||||||
break;
|
|
||||||
case TirerBouleDeNeige:
|
|
||||||
Action = new ComportementActionTirerBouleDeNeige();
|
|
||||||
break;
|
|
||||||
//case Null:
|
|
||||||
//Action = null;
|
|
||||||
//break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
this.joueur.setAction(nouvelAction);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -14,14 +14,14 @@ public class FabriquePersonnagesBattleZone extends FabriquePersonnagesAbstraite
|
|||||||
public ArrayList<Personnage> CreerPersonages(Organisation o) {
|
public ArrayList<Personnage> CreerPersonages(Organisation o) {
|
||||||
ArrayList<Personnage> list = new ArrayList<Personnage>();
|
ArrayList<Personnage> list = new ArrayList<Personnage>();
|
||||||
|
|
||||||
PersonnageBattleZone p1 = new PersonnageBattleZone("Bob", 100.0, 1.0, 1.0, parDefaut);
|
PersonnageBattleZone p1 = new PersonnageBattleZone("Bob", 100.0, 1.0, 1.0, 2, parDefaut);
|
||||||
list.add(p1);
|
list.add(p1);
|
||||||
PersonnageBattleZone p2 = new PersonnageBattleZone("Jo", 100.0, 1.0, 1.0, parDefaut);
|
//PersonnageBattleZone p2 = new PersonnageBattleZone("Jo", 100.0, 1.0, 1.0, 2, parDefaut);
|
||||||
list.add(p2);
|
//list.add(p2);
|
||||||
PersonnageBattleZone p3 = new PersonnageBattleZone("Max", 100.0, 1.0, 1.0, parDefaut);
|
//PersonnageBattleZone p3 = new PersonnageBattleZone("Max", 100.0, 1.0, 1.0, 2, parDefaut);
|
||||||
list.add(p3);
|
//list.add(p3);
|
||||||
PersonnageBattleZone p4 = new PersonnageBattleZone("Zac", 100.0, 1.0, 1.0, parDefaut);
|
//PersonnageBattleZone p4 = new PersonnageBattleZone("Zac", 100.0, 1.0, 1.0, 2, parDefaut);
|
||||||
list.add(p4);
|
//list.add(p4);
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,8 +2,7 @@ package Person;
|
|||||||
|
|
||||||
import Cases.CaseAbstraite;
|
import Cases.CaseAbstraite;
|
||||||
import Cases.PointsCardinaux;
|
import Cases.PointsCardinaux;
|
||||||
import Comportements.ComportementAction;
|
import Comportements.*;
|
||||||
import Comportements.EAction;
|
|
||||||
import Composition.PersonnagesAbstraits;
|
import Composition.PersonnagesAbstraits;
|
||||||
import Etats.EEtat;
|
import Etats.EEtat;
|
||||||
import Etats.EtatPersonnageAbstrait;
|
import Etats.EtatPersonnageAbstrait;
|
||||||
@ -11,7 +10,9 @@ import Etats.EtatPersonnageKO;
|
|||||||
import Etats.EtatPersonnageOK;
|
import Etats.EtatPersonnageOK;
|
||||||
import Objets.ObjetAbstrait;
|
import Objets.ObjetAbstrait;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
|
|
||||||
public class Personnage extends PersonnagesAbstraits {
|
public class Personnage extends PersonnagesAbstraits {
|
||||||
|
|
||||||
@ -22,32 +23,37 @@ public class Personnage extends PersonnagesAbstraits {
|
|||||||
protected double pointsDeVie;
|
protected double pointsDeVie;
|
||||||
protected double force;
|
protected double force;
|
||||||
protected double vitesse;
|
protected double vitesse;
|
||||||
protected double porter;
|
protected double portee;
|
||||||
protected EAction action;
|
protected EAction action;
|
||||||
|
protected ComportementAction Action;
|
||||||
private EtatPersonnageAbstrait etatCourant;
|
private EtatPersonnageAbstrait etatCourant;
|
||||||
private HashMap<PointsCardinaux, CaseAbstraite> voisins;
|
private HashMap<PointsCardinaux, CaseAbstraite> voisins;
|
||||||
|
|
||||||
|
|
||||||
protected Personnage(String name, ComportementAction c) {
|
protected Personnage(String name, ComportementAction c) {
|
||||||
this.nom = name;
|
this.nom = name;
|
||||||
this.pointsDeVie = 100;
|
this.pointsDeVie = 100;
|
||||||
this.force = 10;
|
this.force = 10;
|
||||||
this.vitesse = 1;
|
this.vitesse = 1;
|
||||||
this.porter = 2;
|
this.portee = 2;
|
||||||
|
|
||||||
this.caseCourante = null;
|
this.caseCourante = null;
|
||||||
this.etatCourant = new EtatPersonnageOK(this);
|
this.etatCourant = new EtatPersonnageOK(this);
|
||||||
this.action = EAction.Null;
|
this.ChangerAction(EAction.SeDeplacer);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Personnage(String name, double lifePoint, double strength, double speed, ComportementAction a) {
|
protected Personnage(String name, double lifePoint, double strength, double speed, int portee, ComportementAction a) {
|
||||||
this.nom = name;
|
this.nom = name;
|
||||||
this.pointsDeVie=lifePoint;
|
this.pointsDeVie=lifePoint;
|
||||||
this.force=strength;
|
this.force=strength;
|
||||||
this.vitesse=speed;
|
this.vitesse=speed;
|
||||||
|
this.portee = portee;
|
||||||
|
|
||||||
this.caseCourante=null;
|
this.caseCourante=null;
|
||||||
this.etatCourant= new EtatPersonnageOK(this);
|
this.etatCourant= new EtatPersonnageOK(this);
|
||||||
this.action = EAction.Null;
|
this.ChangerAction(EAction.SeDeplacer);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -127,12 +133,12 @@ public class Personnage extends PersonnagesAbstraits {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getPorter() {
|
public double getPortee() {
|
||||||
return porter;
|
return portee;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPorter(double porter) {
|
public void setPortee(double portee) {
|
||||||
this.porter = porter;
|
this.portee = portee;
|
||||||
}
|
}
|
||||||
|
|
||||||
public EAction getAction() {
|
public EAction getAction() {
|
||||||
@ -144,188 +150,97 @@ public class Personnage extends PersonnagesAbstraits {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void AnalyseSituation() {
|
public void AnalyseSituation() {
|
||||||
etatCourant.AnalyseJoueur();
|
ArrayList<ObjetAbstrait> objets = rechercheObjetProche();
|
||||||
|
ArrayList<Personnage> personnages = rechercheJoueur();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Execution() {
|
public void Execution() {
|
||||||
etatCourant.ExecutionJoueur();
|
Action.executerAction(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ResoudreLesConflits(){
|
public void ResoudreLesConflits(){
|
||||||
etatCourant.ConflitJoueur();
|
|
||||||
}
|
|
||||||
|
|
||||||
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;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public HashMap<PointsCardinaux, CaseAbstraite> voisinsPortee(CaseAbstraite c, int rayon) {
|
||||||
|
HashMap<PointsCardinaux, CaseAbstraite> voisinsActuels = new HashMap<PointsCardinaux, CaseAbstraite>();
|
||||||
|
HashMap<PointsCardinaux, CaseAbstraite> v = c.getVoisins();
|
||||||
|
if ((rayon + 1) == this.getPortee()) {
|
||||||
|
// voisinsActuels.putAll(v);
|
||||||
|
return c.getVoisins();
|
||||||
|
} else {
|
||||||
|
int r = rayon + 1;
|
||||||
|
for (PointsCardinaux mapKey : v.keySet()) {
|
||||||
|
voisinsActuels.putAll(voisinsPortee(v.get(mapKey), r));
|
||||||
|
}
|
||||||
|
return voisinsActuels;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return objetDeLaCase;
|
|
||||||
|
public ArrayList<ObjetAbstrait> rechercheObjetProche() {
|
||||||
|
|
||||||
|
ArrayList<ObjetAbstrait> objetsVoisins = new ArrayList<ObjetAbstrait>();
|
||||||
|
|
||||||
|
HashSet<CaseAbstraite> voisinsDesVoisins = getCaseAbstraitesForPortee();
|
||||||
|
|
||||||
|
for (CaseAbstraite c : voisinsDesVoisins) {
|
||||||
|
if (c.getObjetOccupant() != null) {
|
||||||
|
objetsVoisins.add(c.getObjetOccupant());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return objetsVoisins;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected HashSet<CaseAbstraite> getCaseAbstraitesForPortee() {
|
||||||
|
HashSet<CaseAbstraite> voisinsDesVoisins = new HashSet<CaseAbstraite>();
|
||||||
|
voisinsDesVoisins.addAll(voisinsPortee(this.caseCourante, 0).values());
|
||||||
|
return voisinsDesVoisins;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public Personnage rechercheJoueur() {
|
public ArrayList<Personnage> rechercheJoueur() {
|
||||||
Personnage personne = null;
|
ArrayList<Personnage> personnes = new ArrayList<Personnage>();
|
||||||
|
|
||||||
for (PointsCardinaux mapKey : voisins.keySet()) {
|
HashSet<CaseAbstraite> voisinsDesVoisins = getCaseAbstraitesForPortee();
|
||||||
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;
|
|
||||||
|
|
||||||
|
for (CaseAbstraite c : voisinsDesVoisins) {
|
||||||
|
if (c.getOccupant() != null) {
|
||||||
|
personnes.add(c.getOccupant());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return personne;
|
return personnes;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void mediationConflits() {
|
public void mediationConflits() {
|
||||||
etatCourant.mediationConflits();
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ChangerAction(EAction nouvelAction) {
|
||||||
|
|
||||||
|
switch (nouvelAction) {
|
||||||
|
case ChangerCouleurCase:
|
||||||
|
Action = new ComportementActionChangerCouleurCase();
|
||||||
|
break;
|
||||||
|
case RamasserNeige:
|
||||||
|
Action = new ComportementActionRamasserNeige();
|
||||||
|
break;
|
||||||
|
case SeDeplacer:
|
||||||
|
Action = new ComportementActionSeDeplacer();
|
||||||
|
break;
|
||||||
|
case TirerBalon:
|
||||||
|
Action = new ComportementActionTirerBalon();
|
||||||
|
break;
|
||||||
|
case TirerBouleDeNeige:
|
||||||
|
Action = new ComportementActionTirerBouleDeNeige();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
this.setAction(nouvelAction);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,8 +4,8 @@ import Comportements.ComportementAction;
|
|||||||
|
|
||||||
public class PersonnageBattleGoal extends Personnage {
|
public class PersonnageBattleGoal extends Personnage {
|
||||||
|
|
||||||
protected PersonnageBattleGoal(String name, double lifePoint, double strength, double speed, ComportementAction parDefaut) {
|
protected PersonnageBattleGoal(String name, double lifePoint, double strength, double speed, int portee, ComportementAction parDefaut) {
|
||||||
super(name, lifePoint, strength, speed, parDefaut);
|
super(name, lifePoint, strength, speed, portee, parDefaut);
|
||||||
// TODO Auto-generated constructor stub
|
// TODO Auto-generated constructor stub
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,8 +4,8 @@ import Comportements.ComportementAction;
|
|||||||
|
|
||||||
public class PersonnageBattleSnow extends Personnage{
|
public class PersonnageBattleSnow extends Personnage{
|
||||||
|
|
||||||
protected PersonnageBattleSnow(String name, double lifePoint, double strength, double speed, ComportementAction parDefaut) {
|
protected PersonnageBattleSnow(String name, double lifePoint, double strength, double speed, int portee, ComportementAction parDefaut) {
|
||||||
super(name, lifePoint, strength, speed, parDefaut);
|
super(name, lifePoint, strength, speed, portee, parDefaut);
|
||||||
// TODO Auto-generated constructor stub
|
// TODO Auto-generated constructor stub
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,8 +8,8 @@ import java.util.Random;
|
|||||||
public class PersonnageBattleZone extends Personnage {
|
public class PersonnageBattleZone extends Personnage {
|
||||||
Color couleur;
|
Color couleur;
|
||||||
|
|
||||||
public PersonnageBattleZone(String name, double lifePoint, double strength, double speed, ComportementAction parDefaut) {
|
public PersonnageBattleZone(String name, double lifePoint, double strength, double speed, int portee, ComportementAction parDefaut) {
|
||||||
super(name, lifePoint, strength, speed, parDefaut);
|
super(name, lifePoint, strength, speed, portee, parDefaut);
|
||||||
// TODO Auto-generated constructor stub
|
// TODO Auto-generated constructor stub
|
||||||
|
|
||||||
|
|
||||||
|
@ -48,14 +48,13 @@ public class SimulationJeu {
|
|||||||
|
|
||||||
boolean continuer = true;
|
boolean continuer = true;
|
||||||
while (continuer) {
|
while (continuer) {
|
||||||
|
afficheTous();
|
||||||
for (Personnage p : personnages) {
|
for (Personnage p : personnages) {
|
||||||
p.AnalyseSituation();
|
p.AnalyseSituation();
|
||||||
p.Execution();
|
p.Execution();
|
||||||
mediationDesConflits(); // utiliser le pattern avec l'historique pour les actions. On pourra faire un retour arrière si conflit + réexecturer
|
mediationDesConflits(); // utiliser le pattern avec l'historique pour les actions. On pourra faire un retour arrière si conflit + réexecturer
|
||||||
recupererInformations();
|
recupererInformations();
|
||||||
}
|
}
|
||||||
afficheTous();
|
|
||||||
|
|
||||||
// bloquer le tour jusqu'a toucher une touche du clavier.
|
// bloquer le tour jusqu'a toucher une touche du clavier.
|
||||||
Scanner s = new Scanner(System.in);
|
Scanner s = new Scanner(System.in);
|
||||||
|
Loading…
Reference in New Issue
Block a user