Le fameux ballon.

This commit is contained in:
aminecmi 2015-03-09 13:31:04 +01:00
parent 4a0c2e69db
commit 8e024db46c
9 changed files with 40 additions and 13 deletions

View File

@ -38,7 +38,7 @@ public class ComportementActionTirerBalon implements ComportementAction {
dest = cases.get(item); dest = cases.get(item);
} }
if (j.getCaseCourante().getObjetOccupant() != null) { if (j.getCaseCourante().getObjetOccupant() != null) {
j.lancerBallon((ObjetBallon) dest.getObjetOccupant(), cases); j.lancerBallon((ObjetBallon) j.getCaseCourante().getObjetOccupant(), cases);
} }
joueur.getCaseCourante().setOccupant(null); joueur.getCaseCourante().setOccupant(null);
joueur.setCaseCourante(dest); joueur.setCaseCourante(dest);

View File

@ -4,7 +4,18 @@ import Cases.CaseAbstraite;
import Objets.ObjetAbstrait; import Objets.ObjetAbstrait;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Random;
abstract public class FabriqueObjetAbstraite { abstract public class FabriqueObjetAbstraite {
public abstract ArrayList<ObjetAbstrait> creerObjets(CaseAbstraite[][] plateau); public abstract ArrayList<ObjetAbstrait> creerObjets(CaseAbstraite[][] plateau);
void placement(ArrayList<ObjetAbstrait> objets, CaseAbstraite[][] plateau) {
Random rand = new Random();
for (ObjetAbstrait o : objets) {
int x = rand.nextInt(plateau.length);
int y = rand.nextInt(plateau[x].length);
o.setCaseCourante(plateau[x][y]);
plateau[x][y].setObjetOccupant(o);
}
}
} }

View File

@ -11,6 +11,7 @@ public class FabriqueObjetFootball extends FabriqueObjetAbstraite {
public ArrayList<ObjetAbstrait> creerObjets(CaseAbstraite[][] plateau) { public ArrayList<ObjetAbstrait> creerObjets(CaseAbstraite[][] plateau) {
ArrayList<ObjetAbstrait> objs = new ArrayList<ObjetAbstrait>(); ArrayList<ObjetAbstrait> objs = new ArrayList<ObjetAbstrait>();
objs.add(new ObjetBallon()); objs.add(new ObjetBallon());
this.placement(objs, plateau);
return objs; return objs;
} }
} }

View File

@ -2,6 +2,6 @@ package Objets;
public class ObjetBallon extends ObjetAbstrait { public class ObjetBallon extends ObjetAbstrait {
public ObjetBallon() { public ObjetBallon() {
super("Ballon", 0, 0, 0.5); super("*", 0, 0, 0.5);
} }
} }

View File

@ -1,18 +1,27 @@
package Observateur; package Observateur;
import java.util.Random;
public class Arbitre extends SujetObserveAbstrait { public class Arbitre extends SujetObserveAbstrait {
private int iter = 10; private int max = 10;
private int tour = 1;
public Arbitre() {
max = new Random().nextInt(10) + 10;
}
@Override @Override
public void update() { public boolean update() {
iter--; System.out.println("----------------- TOUR NUMERO " + tour + " ------------------");
if (iter == 0) { tour++;
if (tour == max) {
System.out.println("STOP!"); System.out.println("STOP!");
for (ObservateurAbstrait o : liste) { for (ObservateurAbstrait o : liste) {
o.update(); o.update();
} }
iter = 10; return false;
} }
return true;
} }
} }

View File

@ -19,5 +19,5 @@ public abstract class SujetObserveAbstrait {
liste.remove(observateurAbstrait); liste.remove(observateurAbstrait);
} }
public abstract void update(); public abstract boolean update();
} }

View File

@ -247,7 +247,8 @@ public class Personnage extends PersonnagesAbstraits implements ObservateurAbstr
@Override @Override
public String toString() { public String toString() {
return "Personnage{" + return nom + " case " + caseCourante.toString() + " pv " + pointsDeVie;
/*return "Personnage{" +
"caseCourante=" + caseCourante + "caseCourante=" + caseCourante +
", objet=" + objet + ", objet=" + objet +
", nom='" + nom + '\'' + ", nom='" + nom + '\'' +
@ -261,6 +262,6 @@ public class Personnage extends PersonnagesAbstraits implements ObservateurAbstr
", voisinsActuels=" + voisinsActuels + ", voisinsActuels=" + voisinsActuels +
", etatCourant=" + etatCourant + ", etatCourant=" + etatCourant +
", voisins=" + voisins + ", voisins=" + voisins +
'}'; '}';*/
} }
} }

View File

@ -32,7 +32,11 @@ public class PersonnageFootball extends Personnage {
int item = new Random().nextInt(size); int item = new Random().nextInt(size);
CaseAbstraite dest = cases.get(item); CaseAbstraite dest = cases.get(item);
CaseAbstraite old = objetOccupant.getCaseCourante();
objetOccupant.setCaseCourante(dest); objetOccupant.setCaseCourante(dest);
dest.setObjetOccupant(objetOccupant); dest.setObjetOccupant(objetOccupant);
old.setObjetOccupant(null);
} }
} }

View File

@ -1,5 +1,6 @@
import Cases.CaseAbstraite; import Cases.CaseAbstraite;
import Fabriques.Scenario.FabriqueScenarioAbstraite; import Fabriques.Scenario.FabriqueScenarioAbstraite;
import Objets.ObjetAbstrait;
import Observateur.Arbitre; import Observateur.Arbitre;
import Person.Personnage; import Person.Personnage;
import utils.InterfaceConsole; import utils.InterfaceConsole;
@ -22,7 +23,7 @@ class SimulationJeu {
personnages = f.CreerPersonnages(plateau); personnages = f.CreerPersonnages(plateau);
f.creerObjets(plateau); ArrayList<ObjetAbstrait> objs = f.creerObjets(plateau);
intefaceC = new InterfaceConsole(plateau); intefaceC = new InterfaceConsole(plateau);
@ -48,10 +49,10 @@ class SimulationJeu {
boolean continuer = true; boolean continuer = true;
afficheTous(); afficheTous();
while (continuer) { while (continuer) {
a.update(); continuer = a.update();
recupererInformations();
for (Personnage p : personnages) { for (Personnage p : personnages) {
p.Execution(p.AnalyseSituation()); p.Execution(p.AnalyseSituation());
recupererInformations();
} }
f.tourParTour(plateau); f.tourParTour(plateau);
afficheTous(); afficheTous();