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