Fabrique d'objets.
This commit is contained in:
parent
b45d628ca6
commit
2394181d99
10
src/Fabriques/Objets/FabriqueObjetAbstraite.java
Normal file
10
src/Fabriques/Objets/FabriqueObjetAbstraite.java
Normal file
@ -0,0 +1,10 @@
|
||||
package Fabriques.Objets;
|
||||
|
||||
import Cases.CaseAbstraite;
|
||||
import Objets.ObjetAbstrait;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
abstract public class FabriqueObjetAbstraite {
|
||||
public abstract ArrayList<ObjetAbstrait> creerObjets(CaseAbstraite[][] plateau);
|
||||
}
|
13
src/Fabriques/Objets/FabriqueObjetBattleSnow.java
Normal file
13
src/Fabriques/Objets/FabriqueObjetBattleSnow.java
Normal file
@ -0,0 +1,13 @@
|
||||
package Fabriques.Objets;
|
||||
|
||||
import Cases.CaseAbstraite;
|
||||
import Objets.ObjetAbstrait;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class FabriqueObjetBattleSnow extends FabriqueObjetAbstraite {
|
||||
@Override
|
||||
public ArrayList<ObjetAbstrait> creerObjets(CaseAbstraite[][] plateau) {
|
||||
return null;
|
||||
}
|
||||
}
|
28
src/Fabriques/Objets/FabriqueObjetBattleZone.java
Normal file
28
src/Fabriques/Objets/FabriqueObjetBattleZone.java
Normal file
@ -0,0 +1,28 @@
|
||||
package Fabriques.Objets;
|
||||
|
||||
import Cases.CaseAbstraite;
|
||||
import Objets.ObjetAbstrait;
|
||||
import Objets.ObjetAvecBonusForce;
|
||||
import Objets.ObjetAvecBonusPV;
|
||||
import Objets.ObjetAvecBonusVitesse;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Random;
|
||||
|
||||
public class FabriqueObjetBattleZone extends FabriqueObjetAbstraite {
|
||||
@Override
|
||||
public ArrayList<ObjetAbstrait> creerObjets(CaseAbstraite[][] plateau) {
|
||||
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;
|
||||
}
|
||||
}
|
13
src/Fabriques/Objets/FabriqueObjetFootball.java
Normal file
13
src/Fabriques/Objets/FabriqueObjetFootball.java
Normal file
@ -0,0 +1,13 @@
|
||||
package Fabriques.Objets;
|
||||
|
||||
import Cases.CaseAbstraite;
|
||||
import Objets.ObjetAbstrait;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class FabriqueObjetFootball extends FabriqueObjetAbstraite {
|
||||
@Override
|
||||
public ArrayList<ObjetAbstrait> creerObjets(CaseAbstraite[][] plateau) {
|
||||
return null;
|
||||
}
|
||||
}
|
@ -1,10 +1,22 @@
|
||||
package Fabriques.Personnages;
|
||||
|
||||
import Cases.CaseAbstraite;
|
||||
import Observateur.Organisation;
|
||||
import Person.Personnage;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Random;
|
||||
|
||||
abstract public class FabriquePersonnagesAbstraite {
|
||||
public abstract ArrayList<Personnage> CreerPersonages(Organisation o);
|
||||
public abstract ArrayList<Personnage> CreerPersonages(Organisation o, CaseAbstraite[][] plateau);
|
||||
|
||||
protected void placement(ArrayList<Personnage> personnages, CaseAbstraite[][] plateau) {
|
||||
Random rand = new Random();
|
||||
for (Personnage p : personnages) {
|
||||
int x = rand.nextInt(plateau.length);
|
||||
int y = rand.nextInt(plateau[x].length);
|
||||
p.setCaseCourante(plateau[x][y]);
|
||||
plateau[x][y].ajouterOccupant(p);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package Fabriques.Personnages;
|
||||
|
||||
import Cases.CaseAbstraite;
|
||||
import Observateur.Organisation;
|
||||
import Person.Personnage;
|
||||
|
||||
@ -8,9 +9,7 @@ import java.util.ArrayList;
|
||||
public class FabriquePersonnagesBattleSnow extends FabriquePersonnagesAbstraite {
|
||||
|
||||
@Override
|
||||
public ArrayList<Personnage> CreerPersonages(Organisation o) {
|
||||
// TODO Auto-generated method stub
|
||||
public ArrayList<Personnage> CreerPersonages(Organisation o, CaseAbstraite[][] plateau) {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package Fabriques.Personnages;
|
||||
|
||||
import Cases.CaseAbstraite;
|
||||
import Comportements.ComportementAction;
|
||||
import Comportements.ComportementActionChangerCouleurCase;
|
||||
import Observateur.Organisation;
|
||||
@ -10,8 +11,9 @@ import java.util.ArrayList;
|
||||
|
||||
public class FabriquePersonnagesBattleZone extends FabriquePersonnagesAbstraite {
|
||||
protected ComportementAction parDefaut = new ComportementActionChangerCouleurCase();
|
||||
|
||||
@Override
|
||||
public ArrayList<Personnage> CreerPersonages(Organisation o) {
|
||||
public ArrayList<Personnage> CreerPersonages(Organisation o, CaseAbstraite[][] plateau) {
|
||||
ArrayList<Personnage> list = new ArrayList<Personnage>();
|
||||
|
||||
PersonnageBattleZone p1 = new PersonnageBattleZone("Bob", 100.0, 1.0, 1.0, 2, parDefaut);
|
||||
@ -22,6 +24,8 @@ public class FabriquePersonnagesBattleZone extends FabriquePersonnagesAbstraite
|
||||
//list.add(p3);
|
||||
//PersonnageBattleZone p4 = new PersonnageBattleZone("Zac", 100.0, 1.0, 1.0, 2, parDefaut);
|
||||
//list.add(p4);
|
||||
|
||||
this.placement(list, plateau);
|
||||
return list;
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package Fabriques.Personnages;
|
||||
|
||||
import Cases.CaseAbstraite;
|
||||
import Comportements.ComportementAction;
|
||||
import Comportements.ComportementActionTirerBalon;
|
||||
import Observateur.Organisation;
|
||||
@ -13,7 +14,7 @@ public class FabriquePersonnagesFootball extends FabriquePersonnagesAbstraite {
|
||||
ComportementAction parDefaut = new ComportementActionTirerBalon();
|
||||
|
||||
@Override
|
||||
public ArrayList<Personnage> CreerPersonages(Organisation o) {
|
||||
public ArrayList<Personnage> CreerPersonages(Organisation o, CaseAbstraite[][] plateau) {
|
||||
|
||||
// Add referee
|
||||
Arbitre arbitre = new Arbitre("Colina");
|
||||
|
@ -1,20 +1,24 @@
|
||||
package Fabriques.Scenario;
|
||||
|
||||
import Cases.CaseAbstraite;
|
||||
import Fabriques.Objets.FabriqueObjetAbstraite;
|
||||
import Fabriques.Personnages.FabriquePersonnagesAbstraite;
|
||||
import Fabriques.Plateau.FabriquePlateauAbstraite;
|
||||
import Objets.ObjetAbstrait;
|
||||
import Observateur.Organisation;
|
||||
import Person.Personnage;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class FabriqueScenarioAbstraite {
|
||||
public abstract class FabriqueScenarioAbstraite {
|
||||
FabriquePlateauAbstraite fPlateau;
|
||||
FabriquePersonnagesAbstraite fPersonnages;
|
||||
FabriqueObjetAbstraite fObjs;
|
||||
|
||||
public FabriqueScenarioAbstraite(FabriquePlateauAbstraite pl, FabriquePersonnagesAbstraite pr) {
|
||||
public FabriqueScenarioAbstraite(FabriquePlateauAbstraite pl, FabriquePersonnagesAbstraite pr, FabriqueObjetAbstraite fObjs) {
|
||||
this.fPlateau = pl;
|
||||
this.fPersonnages = pr;
|
||||
this.fObjs = fObjs;
|
||||
}
|
||||
|
||||
public ArrayList<Personnage> CreerPersonnages(Organisation o) {
|
||||
@ -24,4 +28,10 @@ public class FabriqueScenarioAbstraite {
|
||||
public CaseAbstraite[][] CreerPlateau() {
|
||||
return this.fPlateau.CreerPlateau();
|
||||
}
|
||||
|
||||
public ArrayList<ObjetAbstrait> creerObjets(CaseAbstraite[][] plateau) {
|
||||
return this.fObjs.creerObjets(plateau);
|
||||
}
|
||||
|
||||
public abstract void tourParTour(CaseAbstraite[][] plateau);
|
||||
}
|
||||
|
@ -1,10 +1,32 @@
|
||||
package Fabriques.Scenario;
|
||||
|
||||
import Cases.CaseAbstraite;
|
||||
import Fabriques.Objets.FabriqueObjetBattleZone;
|
||||
import Fabriques.Personnages.FabriquePersonnagesBattleZone;
|
||||
import Fabriques.Plateau.FabriquePlateauBattleZone;
|
||||
import Objets.ObjetAbstrait;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class FabriqueScenarioBattleZone extends FabriqueScenarioAbstraite {
|
||||
public FabriqueScenarioBattleZone(FabriquePlateauBattleZone pl, FabriquePersonnagesBattleZone pr) {
|
||||
super(pl, pr);
|
||||
public FabriqueScenarioBattleZone(FabriquePlateauBattleZone pl, FabriquePersonnagesBattleZone pr, FabriqueObjetBattleZone obj) {
|
||||
super(pl, pr, obj);
|
||||
}
|
||||
|
||||
@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);
|
||||
}
|
||||
}
|
||||
|
@ -1,10 +1,11 @@
|
||||
import Fabriques.Objets.FabriqueObjetBattleZone;
|
||||
import Fabriques.Personnages.FabriquePersonnagesBattleZone;
|
||||
import Fabriques.Plateau.FabriquePlateauBattleZone;
|
||||
import Fabriques.Scenario.FabriqueScenarioBattleZone;
|
||||
|
||||
public class Main {
|
||||
public static void main(String[] args){
|
||||
SimulationJeu s = new SimulationJeu(new FabriqueScenarioBattleZone(new FabriquePlateauBattleZone(), new FabriquePersonnagesBattleZone()));
|
||||
SimulationJeu s = new SimulationJeu(new FabriqueScenarioBattleZone(new FabriquePlateauBattleZone(), new FabriquePersonnagesBattleZone(), new FabriqueObjetBattleZone()));
|
||||
s.lancerJeu();
|
||||
}
|
||||
}
|
||||
|
@ -1,15 +1,10 @@
|
||||
import Cases.CaseAbstraite;
|
||||
import Fabriques.Scenario.FabriqueScenarioAbstraite;
|
||||
import Objets.ObjetAbstrait;
|
||||
import Objets.ObjetAvecBonusForce;
|
||||
import Objets.ObjetAvecBonusPV;
|
||||
import Objets.ObjetAvecBonusVitesse;
|
||||
import Observateur.Organisation;
|
||||
import Person.Personnage;
|
||||
import utils.InterfaceConsole;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Random;
|
||||
import java.util.Scanner;
|
||||
|
||||
|
||||
@ -45,7 +40,6 @@ public class SimulationJeu {
|
||||
}
|
||||
|
||||
public void lancerJeu() {
|
||||
placement();
|
||||
|
||||
boolean continuer = true;
|
||||
afficheTous();
|
||||
@ -54,8 +48,9 @@ public class SimulationJeu {
|
||||
p.Execution(p.AnalyseSituation());
|
||||
recupererInformations();
|
||||
}
|
||||
placerDesObjets();
|
||||
f.tourParTour(plateau);
|
||||
afficheTous();
|
||||
|
||||
// bloquer le tour jusqu'a toucher une touche du clavier.
|
||||
Scanner s = new Scanner(System.in);
|
||||
s.nextLine();
|
||||
@ -63,41 +58,6 @@ public class SimulationJeu {
|
||||
|
||||
}
|
||||
|
||||
private void placerDesObjets() {
|
||||
if (new Random().nextInt(2) == 1) {
|
||||
if (new Random().nextInt(3) == 1) {
|
||||
placementObjet(new ObjetAvecBonusPV("Toto", 10, 10, 10));
|
||||
}
|
||||
if (new Random().nextInt(3) == 2) {
|
||||
placementObjet(new ObjetAvecBonusVitesse("Toto", 10, 10, 10));
|
||||
|
||||
}
|
||||
if (new Random().nextInt(3) == 3) {
|
||||
placementObjet(new ObjetAvecBonusForce("tptp", 10, 10, 10));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void placement() {
|
||||
Random rand = new Random();
|
||||
for (Personnage p : personnages) {
|
||||
int x = rand.nextInt(plateau.length);
|
||||
int y = rand.nextInt(plateau[x].length);
|
||||
// int x = 0;
|
||||
// int y = 0;
|
||||
p.setCaseCourante(plateau[x][y]);
|
||||
plateau[x][y].ajouterOccupant(p);
|
||||
}
|
||||
}
|
||||
|
||||
private void placementObjet(ObjetAbstrait o) {
|
||||
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);
|
||||
}
|
||||
|
||||
// Todo Save
|
||||
private void enregistrerSimulation(String NomFichier) {
|
||||
// Todo
|
||||
|
Loading…
Reference in New Issue
Block a user