mirror of
https://forge.univ-lyon1.fr/tplifap4/gyromite_ya.git
synced 2024-02-27 13:31:49 +01:00
debut de l'ia, deplacement aléatoire
This commit is contained in:
parent
4c12e6bfa0
commit
2a6301fbef
@ -122,6 +122,8 @@ public class VueControleurGyromite extends JFrame implements Observer {
|
||||
tabJLabel[x][y].setIcon(icoMur);
|
||||
else if (jeu.getGrille()[x][y][0] instanceof Colonne)
|
||||
tabJLabel[x][y].setIcon(icoColonne);
|
||||
else if (jeu.getGrille()[x][y][0] instanceof IA)
|
||||
tabJLabel[x][y].setIcon(icoHero);
|
||||
} else if (jeu.getGrille()[x][y][1] != null) {
|
||||
if (jeu.getGrille()[x][y][1] instanceof Corde)
|
||||
tabJLabel[x][y].setIcon(icoCorde);
|
||||
|
@ -28,6 +28,7 @@ public class Controle4Directions extends RealisateurDeDeplacement {
|
||||
for (ElementDynamique e : lstEntitesDynamiques) {
|
||||
if (e instanceof Entite && directionCourante != null)
|
||||
switch (directionCourante) {
|
||||
|
||||
case gauche:
|
||||
case droite:
|
||||
if (e.avancerDirectionChoisie(directionCourante))
|
||||
|
@ -1,5 +1,48 @@
|
||||
package modele.calculs;
|
||||
|
||||
import modele.donnees.ElementDynamique;
|
||||
import modele.donnees.ElementFond;
|
||||
import modele.donnees.Entite;
|
||||
import modele.donnees.Heros;
|
||||
import java.util.Random;
|
||||
public class IA extends RealisateurDeDeplacement {
|
||||
protected boolean realiserDeplacement() { return false; } // TODO
|
||||
// private Direction directionCourante;
|
||||
private static IA dep;
|
||||
int genererInt(int borneInf, int borneSup){
|
||||
Random rand = new Random();
|
||||
int nb;
|
||||
nb = borneInf+rand.nextInt(borneSup-borneInf);
|
||||
return nb;
|
||||
}
|
||||
public static IA getInstance() {
|
||||
if (dep == null) {
|
||||
dep = new IA();
|
||||
}
|
||||
return dep;
|
||||
}
|
||||
protected boolean realiserDeplacement() {
|
||||
for (ElementDynamique e : lstEntitesDynamiques)
|
||||
if (e instanceof modele.donnees.IA) {
|
||||
modele.donnees.IA ia = (modele.donnees.IA) e;
|
||||
// Direction d = Direction.droite;
|
||||
//System.out.println(genererInt(1, 1000));
|
||||
|
||||
if (genererInt(1, 1000) > 500) {
|
||||
Direction deplacement = Direction.gauche;
|
||||
if (!ia.avancerDirectionChoisie(deplacement)) {
|
||||
deplacement = Direction.droite;
|
||||
ia.avancerDirectionChoisie(deplacement);
|
||||
|
||||
}
|
||||
} else {
|
||||
Direction deplacement = Direction.droite;
|
||||
if (!ia.avancerDirectionChoisie(deplacement)) {
|
||||
deplacement = Direction.gauche;
|
||||
ia.avancerDirectionChoisie(deplacement);
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -27,6 +27,7 @@ public class Jeu {
|
||||
private HashMap<ElementPhysique, Integer> cmptDeplV = new HashMap<ElementPhysique, Integer>();
|
||||
|
||||
private Heros hector;
|
||||
private modele.donnees.IA renaud;
|
||||
|
||||
private HashMap<ElementDynamique, Point> map = new HashMap<ElementDynamique, Point>(); // permet de récupérer la position d'une entité à partir de sa référence
|
||||
private HashMap<ObjetGyromide, Point> mapInit = new HashMap<ObjetGyromide, Point>(); // N'est utilisé qu'a l'initialisation. Permet d'initialiser la grille
|
||||
@ -59,10 +60,17 @@ public class Jeu {
|
||||
hector = new Heros(this);
|
||||
addEntite(hector, 2, 1);
|
||||
|
||||
renaud = new modele.donnees.IA(this);
|
||||
addEntite(renaud, 10, 8);
|
||||
|
||||
Gravite g = new Gravite();
|
||||
g.addEntiteDynamique(hector);
|
||||
g.addEntiteDynamique(renaud);
|
||||
ordonnanceur.add(g);
|
||||
|
||||
modele.calculs.IA.getInstance().addEntiteDynamique(renaud);
|
||||
ordonnanceur.add(modele.calculs.IA.getInstance());
|
||||
|
||||
Controle4Directions.getInstance().addEntiteDynamique(hector);
|
||||
ordonnanceur.add(Controle4Directions.getInstance());
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user