Little cleaning with actions change.
This commit is contained in:
parent
c6ed835eda
commit
4287ddf6d8
@ -14,18 +14,32 @@ public class ComportementActionChangerCouleurCase implements ComportementAction
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void executerAction(Personnage p, Tuple<ArrayList<Personnage>, ArrayList<ObjetAbstrait>, ArrayList<CaseAbstraite>> t) {
|
public void executerAction(Personnage p, Tuple<ArrayList<Personnage>, ArrayList<ObjetAbstrait>, ArrayList<CaseAbstraite>> t) {
|
||||||
ArrayList<CaseAbstraite> cases = t.c;
|
ArrayList<CaseColore> cases = (ArrayList<CaseColore>) t.c.clone();
|
||||||
|
ArrayList<Personnage> persos = (ArrayList<Personnage>) t.p.clone();
|
||||||
|
|
||||||
|
for (Personnage personnage : persos) {
|
||||||
|
cases.remove(personnage.getCaseCourante());
|
||||||
|
}
|
||||||
|
|
||||||
|
PersonnageBattleZone pb = (PersonnageBattleZone) p;
|
||||||
|
ArrayList<CaseColore> remove = new ArrayList<CaseColore>();
|
||||||
|
for (CaseColore ca : cases) {
|
||||||
|
if (ca.getCouleur().equals(pb.getCouleur())) {
|
||||||
|
remove.add(ca);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cases.removeAll(remove);
|
||||||
|
|
||||||
int size = cases.size();
|
int size = cases.size();
|
||||||
int item = new Random().nextInt(size);
|
int item = new Random().nextInt(size);
|
||||||
CaseColore caseColore = (CaseColore) p.getCaseCourante();
|
CaseColore caseColore = (CaseColore) p.getCaseCourante();
|
||||||
PersonnageBattleZone personnage = (PersonnageBattleZone) p;
|
|
||||||
caseColore.setOccupant(null);
|
caseColore.setOccupant(null);
|
||||||
|
|
||||||
CaseColore dest = (CaseColore) cases.get(item);
|
CaseColore dest = (CaseColore) cases.get(item);
|
||||||
dest.setOccupant(p);
|
dest.setOccupant(p);
|
||||||
p.setCaseCourante(dest);
|
p.setCaseCourante(dest);
|
||||||
|
|
||||||
dest.setCouleur(personnage.getCouleur());
|
dest.setCouleur(pb.getCouleur());
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,16 +0,0 @@
|
|||||||
package Comportements;
|
|
||||||
|
|
||||||
import Cases.CaseAbstraite;
|
|
||||||
import Objets.ObjetAbstrait;
|
|
||||||
import Person.Personnage;
|
|
||||||
import utils.Tuple;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
|
|
||||||
public class ComportementActionRamasserNeige implements ComportementAction {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void executerAction(Personnage joueur, Tuple<ArrayList<Personnage>, ArrayList<ObjetAbstrait>, ArrayList<CaseAbstraite>> t) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@ -12,18 +12,25 @@ public class ComportementActionSeDeplacer implements ComportementAction {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void executerAction(Personnage perso, Tuple<ArrayList<Personnage>, ArrayList<ObjetAbstrait>, ArrayList<CaseAbstraite>> t) {
|
public void executerAction(Personnage perso, Tuple<ArrayList<Personnage>, ArrayList<ObjetAbstrait>, ArrayList<CaseAbstraite>> t) {
|
||||||
ArrayList<CaseAbstraite> cases = t.c;
|
ArrayList<CaseAbstraite> cases = (ArrayList<CaseAbstraite>) t.c.clone();
|
||||||
ArrayList<ObjetAbstrait> objs = t.o;
|
ArrayList<ObjetAbstrait> objs = (ArrayList<ObjetAbstrait>) t.o.clone();
|
||||||
|
|
||||||
CaseAbstraite c = perso.getCaseCourante();
|
CaseAbstraite c = perso.getCaseCourante();
|
||||||
c.setOccupant(null);
|
c.setOccupant(null);
|
||||||
|
|
||||||
CaseAbstraite destination;
|
CaseAbstraite destination = null;
|
||||||
if (objs.isEmpty()) {
|
if (objs.isEmpty()) {
|
||||||
int size = cases.size();
|
int size = cases.size();
|
||||||
int item = new Random().nextInt(size);
|
int item = new Random().nextInt(size);
|
||||||
destination = cases.get(item);
|
destination = cases.get(item);
|
||||||
} else {
|
} else {
|
||||||
|
recupererObjets(objs, destination, perso);
|
||||||
|
}
|
||||||
|
destination.setOccupant(perso);
|
||||||
|
perso.setCaseCourante(destination);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void recupererObjets(ArrayList<ObjetAbstrait> objs, CaseAbstraite destination, Personnage perso) {
|
||||||
int size = objs.size();
|
int size = objs.size();
|
||||||
int item = new Random().nextInt(size);
|
int item = new Random().nextInt(size);
|
||||||
destination = objs.get(item).getCaseCourante();
|
destination = objs.get(item).getCaseCourante();
|
||||||
@ -31,8 +38,5 @@ public class ComportementActionSeDeplacer implements ComportementAction {
|
|||||||
destination.setObjetOccupant(null);
|
destination.setObjetOccupant(null);
|
||||||
perso.setObjet(objs.get(item));
|
perso.setObjet(objs.get(item));
|
||||||
}
|
}
|
||||||
destination.setOccupant(perso);
|
|
||||||
perso.setCaseCourante(destination);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
package Comportements;
|
package Comportements;
|
||||||
|
|
||||||
public enum EAction {
|
public enum EAction {
|
||||||
ChangerCouleurCase, RamasserNeige, SeDeplacer, TirerBalon, TirerBouleDeNeige
|
ChangerCouleurCase, SeDeplacer, TirerBalon, TirerBouleDeNeige
|
||||||
}
|
}
|
||||||
|
@ -2,12 +2,27 @@ package Fabriques.Objets;
|
|||||||
|
|
||||||
import Cases.CaseAbstraite;
|
import Cases.CaseAbstraite;
|
||||||
import Objets.ObjetAbstrait;
|
import Objets.ObjetAbstrait;
|
||||||
|
import Objets.ObjetAvecBonusForce;
|
||||||
|
import Objets.ObjetAvecBonusPV;
|
||||||
|
import Objets.ObjetAvecBonusVitesse;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
public class FabriqueObjetBattleSnow extends FabriqueObjetAbstraite {
|
public class FabriqueObjetBattleSnow extends FabriqueObjetAbstraite {
|
||||||
@Override
|
@Override
|
||||||
public ArrayList<ObjetAbstrait> creerObjets(CaseAbstraite[][] plateau) {
|
public ArrayList<ObjetAbstrait> creerObjets(CaseAbstraite[][] plateau) {
|
||||||
return null;
|
ArrayList<ObjetAbstrait> objs = new ArrayList<ObjetAbstrait>();
|
||||||
|
if (new Random().nextInt(3) == 1) {
|
||||||
|
objs.add(new ObjetAvecBonusPV("Potion", 10, 10, 10));
|
||||||
|
}
|
||||||
|
if (new Random().nextInt(3) == 2) {
|
||||||
|
objs.add(new ObjetAvecBonusVitesse("Etoile", 10, 10, 10));
|
||||||
|
|
||||||
|
}
|
||||||
|
if (new Random().nextInt(3) == 3) {
|
||||||
|
objs.add(new ObjetAvecBonusForce("Marteau", 10, 10, 10));
|
||||||
|
}
|
||||||
|
return objs;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,27 +2,13 @@ package Fabriques.Objets;
|
|||||||
|
|
||||||
import Cases.CaseAbstraite;
|
import Cases.CaseAbstraite;
|
||||||
import Objets.ObjetAbstrait;
|
import Objets.ObjetAbstrait;
|
||||||
import Objets.ObjetAvecBonusForce;
|
|
||||||
import Objets.ObjetAvecBonusPV;
|
|
||||||
import Objets.ObjetAvecBonusVitesse;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Random;
|
|
||||||
|
|
||||||
public class FabriqueObjetBattleZone extends FabriqueObjetAbstraite {
|
public class FabriqueObjetBattleZone extends FabriqueObjetAbstraite {
|
||||||
@Override
|
@Override
|
||||||
public ArrayList<ObjetAbstrait> creerObjets(CaseAbstraite[][] plateau) {
|
public ArrayList<ObjetAbstrait> creerObjets(CaseAbstraite[][] plateau) {
|
||||||
ArrayList<ObjetAbstrait> objs = new ArrayList<ObjetAbstrait>();
|
return new ArrayList<ObjetAbstrait>();
|
||||||
if (new Random().nextInt(3) == 1) {
|
|
||||||
objs.add(new ObjetAvecBonusPV("Potion", 10, 10, 10));
|
|
||||||
}
|
}
|
||||||
if (new Random().nextInt(3) == 2) {
|
|
||||||
objs.add(new ObjetAvecBonusVitesse("Etoile", 10, 10, 10));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
if (new Random().nextInt(3) == 3) {
|
|
||||||
objs.add(new ObjetAvecBonusForce("Marteau", 10, 10, 10));
|
|
||||||
}
|
|
||||||
return objs;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
@ -2,12 +2,15 @@ package Fabriques.Objets;
|
|||||||
|
|
||||||
import Cases.CaseAbstraite;
|
import Cases.CaseAbstraite;
|
||||||
import Objets.ObjetAbstrait;
|
import Objets.ObjetAbstrait;
|
||||||
|
import Objets.ObjetBallon;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public class FabriqueObjetFootball extends FabriqueObjetAbstraite {
|
public class FabriqueObjetFootball extends FabriqueObjetAbstraite {
|
||||||
@Override
|
@Override
|
||||||
public ArrayList<ObjetAbstrait> creerObjets(CaseAbstraite[][] plateau) {
|
public ArrayList<ObjetAbstrait> creerObjets(CaseAbstraite[][] plateau) {
|
||||||
return null;
|
ArrayList<ObjetAbstrait> objs = new ArrayList<ObjetAbstrait>();
|
||||||
|
objs.add(new ObjetBallon());
|
||||||
|
return objs;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,8 +4,6 @@ import Cases.CaseAbstraite;
|
|||||||
import Comportements.ComportementAction;
|
import Comportements.ComportementAction;
|
||||||
import Comportements.ComportementActionTirerBalon;
|
import Comportements.ComportementActionTirerBalon;
|
||||||
import Observateur.Organisation;
|
import Observateur.Organisation;
|
||||||
import Person.Arbitre;
|
|
||||||
import Person.JoueurDeChamp;
|
|
||||||
import Person.Personnage;
|
import Person.Personnage;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -16,12 +14,6 @@ public class FabriquePersonnagesFootball extends FabriquePersonnagesAbstraite {
|
|||||||
@Override
|
@Override
|
||||||
public ArrayList<Personnage> CreerPersonages(Organisation o, CaseAbstraite[][] plateau) {
|
public ArrayList<Personnage> CreerPersonages(Organisation o, CaseAbstraite[][] plateau) {
|
||||||
|
|
||||||
// Add referee
|
|
||||||
Arbitre arbitre = new Arbitre("Colina");
|
|
||||||
|
|
||||||
|
|
||||||
// TODO: Add team 1
|
|
||||||
JoueurDeChamp joueur = new JoueurDeChamp("Zidane", parDefaut);
|
|
||||||
// TODO: Add players to team 1
|
// TODO: Add players to team 1
|
||||||
|
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@ package Fabriques.Plateau;
|
|||||||
|
|
||||||
import Cases.CaseAbstraite;
|
import Cases.CaseAbstraite;
|
||||||
|
|
||||||
public class FabriquePlateauBattleGoal extends FabriquePlateauAbstraite {
|
public class FabriquePlateauFootball extends FabriquePlateauAbstraite {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CaseAbstraite[][] CreerPlateau() {
|
public CaseAbstraite[][] CreerPlateau() {
|
32
src/Fabriques/Scenario/FabriqueScenarioBattleSnow.java
Normal file
32
src/Fabriques/Scenario/FabriqueScenarioBattleSnow.java
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
package Fabriques.Scenario;
|
||||||
|
|
||||||
|
import Cases.CaseAbstraite;
|
||||||
|
import Fabriques.Objets.FabriqueObjetBattleSnow;
|
||||||
|
import Fabriques.Personnages.FabriquePersonnagesBattleSnow;
|
||||||
|
import Fabriques.Plateau.FabriquePlateauBattleSnow;
|
||||||
|
import Objets.ObjetAbstrait;
|
||||||
|
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
public class FabriqueScenarioBattleSnow extends FabriqueScenarioAbstraite {
|
||||||
|
public FabriqueScenarioBattleSnow(FabriquePlateauBattleSnow pl, FabriquePersonnagesBattleSnow pr, FabriqueObjetBattleSnow fObjs) {
|
||||||
|
super(pl, pr, fObjs);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void tourParTour(CaseAbstraite[][] plateau) {
|
||||||
|
if (new Random().nextInt(3) == 1) {
|
||||||
|
for (ObjetAbstrait o : this.creerObjets(plateau)) {
|
||||||
|
placementObjet(o, plateau);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void placementObjet(ObjetAbstrait o, CaseAbstraite[][] plateau) {
|
||||||
|
Random rand = new Random();
|
||||||
|
int x = rand.nextInt(plateau.length);
|
||||||
|
int y = rand.nextInt(plateau[x].length);
|
||||||
|
o.setCaseCourante(plateau[x][y]);
|
||||||
|
plateau[x][y].setObjetOccupant(o);
|
||||||
|
}
|
||||||
|
}
|
@ -4,9 +4,6 @@ import Cases.CaseAbstraite;
|
|||||||
import Fabriques.Objets.FabriqueObjetBattleZone;
|
import Fabriques.Objets.FabriqueObjetBattleZone;
|
||||||
import Fabriques.Personnages.FabriquePersonnagesBattleZone;
|
import Fabriques.Personnages.FabriquePersonnagesBattleZone;
|
||||||
import Fabriques.Plateau.FabriquePlateauBattleZone;
|
import Fabriques.Plateau.FabriquePlateauBattleZone;
|
||||||
import Objets.ObjetAbstrait;
|
|
||||||
|
|
||||||
import java.util.Random;
|
|
||||||
|
|
||||||
public class FabriqueScenarioBattleZone extends FabriqueScenarioAbstraite {
|
public class FabriqueScenarioBattleZone extends FabriqueScenarioAbstraite {
|
||||||
public FabriqueScenarioBattleZone(FabriquePlateauBattleZone pl, FabriquePersonnagesBattleZone pr, FabriqueObjetBattleZone obj) {
|
public FabriqueScenarioBattleZone(FabriquePlateauBattleZone pl, FabriquePersonnagesBattleZone pr, FabriqueObjetBattleZone obj) {
|
||||||
@ -15,18 +12,6 @@ public class FabriqueScenarioBattleZone extends FabriqueScenarioAbstraite {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tourParTour(CaseAbstraite[][] plateau) {
|
public void tourParTour(CaseAbstraite[][] plateau) {
|
||||||
if (new Random().nextInt(3) == 1) {
|
|
||||||
for (ObjetAbstrait o : this.creerObjets(plateau)) {
|
|
||||||
placementObjet(o, plateau);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void placementObjet(ObjetAbstrait o, CaseAbstraite[][] plateau) {
|
|
||||||
Random rand = new Random();
|
|
||||||
int x = rand.nextInt(plateau.length);
|
|
||||||
int y = rand.nextInt(plateau[x].length);
|
|
||||||
o.setCaseCourante(plateau[x][y]);
|
|
||||||
plateau[x][y].setObjetOccupant(o);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
7
src/Objets/ObjetBallon.java
Normal file
7
src/Objets/ObjetBallon.java
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
package Objets;
|
||||||
|
|
||||||
|
public class ObjetBallon extends ObjetAbstrait {
|
||||||
|
public ObjetBallon() {
|
||||||
|
super("Ballon", 0, 0, 0.5);
|
||||||
|
}
|
||||||
|
}
|
@ -1,13 +0,0 @@
|
|||||||
package Person;
|
|
||||||
|
|
||||||
import Comportements.ComportementActionSeDeplacer;
|
|
||||||
|
|
||||||
public class Arbitre extends Personnage {
|
|
||||||
|
|
||||||
public Arbitre(String nom) {
|
|
||||||
// TODO: Not sure if this one is a "personnage" with actions/
|
|
||||||
super(nom, new ComportementActionSeDeplacer());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
|||||||
package Person;
|
|
||||||
|
|
||||||
|
|
||||||
import Comportements.ComportementAction;
|
|
||||||
|
|
||||||
public class JoueurDeChamp extends Personnage {
|
|
||||||
|
|
||||||
public JoueurDeChamp(String nom, ComportementAction parDefaut) {
|
|
||||||
super(nom, parDefaut);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -41,8 +41,7 @@ public class Personnage extends PersonnagesAbstraits {
|
|||||||
|
|
||||||
this.caseCourante = null;
|
this.caseCourante = null;
|
||||||
this.etatCourant = new EtatPersonnageOK(this);
|
this.etatCourant = new EtatPersonnageOK(this);
|
||||||
this.ChangerAction(EAction.SeDeplacer);
|
this.Action = c;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -56,7 +55,7 @@ public class Personnage extends PersonnagesAbstraits {
|
|||||||
this.caseCourante=null;
|
this.caseCourante=null;
|
||||||
this.etatCourant= new EtatPersonnageOK(this);
|
this.etatCourant= new EtatPersonnageOK(this);
|
||||||
this.ChangerAction(EAction.SeDeplacer);
|
this.ChangerAction(EAction.SeDeplacer);
|
||||||
|
this.Action = a;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ChangeEtat(EEtat NouvelEtat)
|
public void ChangeEtat(EEtat NouvelEtat)
|
||||||
@ -143,9 +142,6 @@ public class Personnage extends PersonnagesAbstraits {
|
|||||||
case ChangerCouleurCase:
|
case ChangerCouleurCase:
|
||||||
Action = new ComportementActionChangerCouleurCase();
|
Action = new ComportementActionChangerCouleurCase();
|
||||||
break;
|
break;
|
||||||
case RamasserNeige:
|
|
||||||
Action = new ComportementActionRamasserNeige();
|
|
||||||
break;
|
|
||||||
case SeDeplacer:
|
case SeDeplacer:
|
||||||
Action = new ComportementActionSeDeplacer();
|
Action = new ComportementActionSeDeplacer();
|
||||||
break;
|
break;
|
||||||
|
@ -24,6 +24,8 @@ public class SimulationJeu {
|
|||||||
o = new Organisation();
|
o = new Organisation();
|
||||||
personnages = f.CreerPersonnages(o, plateau);
|
personnages = f.CreerPersonnages(o, plateau);
|
||||||
|
|
||||||
|
f.creerObjets(plateau);
|
||||||
|
|
||||||
intefaceC = new InterfaceConsole(plateau);
|
intefaceC = new InterfaceConsole(plateau);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user