From 8963221080f93f1ab42396d38b1b41f05dc0aaa0 Mon Sep 17 00:00:00 2001 From: Kruss Date: Tue, 12 May 2020 15:30:04 +0200 Subject: [PATCH] lancer des --- src/ihm/Die.java | 40 +++++ src/ihm/DieImages.java | 36 ++++ .../controller/JouerSonTour4Controller.java | 20 --- src/ihm/controller/LancerDes.java | 154 +++++++++++++----- src/ihm/controller/PlateauController.java | 16 +- src/ihm/ressources/img/des1.png | Bin 0 -> 3545 bytes src/ihm/ressources/img/des2.png | Bin 0 -> 3043 bytes src/ihm/ressources/img/des3.png | Bin 0 -> 3862 bytes src/ihm/ressources/img/des4.png | Bin 0 -> 6856 bytes src/ihm/ressources/img/des5.png | Bin 0 -> 5274 bytes src/ihm/ressources/img/des6.png | Bin 0 -> 6131 bytes src/main/Contexte.java | 6 +- src/main/GestionnaireJeu.java | 32 +++- src/main/Joueur.java | 4 + src/main/Plateau.java | 7 +- 15 files changed, 246 insertions(+), 69 deletions(-) create mode 100644 src/ihm/Die.java create mode 100644 src/ihm/DieImages.java delete mode 100644 src/ihm/controller/JouerSonTour4Controller.java create mode 100644 src/ihm/ressources/img/des1.png create mode 100644 src/ihm/ressources/img/des2.png create mode 100644 src/ihm/ressources/img/des3.png create mode 100644 src/ihm/ressources/img/des4.png create mode 100644 src/ihm/ressources/img/des5.png create mode 100644 src/ihm/ressources/img/des6.png diff --git a/src/ihm/Die.java b/src/ihm/Die.java new file mode 100644 index 0000000..00d69f5 --- /dev/null +++ b/src/ihm/Die.java @@ -0,0 +1,40 @@ +package ihm; + +//adaptation du code a la source : https://stackoverflow.com/questions/50021161/java-how-to-update-dice-image-when-button-clicked-and-equal-to-number-given +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; + +/** + * + * @author blj0011 + */ +public class Die { + ImageView dieFace; + Image[] images; + int currentFace; + + public Die(Image[] images) { + this.images = images; + dieFace = new ImageView(this.images[0]);// set default to image 0 + } + + public Die(Image[] images, int dieFaceValue) { + // Need to catch for values less than 1 and greater than 6! + this.images = images; + dieFace = new ImageView(this.images[dieFaceValue - 1]); + } + + public ImageView getdieFace() { + return dieFace; + } + + public int getCurrentFace() { + return currentFace; + } + + public void setDieFace(int dieFaceValue) { + // Need to catch for values less than 1 and greater than 6! + dieFace.setImage(this.images[dieFaceValue - 1]); + currentFace = dieFaceValue; + } +} \ No newline at end of file diff --git a/src/ihm/DieImages.java b/src/ihm/DieImages.java new file mode 100644 index 0000000..0839ecf --- /dev/null +++ b/src/ihm/DieImages.java @@ -0,0 +1,36 @@ +package ihm; + +//adaptation du code a la source : https://stackoverflow.com/questions/50021161/java-how-to-update-dice-image-when-button-clicked-and-equal-to-number-given + +import javafx.scene.image.Image; + +/** + * + * @author blj0011 + */ +public class DieImages { + final Image die1 = new Image(getClass().getResourceAsStream("ressources/img/des1.png")); + final Image die2 = new Image(getClass().getResourceAsStream("ressources/img/des2.png")); + final Image die3 = new Image(getClass().getResourceAsStream("ressources/img/des3.png")); + final Image die4 = new Image(getClass().getResourceAsStream("ressources/img/des4.png")); + final Image die5 = new Image(getClass().getResourceAsStream("ressources/img/des5.png")); + final Image die6 = new Image(getClass().getResourceAsStream("ressources/img/des6.png")); + + final Image[] images = new Image[6]; + + public DieImages() { + images[0] = die1; + images[1] = die2; + images[2] = die3; + images[3] = die4; + images[4] = die5; + images[5] = die6; + for (int i = 0; i < images.length; i++) { + + } + } + + public Image[] getImages() { + return images; + } +} \ No newline at end of file diff --git a/src/ihm/controller/JouerSonTour4Controller.java b/src/ihm/controller/JouerSonTour4Controller.java deleted file mode 100644 index a9d8064..0000000 --- a/src/ihm/controller/JouerSonTour4Controller.java +++ /dev/null @@ -1,20 +0,0 @@ -package ihm.controller; - -import java.net.URL; -import java.util.ResourceBundle; - -import javafx.fxml.FXML; -import javafx.scene.control.Label; -import main.Joueur; - -public class JouerSonTour4Controller extends LancerDes{ - @FXML private Label defenseur; - - private Joueur j; - - @Override - public void initialize(URL arg0, ResourceBundle arg1) { - super.initialize(arg0, arg1); - //defenseur.setText(j.getNom()); - } -} diff --git a/src/ihm/controller/LancerDes.java b/src/ihm/controller/LancerDes.java index 5a99d58..39601fb 100644 --- a/src/ihm/controller/LancerDes.java +++ b/src/ihm/controller/LancerDes.java @@ -1,57 +1,125 @@ package ihm.controller; -import java.net.URL; -import java.util.ResourceBundle; +import java.util.Random; -import javafx.fxml.FXML; -import javafx.fxml.Initializable; +import ihm.Die; +import ihm.DieImages; +import javafx.animation.KeyFrame; +import javafx.animation.Timeline; +import javafx.event.ActionEvent; +import javafx.geometry.Pos; import javafx.scene.control.Button; -import javafx.scene.control.Label; +import javafx.scene.image.ImageView; +import javafx.scene.layout.HBox; +import javafx.scene.layout.StackPane; +import javafx.scene.layout.VBox; +import javafx.scene.paint.Color; +import javafx.scene.text.Font; +import javafx.scene.text.Text; +import javafx.util.Duration; +import main.Contexte; +import main.GestionnaireJeu; -public class LancerDes implements Initializable{ - @FXML private Label d6; - @FXML private Label d4; - @FXML private Button btnStop; - @FXML private Button btnLancer; +public class LancerDes { + private int resultat; + private Contexte contexte; + public LancerDes(Contexte c){ + contexte = c; + } - private int[] valeurD6 = {1, 2, 3, 4, 5, 6}; - private int[] valeurD4 = {1, 2, 3, 4}; + public VBox initLancer() { + switch (contexte) { + case LANCER_DES_4: + return initLancerD4(); + case LANCER_DES_6: + return initLancerD6(); + default : + return null; + } + } - private int resultatD6; - private int resultatD4; - - private boolean lancement = true; - @Override - public void initialize(URL arg0, ResourceBundle arg1) { - // TODO Auto-generated method stub - btnStop.setVisible(false); - - btnLancer.setOnAction(e -> { - try { - btnLancer.setVisible(false); - btnStop.setVisible(true); - lancement(); - } catch (InterruptedException e1) { - e1.printStackTrace(); - } + private VBox initLancerD4() { + DieImages images = new DieImages(); + Die die = new Die(images.getImages()); + ImageView stackpane = die.getdieFace(); + stackpane.setFitHeight(100); + stackpane.setFitWidth(100); + Button btn = new Button(); + Text txt = new Text("Lancez le dés pour attaquer"); + txt.setFont(Font.font(null, null, null, 12)); + txt.setFill(Color.WHITE); + btn.setText("Lancer dés"); + btn.setOnAction((ActionEvent event) -> { + btn.setDisable(true);// Disable Button + Random random = new Random(); + Timeline timeline = new Timeline(new KeyFrame(Duration.seconds(.3), (actionEvent) -> { + int tempRandom = random.nextInt(4) + 1; + die.setDieFace(tempRandom); + })); + + timeline.setCycleCount(random.nextInt(20) + 1); + timeline.play(); + timeline.setOnFinished(actionEvent -> { + int res = die.getCurrentFace(); + txt.setText("Vous avez obtenu "+res+"!"); + resultat = res; + GestionnaireJeu.notifyPlateau(); + }); }); - btnStop.setOnAction(e -> { - //à remplir avec les valeurs donné par le gestionnaire de jeux - lancement = false; - d6.setText(Integer.toString(resultatD6)); - d4.setText(Integer.toString(resultatD4)); - }); + HBox des = new HBox(stackpane); + des.setAlignment(Pos.CENTER); + VBox root = new VBox(txt,des, new StackPane(btn)); + root.setAlignment(Pos.CENTER); + root.setSpacing(20); + return root; } - public void lancement() throws InterruptedException { - /*int i=0; - while (lancement) { - d6.setText(Integer.toString(valeurD6[i%6])); - d4.setText(Integer.toString(valeurD4[i%4])); - i++; - //Thread.sleep(500); - }*/ + private VBox initLancerD6() { + DieImages images = new DieImages(); + Die die = new Die(images.getImages()); + Die die2 = new Die(images.getImages()); + ImageView stackpane = die.getdieFace(); + ImageView stackpane2 = die2.getdieFace(); + stackpane.setFitHeight(100); + stackpane2.setFitHeight(100); + stackpane.setFitWidth(100); + stackpane2.setFitWidth(100); + Button btn = new Button(); + Text txt = new Text("Lancez les dés pour vous deplacer"); + txt.setFont(Font.font(null, null, null, 12)); + txt.setFill(Color.WHITE); + btn.setText("Lancer dés"); + btn.setOnAction((ActionEvent event) -> { + btn.setDisable(true);// Disable Button + Random random = new Random(); + Timeline timeline = new Timeline(new KeyFrame(Duration.seconds(.3), (actionEvent) -> { + int tempRandom = random.nextInt(6) + 1; + int tempRandom2 = random.nextInt(6) + 1; + die.setDieFace(tempRandom); + die2.setDieFace(tempRandom2); + })); + + timeline.setCycleCount(random.nextInt(20) + 1); + timeline.play(); + timeline.setOnFinished(actionEvent -> { + int res = die.getCurrentFace()+die2.getCurrentFace(); + txt.setText("Vous avez obtenu "+res+"!"); + resultat = res; + GestionnaireJeu.notifyPlateau(); + }); + }); + + HBox des = new HBox(stackpane, stackpane2); + des.setAlignment(Pos.CENTER); + VBox root = new VBox(txt,des, new StackPane(btn)); + root.setAlignment(Pos.CENTER); + root.setSpacing(20); + return root; + } + + public int getResult() { + return resultat; } } diff --git a/src/ihm/controller/PlateauController.java b/src/ihm/controller/PlateauController.java index 4e61fde..7ab939c 100644 --- a/src/ihm/controller/PlateauController.java +++ b/src/ihm/controller/PlateauController.java @@ -53,6 +53,7 @@ public class PlateauController implements Initializable { private ChoisirBoolean cb; private ChoisirEquipement ce; private ChoisirJoueur cj; + private LancerDes ld; @@ -472,11 +473,20 @@ public class PlateauController implements Initializable { Pane pane = fxmlLoader.load(); rootPane.getChildren().setAll(pane); } - - + public Integer getChoixLancerDes(Joueur joueur) { + JoueurIHM jihm = getJoueurIHM(joueur); + int result = this.ld.getResult(); + this.ld = null; + jihm.getZoneJoueur().getChildren().setAll(); + return result; + } - + public void afficherLancerDes(Joueur j, Contexte c) throws IOException { + this.ld=new LancerDes(c); + JoueurIHM jihm = getJoueurIHM(j); + jihm.setZoneJoueur(ld.initLancer()); + } } \ No newline at end of file diff --git a/src/ihm/ressources/img/des1.png b/src/ihm/ressources/img/des1.png new file mode 100644 index 0000000000000000000000000000000000000000..bb88d34e7d1dd6181dc0bf99008eb3610510aad4 GIT binary patch literal 3545 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 T$ufCs8Nl-DO|xnfSi-*n{HpkB literal 0 HcmV?d00001 diff --git a/src/ihm/ressources/img/des2.png b/src/ihm/ressources/img/des2.png new file mode 100644 index 0000000000000000000000000000000000000000..c65025f07d5af199f44f9bfff43ae82b12956aef GIT binary patch literal 3043 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 GNB3!-)a literal 0 HcmV?d00001 diff --git a/src/ihm/ressources/img/des4.png b/src/ihm/ressources/img/des4.png new file mode 100644 index 0000000000000000000000000000000000000000..d8006e6e0e9e00ac6fce1afabd12fa20a364f7a8 GIT binary patch literal 6856 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 H7g7HMjMSbK literal 0 HcmV?d00001 diff --git a/src/ihm/ressources/img/des5.png b/src/ihm/ressources/img/des5.png new file mode 100644 index 0000000000000000000000000000000000000000..52f4475770f6473dd1076c03fa40cb43651b8922 GIT binary patch literal 5274 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 literal 0 HcmV?d00001 diff --git a/src/ihm/ressources/img/des6.png b/src/ihm/ressources/img/des6.png new file mode 100644 index 0000000000000000000000000000000000000000..77513e3963b62a13fc70b7cfbb7307789cecee0e GIT binary patch literal 6131 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 literal 0 HcmV?d00001 diff --git a/src/main/Contexte.java b/src/main/Contexte.java index d3cda40..9fe0354 100644 --- a/src/main/Contexte.java +++ b/src/main/Contexte.java @@ -5,6 +5,10 @@ public enum Contexte { ATTAQUER, VOLER_EQUIP, EFFET_NEGATIF_SUR_AUTRES, - EFFET_POSITIF_SUR_AUTRES, ACTIVER_EFFET_LIEU, EFFET_BOB + EFFET_POSITIF_SUR_AUTRES, + ACTIVER_EFFET_LIEU, + EFFET_BOB, + LANCER_DES_4, + LANCER_DES_6 } diff --git a/src/main/GestionnaireJeu.java b/src/main/GestionnaireJeu.java index ad741b6..36db0ce 100644 --- a/src/main/GestionnaireJeu.java +++ b/src/main/GestionnaireJeu.java @@ -166,7 +166,37 @@ public class GestionnaireJeu { }); this.waitPlateau(); - } + } + + public int jouerDes(Joueur joueur, Contexte c) { + Platform.runLater(() -> { + try { + pc.afficherLancerDes(joueur, c); + } catch (IOException e) { + e.printStackTrace(); + } + }); + + this.waitPlateau(); + + final FutureTask query = new FutureTask(new Callable() { + @Override + public Integer call() throws Exception { + return pc.getChoixLancerDes(joueur); + } + }); + + Platform.runLater(query); + + try { + return query.get(); + } catch (InterruptedException | ExecutionException e) { + + e.printStackTrace(); + } + + return 1; + } public Joueur choisirJoueur(Joueur joueur, List joueurs, Contexte contexte) { diff --git a/src/main/Joueur.java b/src/main/Joueur.java index 1fa13a9..3802a7f 100644 --- a/src/main/Joueur.java +++ b/src/main/Joueur.java @@ -246,6 +246,10 @@ public class Joueur { return this.plateau.choisir(this, activerEffetLieu); } + public int lancerDes(Contexte typeLancer) { + return this.plateau.lancerDes(this, typeLancer); + } + public Object choisir(List list,Class cls) { return this.plateau.choisir(this,list, cls); } diff --git a/src/main/Plateau.java b/src/main/Plateau.java index e6faf79..8f0109b 100644 --- a/src/main/Plateau.java +++ b/src/main/Plateau.java @@ -266,8 +266,9 @@ public class Plateau extends Thread{ System.out.println(joueurs.size()); Joueur currentJoueur = this.joueurs.get(i % nbJoueurs); - currentJoueur.choisir(joueurs, Joueur.class); + int lancer = currentJoueur.lancerDes(Contexte.LANCER_DES_4); System.out.println("\n\n\n\n\n"); + System.out.println(lancer); System.out.println("Au tour de "+currentJoueur.getNom()); System.out.println("Lancement des dés."); deplacer(currentJoueur); @@ -477,4 +478,8 @@ public class Plateau extends Thread{ gj.retirerEquipement(joueur,e); } + + public int lancerDes(Joueur joueur, Contexte typeLancer) { + return gj.jouerDes(joueur, typeLancer); + } }