From 0566941c0dde7bacc89e5f4f2465f25f304e6754 Mon Sep 17 00:00:00 2001
From: rosier8u <basile.rosier6@etu.univ-lorraine>
Date: Sun, 17 Dec 2023 15:06:55 +0100
Subject: [PATCH] =?UTF-8?q?implementation=20de=20supprimer=20la=20derni?=
 =?UTF-8?q?=C3=A8re=20commande=20et=20de=20refaire=20la=20derni=C3=A8re=20?=
 =?UTF-8?q?comm?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../src/modele/DPCommand/Invoker.java         |  6 +++---
 .../src/modele/DialogueTerminal.java          | 19 +++++++++++++++++--
 design_pattern/src/modele/Equipe.java         |  3 +++
 3 files changed, 23 insertions(+), 5 deletions(-)

diff --git a/design_pattern/src/modele/DPCommand/Invoker.java b/design_pattern/src/modele/DPCommand/Invoker.java
index ba3d8d8..576f61c 100644
--- a/design_pattern/src/modele/DPCommand/Invoker.java
+++ b/design_pattern/src/modele/DPCommand/Invoker.java
@@ -18,13 +18,13 @@ public class Invoker {
     }
 
     public void executeLastCommand(){
-        commandHistory.get(commandHistory.size()).execute(jeu);
+        commandHistory.get(commandHistory.size()-1).execute(jeu);
     }
 
     public void undoLastCommand() {
         if (!commandHistory.isEmpty()) {
-            Command lastCommand = commandHistory.remove(commandHistory.size() - 1);
-
+            commandHistory.remove(commandHistory.size() - 1);
+            jeu.getEquipe().supprimerLast();
         }
     }
 }
diff --git a/design_pattern/src/modele/DialogueTerminal.java b/design_pattern/src/modele/DialogueTerminal.java
index 1eaa11c..904b864 100644
--- a/design_pattern/src/modele/DialogueTerminal.java
+++ b/design_pattern/src/modele/DialogueTerminal.java
@@ -73,11 +73,20 @@ public class DialogueTerminal {
             System.out.println("Vous pouvez encore ajouter maximum : "+
                     (Configuration.getInstance().getTailleMaxEquipe()-tailleActuelle)+" personneges.");
             System.out.println("Choisissez un personnage à ajouter à l'équipe :");
-            System.out.println("0 : Terminé\n1 : Guerrier\n2 : Roi\n3 : Guerisseur\n4 : Sorcier\n");
+            if (tailleActuelle == 0){
+                System.out.println("0 : Terminé\n1 : Guerrier\n2 : Roi\n3 : Guerisseur\n4 : Sorcier\n");
+            }else {
+                System.out.println("0 : Terminé\n1 : Guerrier\n2 : Roi\n3 : Guerisseur\n4 : Sorcier\n" +
+                        "5: Le même que précédemment\n6: Supprimer le dernier personnage ajouté\n");
+            }
             choix = Integer.parseInt(scan.nextLine());
             if (choix != 0){
                 ajouterPersonnage(choix);
-                tailleActuelle++;
+                if (choix == 6){
+                    tailleActuelle--;
+                }else {
+                    tailleActuelle++;
+                }
             }
         }
     }
@@ -115,6 +124,12 @@ public class DialogueTerminal {
             case 4:
                 invoker.executeCommand(new CommandCreerSorcier());
                 break;
+            case 5:
+                invoker.executeLastCommand();
+                break;
+            case 6:
+                invoker.undoLastCommand();
+                break;
         }
     }
 
diff --git a/design_pattern/src/modele/Equipe.java b/design_pattern/src/modele/Equipe.java
index b17337a..36cec3b 100644
--- a/design_pattern/src/modele/Equipe.java
+++ b/design_pattern/src/modele/Equipe.java
@@ -34,6 +34,9 @@ public class Equipe implements Groupe{
     public void supprimer(Personnage personnage){
         this.equipe.remove(personnage);
     }
+    public void supprimerLast(){
+        this.equipe.remove(equipe.size()-1);
+    }
 
     public void ajouter(Equipe equipe){
         this.equipe.addAll(equipe.getEquipe());
-- 
GitLab