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);
|
tabJLabel[x][y].setIcon(icoMur);
|
||||||
else if (jeu.getGrille()[x][y][0] instanceof Colonne)
|
else if (jeu.getGrille()[x][y][0] instanceof Colonne)
|
||||||
tabJLabel[x][y].setIcon(icoColonne);
|
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) {
|
} else if (jeu.getGrille()[x][y][1] != null) {
|
||||||
if (jeu.getGrille()[x][y][1] instanceof Corde)
|
if (jeu.getGrille()[x][y][1] instanceof Corde)
|
||||||
tabJLabel[x][y].setIcon(icoCorde);
|
tabJLabel[x][y].setIcon(icoCorde);
|
||||||
|
@ -28,6 +28,7 @@ public class Controle4Directions extends RealisateurDeDeplacement {
|
|||||||
for (ElementDynamique e : lstEntitesDynamiques) {
|
for (ElementDynamique e : lstEntitesDynamiques) {
|
||||||
if (e instanceof Entite && directionCourante != null)
|
if (e instanceof Entite && directionCourante != null)
|
||||||
switch (directionCourante) {
|
switch (directionCourante) {
|
||||||
|
|
||||||
case gauche:
|
case gauche:
|
||||||
case droite:
|
case droite:
|
||||||
if (e.avancerDirectionChoisie(directionCourante))
|
if (e.avancerDirectionChoisie(directionCourante))
|
||||||
|
@ -1,5 +1,48 @@
|
|||||||
package modele.calculs;
|
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 {
|
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 HashMap<ElementPhysique, Integer> cmptDeplV = new HashMap<ElementPhysique, Integer>();
|
||||||
|
|
||||||
private Heros hector;
|
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<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
|
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);
|
hector = new Heros(this);
|
||||||
addEntite(hector, 2, 1);
|
addEntite(hector, 2, 1);
|
||||||
|
|
||||||
|
renaud = new modele.donnees.IA(this);
|
||||||
|
addEntite(renaud, 10, 8);
|
||||||
|
|
||||||
Gravite g = new Gravite();
|
Gravite g = new Gravite();
|
||||||
g.addEntiteDynamique(hector);
|
g.addEntiteDynamique(hector);
|
||||||
|
g.addEntiteDynamique(renaud);
|
||||||
ordonnanceur.add(g);
|
ordonnanceur.add(g);
|
||||||
|
|
||||||
|
modele.calculs.IA.getInstance().addEntiteDynamique(renaud);
|
||||||
|
ordonnanceur.add(modele.calculs.IA.getInstance());
|
||||||
|
|
||||||
Controle4Directions.getInstance().addEntiteDynamique(hector);
|
Controle4Directions.getInstance().addEntiteDynamique(hector);
|
||||||
ordonnanceur.add(Controle4Directions.getInstance());
|
ordonnanceur.add(Controle4Directions.getInstance());
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user