From 848954ab2519d9aa2e0612db2224f02b2927ac4e Mon Sep 17 00:00:00 2001 From: Justine Yannis Date: Sun, 6 Nov 2022 10:39:23 +0100 Subject: [PATCH] Interface Jeu --- projetAgile/Makefile | 10 +++++++--- .../src/fr/iutfbleau/projetAgile/Jeu.java | 19 +++++++++++++++++++ .../iutfbleau/projetAgile/Menu/View/Menu.java | 11 +++++++---- ...ntPartie.java => LancementPuissance4.java} | 7 +++++-- 4 files changed, 38 insertions(+), 9 deletions(-) create mode 100644 projetAgile/src/fr/iutfbleau/projetAgile/Jeu.java rename projetAgile/src/fr/iutfbleau/projetAgile/Puissance4/{LancementPartie.java => LancementPuissance4.java} (90%) diff --git a/projetAgile/Makefile b/projetAgile/Makefile index ec84083..27f9553 100644 --- a/projetAgile/Makefile +++ b/projetAgile/Makefile @@ -129,7 +129,7 @@ build/$(PACKAGE_PATH)/Menu/View/Menu.class : src/$(PACKAGE_PATH)/Menu/View/Menu. build/$(PACKAGE_PATH)/Menu/View/BoutonsMenu.class \ build/$(PACKAGE_PATH)/Menu/Controleur/ObservateurAccueil.class \ build/$(PACKAGE_PATH)/Menu/Controller/ObservateurFenetre.class \ - build/$(PACKAGE_PATH)/Puissance4/LancementPartie.class + build/$(PACKAGE_PATH)/Puissance4/LancementPuissance4.class @javac $(@JAVAC_OPT) $< @@ -138,13 +138,17 @@ build/$(PACKAGE_PATH)/Main.class : src/$(PACKAGE_PATH)/Main.java \ @echo "Classes compiled" @javac $(@JAVAC_OPT) $< -build/$(PACKAGE_PATH)/Puissance4/LancementPartie.class : src/$(PACKAGE_PATH)/Puissance4/LancementPartie.java \ +build/$(PACKAGE_PATH)/Puissance4/LancementPuissance4.class : src/$(PACKAGE_PATH)/Puissance4/LancementPuissance4.java \ + build/$(PACKAGE_PATH)/Jeu.class \ build/$(PACKAGE_PATH)/Puissance4/Controller/Puissance4Controller.class \ build/$(PACKAGE_PATH)/Puissance4/View/ColorChooserDialog.class \ build/$(PACKAGE_PATH)/Puissance4/View/Grille.class \ build/$(PACKAGE_PATH)/Puissance4/Model/GrilleModel.class @javac $(@JAVAC_OPT) $< +build/$(PACKAGE_PATH)/Jeu.class : src/$(PACKAGE_PATH)/Jeu.java + @javac $(@JAVAC_OPT) $< + # BUT FACTICES: .PHONY: clear doc run @@ -162,6 +166,6 @@ doc : run: ArgileGames.jar @java -jar ArgileGames.jar -clear : +clean : @rm -rf build/* diff --git a/projetAgile/src/fr/iutfbleau/projetAgile/Jeu.java b/projetAgile/src/fr/iutfbleau/projetAgile/Jeu.java new file mode 100644 index 0000000..a674678 --- /dev/null +++ b/projetAgile/src/fr/iutfbleau/projetAgile/Jeu.java @@ -0,0 +1,19 @@ +package fr.iutfbleau.projetAgile; + +import java.awt.event.ActionListener; + +import javax.swing.JPanel; + +public interface Jeu { + /** + * Ajoute un ActionListener pour un bouton "accueil" pour revenir au menu + * @param l l'ActionListener à ajouter + */ + public void accueilButton(ActionListener l); + + /** + * Retourne le panneau du jeu (la vue) + * @return JPanel qui contient le jeu + */ + public JPanel getPanel(); +} diff --git a/projetAgile/src/fr/iutfbleau/projetAgile/Menu/View/Menu.java b/projetAgile/src/fr/iutfbleau/projetAgile/Menu/View/Menu.java index 6abc321..891cf48 100644 --- a/projetAgile/src/fr/iutfbleau/projetAgile/Menu/View/Menu.java +++ b/projetAgile/src/fr/iutfbleau/projetAgile/Menu/View/Menu.java @@ -4,8 +4,10 @@ import java.awt.*; import javax.swing.JPanel; import javax.swing.JFrame; import javax.swing.JLabel; + +import fr.iutfbleau.projetAgile.Jeu; import fr.iutfbleau.projetAgile.Menu.Controller.*; -import fr.iutfbleau.projetAgile.Puissance4.LancementPartie; +import fr.iutfbleau.projetAgile.Puissance4.LancementPuissance4; import java.awt.event.WindowListener; public abstract class Menu{ @@ -135,15 +137,16 @@ public abstract class Menu{ if(g==Menu.MENU) Menu.cd.show(Menu.frame.getContentPane(), g); else{ + Jeu jeu = null; if(g==Menu.PUISSANCE_4){ try{ - LancementPartie lm=new LancementPartie(Menu.frame); - lm.accueilButton(new ObservateurAccueil(lm.getPanel())); - Menu.frame.add(lm.getPanel(), Menu.JEU); + jeu = new LancementPuissance4(Menu.frame); }catch(Exception e){ return; } } + jeu.accueilButton(new ObservateurAccueil(jeu.getPanel())); + Menu.frame.add(jeu.getPanel(), Menu.JEU); Menu.cd.show(Menu.frame.getContentPane(), Menu.JEU); } } diff --git a/projetAgile/src/fr/iutfbleau/projetAgile/Puissance4/LancementPartie.java b/projetAgile/src/fr/iutfbleau/projetAgile/Puissance4/LancementPuissance4.java similarity index 90% rename from projetAgile/src/fr/iutfbleau/projetAgile/Puissance4/LancementPartie.java rename to projetAgile/src/fr/iutfbleau/projetAgile/Puissance4/LancementPuissance4.java index dc78637..e8a918e 100644 --- a/projetAgile/src/fr/iutfbleau/projetAgile/Puissance4/LancementPartie.java +++ b/projetAgile/src/fr/iutfbleau/projetAgile/Puissance4/LancementPuissance4.java @@ -1,5 +1,6 @@ package fr.iutfbleau.projetAgile.Puissance4; +import fr.iutfbleau.projetAgile.Jeu; import fr.iutfbleau.projetAgile.Puissance4.Controller.Puissance4Controller; import fr.iutfbleau.projetAgile.Puissance4.View.Grille; import fr.iutfbleau.projetAgile.Puissance4.View.ColorChooserDialog; @@ -12,7 +13,7 @@ import javax.swing.JPanel; /** * Classe qui initialise une partie de Puissance 4 */ -public class LancementPartie { +public class LancementPuissance4 implements Jeu{ private Puissance4Controller P4; /** @@ -20,7 +21,7 @@ public class LancementPartie { * @param fenetre La fenetre dans laquelle le panneau sera ajouté. Peut-être null mais la fenetre de dialogue ne sera pas centré avec la fenetre du jeu * @throws CancellationException Renvoie une exception si les utilisateurs annule le lancement de la partie */ - public LancementPartie(JFrame fenetre) throws CancellationException{ + public LancementPuissance4(JFrame fenetre) throws CancellationException{ String J1 = null; String J2 = null; ColorChooserDialog chooser = new ColorChooserDialog(fenetre, true); @@ -37,6 +38,7 @@ public class LancementPartie { this.P4.initPanel(); } + @Override /** * Ajoute un ActionListener pour le bouton "accueil" du panneau du Puissance 4 * @param l l'ActionListener à ajouter @@ -45,6 +47,7 @@ public class LancementPartie { this.P4.accueilButton(l); } + @Override /** * Retourne le panneau du jeu (la vue) * @return JPanel qui contient le Puissance 4