Le fameux ballon.
This commit is contained in:
parent
4a0c2e69db
commit
8e024db46c
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,6 @@ package Objets;
|
||||
|
||||
public class ObjetBallon extends ObjetAbstrait {
|
||||
public ObjetBallon() {
|
||||
super("Ballon", 0, 0, 0.5);
|
||||
super("*", 0, 0, 0.5);
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -19,5 +19,5 @@ public abstract class SujetObserveAbstrait {
|
||||
liste.remove(observateurAbstrait);
|
||||
}
|
||||
|
||||
public abstract void update();
|
||||
public abstract boolean update();
|
||||
}
|
||||
|
@ -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 +
|
||||
'}';
|
||||
'}';*/
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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();
|
||||
|
Loading…
Reference in New Issue
Block a user