diff --git a/design_pattern/src/modele/DialogueTerminal.java b/design_pattern/src/modele/DialogueTerminal.java
index 904b8645bf4a38d0cb5930d3f00e8f38e16ebcda..065f8ff5e4d9bfc3832f45f854c473d837aa47ae 100644
--- a/design_pattern/src/modele/DialogueTerminal.java
+++ b/design_pattern/src/modele/DialogueTerminal.java
@@ -40,6 +40,10 @@ public class DialogueTerminal {
 
         while (finDePartie == 0){
             jouer(scan);
+            if (jeu.getEquipeEnnemi().getTaille() > 0){
+                attaqueEnnemi();
+            }
+            annonceFinDeTour();
         }
     }
 
@@ -50,7 +54,6 @@ public class DialogueTerminal {
         switch (action){
             case 0:
                 attaquer(scan);
-                annonceFinDeTour();
                 break;
             case 1:
                 jeu.ameliorerEquipe(jeu.getEquipe());
@@ -154,13 +157,13 @@ public class DialogueTerminal {
 
     private void choixStrategie(Scanner scan){
         int strat = -1;
+        Personnage personnage = jeu.getEquipe().getPersonnage(jeu.getNbAttaqueEquipe()% jeu.tailleEquipe());
         while (strat < 0 || strat > 2) {
-            System.out.println("Votre personnage : " + jeu.getEquipe().getPersonnage(jeu.getNbAttaqueEquipe()) + " va attaquer" +
-                    "le personnage ennemi : " + jeu.getEquipeEnnemi().getPersonnage(jeu.getNbAttaqueEquipe()));
+            System.out.println("Votre personnage : " + personnage + " va attaquer" +
+                    " le personnage ennemi : " + jeu.getEquipeEnnemi().getPersonnage(jeu.getNbAttaqueEquipe()% jeu.tailleEquipeEnnemi()));
             System.out.println("Choisissez votre stratégie pour ce tour :\n0: Neutre\n1: Agressif\n2: Défensif");
             strat = Integer.parseInt(scan.nextLine());
         }
-        Personnage personnage = jeu.getEquipe().getPersonnage(jeu.getNbAttaqueEquipe());
         switch (strat) {
             case 0:
                  personnage.setStrategie(new ConcreteStrategieNeutre());
@@ -223,6 +226,9 @@ public class DialogueTerminal {
         annonceEtatEnnemi();
     }
 
+    private void attaqueEnnemi(){
+        jeu.produireAttaque(jeu.getEquipeEnnemi());
+    }
     private void annonceEtat(){
         for (Personnage p : jeu.getEquipe().getEquipe()){
             if (p.getEtat() != null){
diff --git a/design_pattern/src/modele/Jeu.java b/design_pattern/src/modele/Jeu.java
index 9035d09f81588bf04dfbd239e66747a1ef55b8bd..fbcdd88361cc8230a38148ad4a2bad08d72a34f4 100644
--- a/design_pattern/src/modele/Jeu.java
+++ b/design_pattern/src/modele/Jeu.java
@@ -26,7 +26,11 @@ public class Jeu implements Facade {
 
     @Override
     public void produireAttaque(Equipe equipe) {
-        equipe.getPersonnage(nbAttaqueEquipe).attaquer(getEquipeEnnemi().getPersonnage(getEquipeEnnemi().getTaille()-1));
+        if (equipe.equals(this.equipe)){
+            equipe.getPersonnage(nbAttaqueEquipe).attaquer(getEquipeEnnemi().getPersonnage(getEquipeEnnemi().getTaille()-1));
+        }else {
+            equipe.getPersonnage(nbAttaqueEquipe).attaquer(getEquipe().getPersonnage(getEquipe().getTaille()-1));
+        }
         if (nbAttaqueEquipe == (Configuration.getInstance().getTailleMaxEquipe() - 1)){
             nbAttaqueEquipe = 0;
         }else {