Factoriser PlateauController

This commit is contained in:
Paul Gross 2020-04-30 11:41:15 +02:00
parent 8042514def
commit b6932c530e
16 changed files with 69 additions and 87 deletions

BIN
lib/javafx-swt.jar Normal file

Binary file not shown.

BIN
lib/javafx.base.jar Normal file

Binary file not shown.

BIN
lib/javafx.controls.jar Normal file

Binary file not shown.

BIN
lib/javafx.fxml.jar Normal file

Binary file not shown.

BIN
lib/javafx.graphics.jar Normal file

Binary file not shown.

BIN
lib/javafx.media.jar Normal file

Binary file not shown.

3
lib/javafx.properties Normal file
View File

@ -0,0 +1,3 @@
javafx.version=11.0.2
javafx.runtime.version=11.0.2+1
javafx.runtime.build=1

BIN
lib/javafx.swing.jar Normal file

Binary file not shown.

BIN
lib/javafx.web.jar Normal file

Binary file not shown.

View File

@ -1,60 +0,0 @@
package ihm;
/**
* @author https://www.programcreek.com/java-api-examples/?code=AlmasB%2FFXTutorials%2FFXTutorials-master%2Fsrc%2Fcom%2Falmasb%2Ftutorial5%2FDice.java
*
*/
import javafx.animation.RotateTransition;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.geometry.Pos;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.scene.text.Text;
import javafx.util.Duration;
public class Dice extends StackPane {
public static int MAX_VALUE = 6;
public static final int MIN_VALUE = 1;
public final SimpleIntegerProperty valueProperty = new SimpleIntegerProperty();
int i = 0;
public Dice(int valeurMax) {
MAX_VALUE = valeurMax;
Rectangle rect = new Rectangle(50, 50);
Text text = new Text();
text.setFill(Color.WHITE);
text.textProperty().bind(valueProperty.asString());
this.setAlignment(Pos.CENTER);
getChildren().addAll(rect, text);
this.setOnMouseClicked(event -> roll());
}
public void roll() {
RotateTransition rt = new RotateTransition(Duration.seconds(0.5), this);
rt.setFromAngle(0);
rt.setToAngle(360);
int cycles = 2000;
rt.setOnFinished(event -> {
valueProperty.set((int)(Math.random() * (MAX_VALUE - MIN_VALUE + 1)) + MIN_VALUE);
if(cycles < i) {
rt.play();
i++;
}
});
rt.play();
}
}

View File

@ -15,7 +15,7 @@ public class Main extends Application {
public void start(Stage primaryStage) throws Exception { public void start(Stage primaryStage) throws Exception {
System.out.println("Lancement de l'application"); System.out.println("Lancement de l'application");
final URL fxmlURL = getClass().getResource("ressources/parametre.fxml"); // "ressources/Jouer_tour(1)lancer_des.fxml" final URL fxmlURL = getClass().getResource("ressources/Menu.fxml"); // "ressources/Jouer_tour(1)lancer_des.fxml"
final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.ENGLISH); final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.ENGLISH);
final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle); final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle);
Pane root = fxmlLoader.load(); Pane root = fxmlLoader.load();

View File

@ -4,6 +4,7 @@ package ihm.controller;
import java.io.IOException; import java.io.IOException;
import java.net.URL; import java.net.URL;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
@ -22,10 +23,11 @@ import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.HBox; import javafx.scene.layout.HBox;
import javafx.scene.layout.Pane; import javafx.scene.layout.Pane;
import javafx.scene.layout.VBox; import javafx.scene.layout.VBox;
import main.GestionnaireJeu;
import main.Joueur; import main.Joueur;
import main.View;
public class PlateauController implements Initializable { public class PlateauController implements Initializable {
private List<Joueur> listJoueur = new ArrayList<Joueur>(); private List<Joueur> listJoueur = new ArrayList<Joueur>();
private List<VBox> vboxJoueur = new ArrayList<VBox>(); private List<VBox> vboxJoueur = new ArrayList<VBox>();
private List<HBox> hboxJoueur = new ArrayList<HBox>(); private List<HBox> hboxJoueur = new ArrayList<HBox>();
@ -33,7 +35,10 @@ public class PlateauController implements Initializable {
private List<ImageView> cartePerso = new ArrayList<ImageView>(); private List<ImageView> cartePerso = new ArrayList<ImageView>();
private List<Label> nomJoueur = new ArrayList<Label>(); private List<Label> nomJoueur = new ArrayList<Label>();
private List<AnchorPane> tour = new ArrayList<AnchorPane>(); private List<AnchorPane> tour = new ArrayList<AnchorPane>();
private Map<Joueur,Pane> joueursPane;
@FXML private AnchorPane rootPane;
@FXML private HBox joueur1; @FXML private HBox joueur1;
@FXML private HBox joueur2; @FXML private HBox joueur2;
@FXML private HBox joueur3; @FXML private HBox joueur3;
@ -55,11 +60,22 @@ public class PlateauController implements Initializable {
System.out.println("Création du plateau ..."); System.out.println("Création du plateau ...");
//initialisation des attributs des joueurs //initialisation des attributs des joueurs
GestionnaireJeu gj = GestionnaireJeu.getGestionnaireJeu();
this.joueursPane = new HashMap<Joueur, Pane>();
Map<Integer, Joueur> map = gj.getMapJoueurs();
for(int i : map.keySet()) {
this.joueursPane.put(map.get(i), getPaneJoueur(i));
}
System.out.println(joueursPane);
this.hboxJoueur.add(joueur1); this.hboxJoueur.add(joueur1);
this.hboxJoueur.add(joueur2); this.hboxJoueur.add(joueur2);
this.hboxJoueur.add(joueur3); this.hboxJoueur.add(joueur3);
this.hboxJoueur.add(joueur4); this.hboxJoueur.add(joueur4);
for (HBox hbox : hboxJoueur) { for (HBox hbox : hboxJoueur) {
tour.add((AnchorPane) hbox.getChildren().get(0)); tour.add((AnchorPane) hbox.getChildren().get(0));
VBox carte = (VBox) hbox.getChildren().get(1); VBox carte = (VBox) hbox.getChildren().get(1);
@ -98,8 +114,7 @@ public class PlateauController implements Initializable {
b.setOnMouseClicked(e -> {try {consulterSaCarte(compteur);} catch (IOException e1) {e1.printStackTrace();}}); b.setOnMouseClicked(e -> {try {consulterSaCarte(compteur);} catch (IOException e1) {e1.printStackTrace();}});
j++; j++;
} }
try { try {
final URL fxmlURL = getClass().getResource("../ressources/Jouer_tour(1)lancer_des.fxml"); final URL fxmlURL = getClass().getResource("../ressources/Jouer_tour(1)lancer_des.fxml");
final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.ENGLISH); final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.ENGLISH);
@ -111,8 +126,18 @@ public class PlateauController implements Initializable {
// TODO Auto-generated catch block // TODO Auto-generated catch block
e.printStackTrace(); e.printStackTrace();
} }
}
listJoueur = View.getJoueurs();
private Pane getPaneJoueur(int i) {
Pane parent = getPaneCoupleJoueurs(i);
int position = i%2;
return (Pane) parent.getChildren().get(position);
}
private Pane getPaneCoupleJoueurs(int i) {
int position = (i%8)/2;
Pane parent = (Pane) rootPane.getChildren().get(0);
return (Pane) parent.getChildren().get(position+1);
} }
/** /**

View File

@ -115,14 +115,18 @@ public class PlayersController implements Initializable{
// Creer une configuration // Creer une configuration
//View.applyConfiguration(new Configuration(joueurs, nbJoueursV, nbJoueursH)); //View.applyConfiguration(new Configuration(joueurs, nbJoueursV, nbJoueursH));
GestionnaireJeu gj = GestionnaireJeu.getGestionnaireJeu();
gj.setConfiguration(new Configuration(this.joueurs));
final URL fxmlURL = getClass().getResource("../ressources/Plateau.fxml"); final URL fxmlURL = getClass().getResource("../ressources/Plateau.fxml");
final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRENCH); final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRENCH);
final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle); final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle);
Parent root = fxmlLoader.load(); Parent root = fxmlLoader.load();
PlateauController pc = fxmlLoader.getController(); PlateauController pc = fxmlLoader.getController();
GestionnaireJeu.setPlateauController(pc);
GestionnaireJeu.setConfiguration(new Configuration(this.joueurs)); gj.setPlateauController(pc);
Map<Integer, Joueur> map = GestionnaireJeu.getJoueursMap(new Configuration(this.joueurs));
Map<Integer, Joueur> map = gj.getMapJoueurs();
pc.showInformation(map); pc.showInformation(map);

View File

@ -12,7 +12,7 @@
<?import javafx.scene.layout.VBox?> <?import javafx.scene.layout.VBox?>
<?import javafx.scene.shape.Circle?> <?import javafx.scene.shape.Circle?>
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="1080.0" prefWidth="1920.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ihm.controller.PlateauController"> <AnchorPane fx:id="rootPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="1080.0" prefWidth="1920.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ihm.controller.PlateauController">
<children> <children>
<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="800.0" prefWidth="1280.0" styleClass="background" stylesheets="@style/plateau.css" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> <BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="800.0" prefWidth="1280.0" styleClass="background" stylesheets="@style/plateau.css" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<top> <top>

View File

@ -28,7 +28,7 @@ public class GestionnaireEquipements {
this.j.addToStat(Joueur.PLAYER_NB_EQUIPEMENTS, -1); this.j.addToStat(Joueur.PLAYER_NB_EQUIPEMENTS, -1);
} }
} }
public List<Equipement> getEquipements() { public List<Equipement> getEquipements() {
return equipements; return equipements;
} }

View File

@ -14,8 +14,10 @@ public class GestionnaireJeu {
private View view; private View view;
private static Plateau plateau; private Map<Integer, Joueur> mapJoueurs;
private static PlateauController pc;
private Plateau plateau;
private PlateauController pc;
private GestionnaireJeu() {} private GestionnaireJeu() {}
@ -31,8 +33,8 @@ public class GestionnaireJeu {
return plateau; return plateau;
} }
public static void lancerPartie() { public void lancerPartie() {
plateau.jeu(); this.plateau.jeu();
} }
public void jouer(Configuration c) { public void jouer(Configuration c) {
@ -72,25 +74,33 @@ public class GestionnaireJeu {
pc.rollDice(joueur,typeDice,rolls); pc.rollDice(joueur,typeDice,rolls);
} }
public static void setConfiguration(Configuration c) { public void setConfiguration(Configuration c) {
Map<Integer, Joueur> mapJoueurs = convertConfiguration(c);
this.mapJoueurs = mapJoueurs;
List<Joueur> joueurs = new ArrayList<Joueur>(); List<Joueur> joueurs = new ArrayList();
for(Joueur j : c.toJoueurs().values()) { for(Joueur j : mapJoueurs.values()) {
joueurs.add(j); joueurs.add(j);
} }
plateau = new Plateau(joueurs); this.plateau = new Plateau(joueurs);
}
public static Map<Integer, Joueur> getJoueursMap(Configuration c) {
return c.toJoueurs();
} }
public static void setPlateauController(PlateauController pc2) { public Map<Integer, Joueur> convertConfiguration(Configuration c) {
pc = pc2;
return c.toJoueurs();
}
public Map<Integer, Joueur> getMapJoueurs() {
return this.mapJoueurs;
}
public void setPlateauController(PlateauController pc2) {
this.pc = pc2;
} }
} }