Analyse de la situation et déplacement.
This commit is contained in:
parent
6e4e647866
commit
8e08b9c8df
@ -4,8 +4,7 @@
|
|||||||
<entry_points version="2.0" />
|
<entry_points version="2.0" />
|
||||||
</component>
|
</component>
|
||||||
<component name="IdProvider" IDEtalkID="5EBAA9F33699B0593DE250C306D65C2A" />
|
<component name="IdProvider" IDEtalkID="5EBAA9F33699B0593DE250C306D65C2A" />
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="1.7" project-jdk-type="JavaSDK">
|
||||||
<output url="file://$PROJECT_DIR$/out" />
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
|
@ -87,4 +87,12 @@ public abstract class CaseAbstraite {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public abstract String affichageSpecial();
|
public abstract String affichageSpecial();
|
||||||
|
|
||||||
|
public Coordonnees getCoord() {
|
||||||
|
return coord;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCoord(Coordonnees coord) {
|
||||||
|
this.coord = coord;
|
||||||
|
}
|
||||||
}
|
}
|
@ -24,4 +24,9 @@ public class Coordonnees {
|
|||||||
public void setCol(int col) {
|
public void setCol(int col) {
|
||||||
this.col = col;
|
this.col = col;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "col " + getCol() + " ligne " + getLigne();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,12 @@
|
|||||||
package Comportements;
|
package Comportements;
|
||||||
|
|
||||||
|
import Cases.CaseAbstraite;
|
||||||
|
import Objets.ObjetAbstrait;
|
||||||
import Person.Personnage;
|
import Person.Personnage;
|
||||||
|
import utils.Tuple;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public interface ComportementAction {
|
public interface ComportementAction {
|
||||||
public void executerAction(Personnage joueur);
|
public void executerAction(Personnage joueur, Tuple<ArrayList<ObjetAbstrait>, ArrayList<Personnage>, ArrayList<CaseAbstraite>> t);
|
||||||
}
|
}
|
||||||
|
@ -1,15 +1,31 @@
|
|||||||
package Comportements;
|
package Comportements;
|
||||||
|
|
||||||
|
import Cases.CaseAbstraite;
|
||||||
import Cases.CaseColore;
|
import Cases.CaseColore;
|
||||||
|
import Objets.ObjetAbstrait;
|
||||||
import Person.Personnage;
|
import Person.Personnage;
|
||||||
import Person.PersonnageBattleZone;
|
import Person.PersonnageBattleZone;
|
||||||
|
import utils.Tuple;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
public class ComportementActionChangerCouleurCase implements ComportementAction {
|
public class ComportementActionChangerCouleurCase implements ComportementAction {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void executerAction(Personnage p) {
|
public void executerAction(Personnage p, Tuple<ArrayList<ObjetAbstrait>, ArrayList<Personnage>, ArrayList<CaseAbstraite>> t) {
|
||||||
|
ArrayList<CaseAbstraite> cases = t.c;
|
||||||
|
int size = cases.size();
|
||||||
|
int item = new Random().nextInt(size);
|
||||||
CaseColore caseColore = (CaseColore) p.getCaseCourante();
|
CaseColore caseColore = (CaseColore) p.getCaseCourante();
|
||||||
PersonnageBattleZone personnage = (PersonnageBattleZone) p;
|
PersonnageBattleZone personnage = (PersonnageBattleZone) p;
|
||||||
caseColore.setCouleur(personnage.getCouleur());
|
caseColore.setOccupant(null);
|
||||||
|
|
||||||
|
CaseColore dest = (CaseColore) cases.get(item);
|
||||||
|
dest.setOccupant(p);
|
||||||
|
p.setCaseCourante(dest);
|
||||||
|
|
||||||
|
dest.setCouleur(personnage.getCouleur());
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,16 @@
|
|||||||
package Comportements;
|
package Comportements;
|
||||||
|
|
||||||
|
import Cases.CaseAbstraite;
|
||||||
|
import Objets.ObjetAbstrait;
|
||||||
import Person.Personnage;
|
import Person.Personnage;
|
||||||
|
import utils.Tuple;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public class ComportementActionRamasserNeige implements ComportementAction {
|
public class ComportementActionRamasserNeige implements ComportementAction {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void executerAction(Personnage joueur) {
|
public void executerAction(Personnage joueur, Tuple<ArrayList<ObjetAbstrait>, ArrayList<Personnage>, ArrayList<CaseAbstraite>> t) {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,27 +1,30 @@
|
|||||||
package Comportements;
|
package Comportements;
|
||||||
|
|
||||||
import Cases.CaseAbstraite;
|
import Cases.CaseAbstraite;
|
||||||
import Cases.PointsCardinaux;
|
import Objets.ObjetAbstrait;
|
||||||
import Cases.RandomPointCardinal;
|
|
||||||
import Person.Personnage;
|
import Person.Personnage;
|
||||||
|
import utils.Tuple;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
public class ComportementActionSeDeplacer implements ComportementAction {
|
public class ComportementActionSeDeplacer implements ComportementAction {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void executerAction(Personnage perso) {
|
public void executerAction(Personnage perso, Tuple<ArrayList<ObjetAbstrait>, ArrayList<Personnage>, ArrayList<CaseAbstraite>> t) {
|
||||||
|
ArrayList<CaseAbstraite> cases = t.c;
|
||||||
|
int size = cases.size();
|
||||||
|
int item = new Random().nextInt(size);
|
||||||
|
System.out.println("Je suis en " + perso.getCaseCourante().getCoord().toString());
|
||||||
|
|
||||||
CaseAbstraite c = perso.getCaseCourante();
|
CaseAbstraite c = perso.getCaseCourante();
|
||||||
HashMap<PointsCardinaux, CaseAbstraite> voisins = c.getVoisins();
|
|
||||||
RandomPointCardinal<PointsCardinaux> p = new RandomPointCardinal<PointsCardinaux>(PointsCardinaux.class);
|
CaseAbstraite destination = cases.get(item);
|
||||||
PointsCardinaux point = null;
|
|
||||||
do {
|
|
||||||
point = p.random();
|
|
||||||
} while (voisins.get(point) == null);
|
|
||||||
CaseAbstraite destination = voisins.get(point);
|
|
||||||
destination.setOccupant(perso);
|
destination.setOccupant(perso);
|
||||||
perso.setCaseCourante(destination);
|
perso.setCaseCourante(destination);
|
||||||
c.setOccupant(null);
|
c.setOccupant(null);
|
||||||
|
System.out.println("Je suis en " + perso.getCaseCourante().getCoord().toString());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,16 @@
|
|||||||
package Comportements;
|
package Comportements;
|
||||||
|
|
||||||
|
import Cases.CaseAbstraite;
|
||||||
|
import Objets.ObjetAbstrait;
|
||||||
import Person.Personnage;
|
import Person.Personnage;
|
||||||
|
import utils.Tuple;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public class ComportementActionTirerBalon implements ComportementAction {
|
public class ComportementActionTirerBalon implements ComportementAction {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void executerAction(Personnage joueur) {
|
public void executerAction(Personnage joueur, Tuple<ArrayList<ObjetAbstrait>, ArrayList<Personnage>, ArrayList<CaseAbstraite>> t) {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,16 @@
|
|||||||
package Comportements;
|
package Comportements;
|
||||||
|
|
||||||
|
import Cases.CaseAbstraite;
|
||||||
|
import Objets.ObjetAbstrait;
|
||||||
import Person.Personnage;
|
import Person.Personnage;
|
||||||
|
import utils.Tuple;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public class ComportementActionTirerBouleDeNeige implements ComportementAction {
|
public class ComportementActionTirerBouleDeNeige implements ComportementAction {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void executerAction(Personnage joueur) {
|
public void executerAction(Personnage joueur, Tuple<ArrayList<ObjetAbstrait>, ArrayList<Personnage>, ArrayList<CaseAbstraite>> t) {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
package Comportements;
|
package Comportements;
|
||||||
|
|
||||||
public enum EAction {
|
public enum EAction {
|
||||||
ChangerCouleurCase,RamasserNeige,SeDeplacer,TirerBalon,TirerBouleDeNeige,Null
|
ChangerCouleurCase, RamasserNeige, SeDeplacer, TirerBalon, TirerBouleDeNeige
|
||||||
}
|
}
|
||||||
|
@ -4,11 +4,8 @@ import Person.Personnage;
|
|||||||
|
|
||||||
public class EtatPersonnageOK extends EtatPersonnageAbstrait {
|
public class EtatPersonnageOK extends EtatPersonnageAbstrait {
|
||||||
|
|
||||||
private int nbTourKO;
|
|
||||||
|
|
||||||
public EtatPersonnageOK(Personnage perso) {
|
public EtatPersonnageOK(Personnage perso) {
|
||||||
super(perso);
|
super(perso);
|
||||||
this.nbTourKO = 3;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,11 +1,9 @@
|
|||||||
package Objets;
|
package Objets;
|
||||||
|
|
||||||
import Cases.CaseAbstraite;
|
import Cases.CaseAbstraite;
|
||||||
import Person.Personnage;
|
|
||||||
|
|
||||||
public abstract class ObjetAbstrait {
|
public abstract class ObjetAbstrait {
|
||||||
protected CaseAbstraite caseCourante;
|
protected CaseAbstraite caseCourante;
|
||||||
protected Personnage perso;
|
|
||||||
protected String nom;
|
protected String nom;
|
||||||
protected double pointsDeVie;
|
protected double pointsDeVie;
|
||||||
protected double force;
|
protected double force;
|
||||||
@ -16,8 +14,6 @@ public abstract class ObjetAbstrait {
|
|||||||
this.pointsDeVie = 100;
|
this.pointsDeVie = 100;
|
||||||
this.force = 10;
|
this.force = 10;
|
||||||
this.vitesse = 1;
|
this.vitesse = 1;
|
||||||
|
|
||||||
this.perso = null;
|
|
||||||
this.caseCourante = null;
|
this.caseCourante = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -26,9 +22,7 @@ public abstract class ObjetAbstrait {
|
|||||||
this.pointsDeVie=lifePoint;
|
this.pointsDeVie=lifePoint;
|
||||||
this.force=strength;
|
this.force=strength;
|
||||||
this.vitesse=speed;
|
this.vitesse=speed;
|
||||||
|
|
||||||
this.caseCourante=null;
|
this.caseCourante=null;
|
||||||
this.perso = null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public CaseAbstraite getCaseCourante() {
|
public CaseAbstraite getCaseCourante() {
|
||||||
@ -70,12 +64,4 @@ public abstract class ObjetAbstrait {
|
|||||||
public void setVitesse(double vitesse) {
|
public void setVitesse(double vitesse) {
|
||||||
this.vitesse = vitesse;
|
this.vitesse = vitesse;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Personnage getPerso() {
|
|
||||||
return perso;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPerso(Personnage perso) {
|
|
||||||
this.perso = perso;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,12 @@ public class ObjetAvecBonusForce extends ObjetAbstrait {
|
|||||||
super(name, lifePoint, strength, speed);
|
super(name, lifePoint, strength, speed);
|
||||||
// TODO Auto-generated constructor stub
|
// TODO Auto-generated constructor stub
|
||||||
}
|
}
|
||||||
public double getPointsDeVie() {return perso.getPointsDeVie() + 20;}
|
|
||||||
public double getForce() {return perso.getForce() + 0.5;}
|
public double getPointsDeVie() {
|
||||||
|
return 20;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getForce() {
|
||||||
|
return 0.5;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,5 +8,7 @@ public class ObjetAvecBonusPV extends ObjetAbstrait {
|
|||||||
// TODO Auto-generated constructor stub
|
// TODO Auto-generated constructor stub
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getPointsDeVie() {return perso.getPointsDeVie() + 80;}
|
public double getPointsDeVie() {
|
||||||
|
return 80;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,5 +8,7 @@ public class ObjetAvecBonusVitesse extends ObjetAbstrait {
|
|||||||
// TODO Auto-generated constructor stub
|
// TODO Auto-generated constructor stub
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getPointsDeVie() {return perso.getVitesse() + 2;}
|
public double getPointsDeVie() {
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,7 @@ import Etats.EtatPersonnageAbstrait;
|
|||||||
import Etats.EtatPersonnageKO;
|
import Etats.EtatPersonnageKO;
|
||||||
import Etats.EtatPersonnageOK;
|
import Etats.EtatPersonnageOK;
|
||||||
import Objets.ObjetAbstrait;
|
import Objets.ObjetAbstrait;
|
||||||
|
import utils.Tuple;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@ -18,6 +19,7 @@ public class Personnage extends PersonnagesAbstraits {
|
|||||||
|
|
||||||
|
|
||||||
protected CaseAbstraite caseCourante;
|
protected CaseAbstraite caseCourante;
|
||||||
|
protected ObjetAbstrait objet;
|
||||||
protected String nom;
|
protected String nom;
|
||||||
protected String groupe;
|
protected String groupe;
|
||||||
protected double pointsDeVie;
|
protected double pointsDeVie;
|
||||||
@ -73,95 +75,20 @@ public class Personnage extends PersonnagesAbstraits {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Tuple<ArrayList<ObjetAbstrait>, ArrayList<Personnage>, ArrayList<CaseAbstraite>> AnalyseSituation() {
|
||||||
|
HashSet<CaseAbstraite> voisinsDesVoisins = getCaseAbstraitesForPortee();
|
||||||
|
ArrayList<CaseAbstraite> casesVoisines = new ArrayList<CaseAbstraite>(voisinsDesVoisins);
|
||||||
|
ArrayList<ObjetAbstrait> objets = rechercheObjetProche(voisinsDesVoisins);
|
||||||
|
ArrayList<Personnage> personnages = rechercheJoueur(voisinsDesVoisins);
|
||||||
|
|
||||||
public EtatPersonnageAbstrait getEtatCourant() {
|
casesVoisines.remove(this.caseCourante);
|
||||||
return etatCourant;
|
return new Tuple<ArrayList<ObjetAbstrait>, ArrayList<Personnage>, ArrayList<CaseAbstraite>>(objets, personnages, casesVoisines);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setEtatCourant(EtatPersonnageAbstrait etatCourant) {
|
public void Execution(Tuple<ArrayList<ObjetAbstrait>, ArrayList<Personnage>, ArrayList<CaseAbstraite>> t) {
|
||||||
this.etatCourant = etatCourant;
|
Action.executerAction(this, t);
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getPointsDeVie() {
|
|
||||||
return pointsDeVie;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPointsDeVie(double pointsDeVie) {
|
|
||||||
this.pointsDeVie = pointsDeVie;
|
|
||||||
}
|
|
||||||
|
|
||||||
public double getForce() {
|
|
||||||
return force;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setForce(double force) {
|
|
||||||
this.force = force;
|
|
||||||
}
|
|
||||||
|
|
||||||
public double getVitesse() {
|
|
||||||
return vitesse;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setVitesse(double vitesse) {
|
|
||||||
this.vitesse = vitesse;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getGroupe() {
|
|
||||||
return groupe;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void setGroupe(String equipe) {
|
|
||||||
groupe = equipe;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getNom() {
|
|
||||||
return nom;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setNom(String nom) {
|
|
||||||
this.nom = nom;
|
|
||||||
}
|
|
||||||
|
|
||||||
public CaseAbstraite getCaseCourante() {
|
|
||||||
return caseCourante;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCaseCourante(CaseAbstraite caseCourante) {
|
|
||||||
this.caseCourante = caseCourante;
|
|
||||||
this.voisins = this.caseCourante.getVoisins();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public double getPortee() {
|
|
||||||
return portee;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPortee(double portee) {
|
|
||||||
this.portee = portee;
|
|
||||||
}
|
|
||||||
|
|
||||||
public EAction getAction() {
|
|
||||||
return action;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAction(EAction action) {
|
|
||||||
this.action = action;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void AnalyseSituation() {
|
|
||||||
ArrayList<ObjetAbstrait> objets = rechercheObjetProche();
|
|
||||||
ArrayList<Personnage> personnages = rechercheJoueur();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Execution() {
|
|
||||||
Action.executerAction(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ResoudreLesConflits(){
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public HashMap<PointsCardinaux, CaseAbstraite> voisinsPortee(CaseAbstraite c, int rayon) {
|
public HashMap<PointsCardinaux, CaseAbstraite> voisinsPortee(CaseAbstraite c, int rayon) {
|
||||||
HashMap<PointsCardinaux, CaseAbstraite> voisinsActuels = new HashMap<PointsCardinaux, CaseAbstraite>();
|
HashMap<PointsCardinaux, CaseAbstraite> voisinsActuels = new HashMap<PointsCardinaux, CaseAbstraite>();
|
||||||
@ -178,12 +105,9 @@ public class Personnage extends PersonnagesAbstraits {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArrayList<ObjetAbstrait> rechercheObjetProche() {
|
public ArrayList<ObjetAbstrait> rechercheObjetProche(HashSet<CaseAbstraite> voisinsDesVoisins) {
|
||||||
|
|
||||||
ArrayList<ObjetAbstrait> objetsVoisins = new ArrayList<ObjetAbstrait>();
|
ArrayList<ObjetAbstrait> objetsVoisins = new ArrayList<ObjetAbstrait>();
|
||||||
|
|
||||||
HashSet<CaseAbstraite> voisinsDesVoisins = getCaseAbstraitesForPortee();
|
|
||||||
|
|
||||||
for (CaseAbstraite c : voisinsDesVoisins) {
|
for (CaseAbstraite c : voisinsDesVoisins) {
|
||||||
if (c.getObjetOccupant() != null) {
|
if (c.getObjetOccupant() != null) {
|
||||||
objetsVoisins.add(c.getObjetOccupant());
|
objetsVoisins.add(c.getObjetOccupant());
|
||||||
@ -199,11 +123,8 @@ public class Personnage extends PersonnagesAbstraits {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public ArrayList<Personnage> rechercheJoueur() {
|
public ArrayList<Personnage> rechercheJoueur(HashSet<CaseAbstraite> voisinsDesVoisins) {
|
||||||
ArrayList<Personnage> personnes = new ArrayList<Personnage>();
|
ArrayList<Personnage> personnes = new ArrayList<Personnage>();
|
||||||
|
|
||||||
HashSet<CaseAbstraite> voisinsDesVoisins = getCaseAbstraitesForPortee();
|
|
||||||
|
|
||||||
for (CaseAbstraite c : voisinsDesVoisins) {
|
for (CaseAbstraite c : voisinsDesVoisins) {
|
||||||
if (c.getOccupant() != null) {
|
if (c.getOccupant() != null) {
|
||||||
personnes.add(c.getOccupant());
|
personnes.add(c.getOccupant());
|
||||||
@ -243,4 +164,79 @@ public class Personnage extends PersonnagesAbstraits {
|
|||||||
|
|
||||||
this.setAction(nouvelAction);
|
this.setAction(nouvelAction);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ObjetAbstrait getObjet() {
|
||||||
|
return objet;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setObjet(ObjetAbstrait objet) {
|
||||||
|
this.objet = objet;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getPointsDeVie() {
|
||||||
|
double bonus = 0;
|
||||||
|
if (getObjet() != null) {
|
||||||
|
bonus = getObjet().getPointsDeVie();
|
||||||
|
}
|
||||||
|
return bonus + pointsDeVie;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getForce() {
|
||||||
|
double bonus = 0;
|
||||||
|
if (getObjet() != null) {
|
||||||
|
bonus = getObjet().getForce();
|
||||||
|
}
|
||||||
|
return bonus + force;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getVitesse() {
|
||||||
|
double bonus = 0;
|
||||||
|
if (getObjet() != null) {
|
||||||
|
bonus = getObjet().getVitesse();
|
||||||
|
}
|
||||||
|
return bonus + vitesse;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getGroupe() {
|
||||||
|
return groupe;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void setGroupe(String equipe) {
|
||||||
|
groupe = equipe;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNom() {
|
||||||
|
return nom;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CaseAbstraite getCaseCourante() {
|
||||||
|
return caseCourante;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaseCourante(CaseAbstraite caseCourante) {
|
||||||
|
this.caseCourante = caseCourante;
|
||||||
|
this.voisins = this.caseCourante.getVoisins();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getPortee() {
|
||||||
|
return portee;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EAction getAction() {
|
||||||
|
return action;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAction(EAction action) {
|
||||||
|
this.action = action;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HashMap<PointsCardinaux, CaseAbstraite> getVoisins() {
|
||||||
|
return voisins;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVoisins(HashMap<PointsCardinaux, CaseAbstraite> voisins) {
|
||||||
|
this.voisins = voisins;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
package Person;
|
|
||||||
|
|
||||||
import Objets.ObjetAvecBonusVitesse;
|
|
||||||
|
|
||||||
public class PersonnageBattleZoneAvecUnHoverboard extends ObjetAvecBonusVitesse {
|
|
||||||
|
|
||||||
protected PersonnageBattleZoneAvecUnHoverboard(String name,
|
|
||||||
double lifePoint, double strength, double speed, PersonnageBattleZone PBZ) {
|
|
||||||
super(name, lifePoint, strength, speed);
|
|
||||||
// TODO Auto-generated constructor stub
|
|
||||||
|
|
||||||
this.perso=PBZ;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
package Person;
|
|
||||||
|
|
||||||
import Objets.ObjetAvecBonusForce;
|
|
||||||
|
|
||||||
public class PersonnageBattleZoneAvecUnMarteau extends ObjetAvecBonusForce {
|
|
||||||
|
|
||||||
protected PersonnageBattleZoneAvecUnMarteau(String name, double lifePoint,
|
|
||||||
double strength, double speed, PersonnageBattleZone PBZ) {
|
|
||||||
super(name, lifePoint, strength, speed);
|
|
||||||
// TODO Auto-generated constructor stub
|
|
||||||
|
|
||||||
this.perso=PBZ;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
package Person;
|
|
||||||
|
|
||||||
import Objets.ObjetAvecBonusPV;
|
|
||||||
|
|
||||||
public class PersonnageBattleZoneAvecUneArmure extends ObjetAvecBonusPV {
|
|
||||||
|
|
||||||
protected PersonnageBattleZoneAvecUneArmure(String name, double lifePoint,
|
|
||||||
double strength, double speed, PersonnageBattleZone PBZ) {
|
|
||||||
super(name, lifePoint, strength, speed);
|
|
||||||
// TODO Auto-generated constructor stub
|
|
||||||
|
|
||||||
this.perso=PBZ;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,8 +1,10 @@
|
|||||||
import Cases.CaseAbstraite;
|
import Cases.CaseAbstraite;
|
||||||
import Fabriques.Scenario.FabriqueScenarioAbstraite;
|
import Fabriques.Scenario.FabriqueScenarioAbstraite;
|
||||||
|
import Objets.ObjetAbstrait;
|
||||||
import Observateur.Organisation;
|
import Observateur.Organisation;
|
||||||
import Person.Personnage;
|
import Person.Personnage;
|
||||||
import utils.InterfaceConsole;
|
import utils.InterfaceConsole;
|
||||||
|
import utils.Tuple;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
@ -33,29 +35,24 @@ public class SimulationJeu {
|
|||||||
intefaceC.afficherPlateau();
|
intefaceC.afficherPlateau();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void mediationDesConflits() {
|
|
||||||
for (Personnage p : personnages) {
|
|
||||||
p.mediationConflits();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void recupererInformations() {
|
public void recupererInformations() {
|
||||||
// TODO récup infos + statistics + maj infos observateur ?
|
for (Personnage p : personnages) {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void lancerJeu() {
|
public void lancerJeu() {
|
||||||
placement();
|
placement();
|
||||||
|
|
||||||
boolean continuer = true;
|
boolean continuer = true;
|
||||||
while (continuer) {
|
|
||||||
afficheTous();
|
afficheTous();
|
||||||
|
while (continuer) {
|
||||||
for (Personnage p : personnages) {
|
for (Personnage p : personnages) {
|
||||||
p.AnalyseSituation();
|
Tuple<ArrayList<ObjetAbstrait>, ArrayList<Personnage>, ArrayList<CaseAbstraite>> t = p.AnalyseSituation();
|
||||||
p.Execution();
|
p.Execution(t);
|
||||||
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);
|
||||||
s.nextLine();
|
s.nextLine();
|
||||||
|
@ -10,12 +10,12 @@ public class InterfaceConsole {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void afficherPlateau() {
|
public void afficherPlateau() {
|
||||||
for (int i = 0; i < plateau.length; i++) {
|
for (CaseAbstraite[] aPlateau : plateau) {
|
||||||
for (int j = 0; j < plateau[i].length; j++) {
|
for (CaseAbstraite anAPlateau : aPlateau) {
|
||||||
if (plateau[i][j].getOccupant() != null) {
|
if (anAPlateau.getOccupant() != null) {
|
||||||
System.out.print(plateau[i][j].getOccupant().getNom().charAt(0) + " | ");
|
System.out.print(anAPlateau.getOccupant().getNom().charAt(0) + " | ");
|
||||||
} else {
|
} else {
|
||||||
System.out.print(" " + plateau[i][j].affichageSpecial() + " | ");
|
System.out.print(" " + anAPlateau.affichageSpecial() + " | ");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
System.out.println();
|
System.out.println();
|
||||||
|
13
src/utils/Tuple.java
Normal file
13
src/utils/Tuple.java
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
package utils;
|
||||||
|
|
||||||
|
public class Tuple<P, O, C> {
|
||||||
|
public final P p;
|
||||||
|
public final O o;
|
||||||
|
public final C c;
|
||||||
|
|
||||||
|
public Tuple(P p, O o, C c) {
|
||||||
|
this.p = p;
|
||||||
|
this.o = o;
|
||||||
|
this.c = c;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user