diff --git a/design_pattern/src/modele/DPCommand/Invoker.java b/design_pattern/src/modele/DPCommand/Invoker.java index ba3d8d88a7b21b0a829a99fbe040e720c9ce3a55..576f61c34d4b86e59a86224abb8a9237c4e2bea6 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 1eaa11c358724e8e6500c803eac26446b6641cac..904b8645bf4a38d0cb5930d3f00e8f38e16ebcda 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 b17337aac5271aef3d75d5228a76292956ca97da..36cec3b39c26b1c31186ea8196e05da26c1ef10a 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());