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