From 2b2e5cda5c0bafaea590bf9579eb616ad811fd16 Mon Sep 17 00:00:00 2001 From: gwiz Date: Sun, 6 Dec 2020 15:42:54 +0100 Subject: [PATCH] aller retour IA --- src/modele/calculs/Direction.java | 9 ++++++-- src/modele/calculs/IA.java | 35 ++++++++++++++++++++++--------- src/modele/donnees/IA.java | 4 ++++ 3 files changed, 36 insertions(+), 12 deletions(-) diff --git a/src/modele/calculs/Direction.java b/src/modele/calculs/Direction.java index 504eefe..7825d18 100644 --- a/src/modele/calculs/Direction.java +++ b/src/modele/calculs/Direction.java @@ -10,5 +10,10 @@ package modele.calculs; * */ public enum Direction { - haut, bas, gauche, droite, action -} + haut, bas, gauche, droite, action; + + public static Direction inversDir(Direction direct) { + return direct == droite ? gauche : direct == gauche ? droite : null; + } + +} \ No newline at end of file diff --git a/src/modele/calculs/IA.java b/src/modele/calculs/IA.java index 25c48e6..11df01f 100644 --- a/src/modele/calculs/IA.java +++ b/src/modele/calculs/IA.java @@ -1,25 +1,40 @@ package modele.calculs; import modele.donnees.ElementDynamique; -import modele.donnees.ElementFond; -import modele.donnees.Entite; import modele.donnees.Heros; -import java.awt.*; import java.util.Random; public class IA extends RealisateurDeDeplacement { +int alt = 0; + Direction d = Direction.droite; + + int genererInt(int borneInf, int borneSup){ + Random rand = new Random(); + int nb; + nb = borneInf+rand.nextInt(borneSup-borneInf); + return nb; + } - int alt = 0; protected boolean realiserDeplacement() { for (ElementDynamique e : lstEntitesDynamiques) if (e instanceof modele.donnees.IA) { - if(alt < 3){ - alt++; - }else{ - e.avancerDirectionChoisie(null); - alt = 0; + if (alt < 3) { + alt++; + } else { + modele.donnees.IA ia = (modele.donnees.IA) e; + if(ia.avancerDirectionChoisieunique(d) == false){ + d = Direction.inversDir(d); + ia.avancerDirectionChoisieunique(d); + }else if(ia.regarderDansLaDirection(d) instanceof Heros){ + ia.avancerDirectionChoisie(null); // TODO + } else { + ia.avancerDirectionChoisieunique(d); + } + + alt = 0; + } } - } + return false; } diff --git a/src/modele/donnees/IA.java b/src/modele/donnees/IA.java index 5155f0f..db174f6 100644 --- a/src/modele/donnees/IA.java +++ b/src/modele/donnees/IA.java @@ -25,6 +25,10 @@ public class IA extends Entite { return super.avancerDirectionChoisie(jeu.getDirection(this, jeu.getHector())); } + public boolean avancerDirectionChoisieunique(Direction d) { + return jeu.deplacerEntite(this, d); + } + @Override public boolean peutEtreEcrase() { return true;