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);
}
if (j.getCaseCourante().getObjetOccupant() != null) {
j.lancerBallon((ObjetBallon) dest.getObjetOccupant(), cases);
j.lancerBallon((ObjetBallon) j.getCaseCourante().getObjetOccupant(), cases);
}
joueur.getCaseCourante().setOccupant(null);
joueur.setCaseCourante(dest);

View File

@ -4,7 +4,18 @@ import Cases.CaseAbstraite;
import Objets.ObjetAbstrait;
import java.util.ArrayList;
import java.util.Random;
abstract public class FabriqueObjetAbstraite {
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) {
ArrayList<ObjetAbstrait> objs = new ArrayList<ObjetAbstrait>();
objs.add(new ObjetBallon());
this.placement(objs, plateau);
return objs;
}
}

View File

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

View File

@ -1,18 +1,27 @@
package Observateur;
import java.util.Random;
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
public void update() {
iter--;
if (iter == 0) {
public boolean update() {
System.out.println("----------------- TOUR NUMERO " + tour + " ------------------");
tour++;
if (tour == max) {
System.out.println("STOP!");
for (ObservateurAbstrait o : liste) {
o.update();
}
iter = 10;
}
return false;
}
return true;
}
}

View File

@ -19,5 +19,5 @@ public abstract class SujetObserveAbstrait {
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
public String toString() {
return "Personnage{" +
return nom + " case " + caseCourante.toString() + " pv " + pointsDeVie;
/*return "Personnage{" +
"caseCourante=" + caseCourante +
", objet=" + objet +
", nom='" + nom + '\'' +
@ -261,6 +262,6 @@ public class Personnage extends PersonnagesAbstraits implements ObservateurAbstr
", voisinsActuels=" + voisinsActuels +
", etatCourant=" + etatCourant +
", voisins=" + voisins +
'}';
'}';*/
}
}

View File

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

View File

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