Factoriser PlateauController
This commit is contained in:
parent
8042514def
commit
b6932c530e
BIN
lib/javafx-swt.jar
Normal file
BIN
lib/javafx-swt.jar
Normal file
Binary file not shown.
BIN
lib/javafx.base.jar
Normal file
BIN
lib/javafx.base.jar
Normal file
Binary file not shown.
BIN
lib/javafx.controls.jar
Normal file
BIN
lib/javafx.controls.jar
Normal file
Binary file not shown.
BIN
lib/javafx.fxml.jar
Normal file
BIN
lib/javafx.fxml.jar
Normal file
Binary file not shown.
BIN
lib/javafx.graphics.jar
Normal file
BIN
lib/javafx.graphics.jar
Normal file
Binary file not shown.
BIN
lib/javafx.media.jar
Normal file
BIN
lib/javafx.media.jar
Normal file
Binary file not shown.
3
lib/javafx.properties
Normal file
3
lib/javafx.properties
Normal 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
BIN
lib/javafx.swing.jar
Normal file
Binary file not shown.
BIN
lib/javafx.web.jar
Normal file
BIN
lib/javafx.web.jar
Normal file
Binary file not shown.
@ -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();
|
||||
}
|
||||
}
|
@ -15,7 +15,7 @@ public class Main extends Application {
|
||||
public void start(Stage primaryStage) throws Exception {
|
||||
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 FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle);
|
||||
Pane root = fxmlLoader.load();
|
||||
|
@ -4,6 +4,7 @@ package ihm.controller;
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
@ -22,10 +23,11 @@ import javafx.scene.layout.AnchorPane;
|
||||
import javafx.scene.layout.HBox;
|
||||
import javafx.scene.layout.Pane;
|
||||
import javafx.scene.layout.VBox;
|
||||
import main.GestionnaireJeu;
|
||||
import main.Joueur;
|
||||
import main.View;
|
||||
|
||||
public class PlateauController implements Initializable {
|
||||
|
||||
private List<Joueur> listJoueur = new ArrayList<Joueur>();
|
||||
private List<VBox> vboxJoueur = new ArrayList<VBox>();
|
||||
private List<HBox> hboxJoueur = new ArrayList<HBox>();
|
||||
@ -34,6 +36,9 @@ public class PlateauController implements Initializable {
|
||||
private List<Label> nomJoueur = new ArrayList<Label>();
|
||||
private List<AnchorPane> tour = new ArrayList<AnchorPane>();
|
||||
|
||||
private Map<Joueur,Pane> joueursPane;
|
||||
|
||||
@FXML private AnchorPane rootPane;
|
||||
@FXML private HBox joueur1;
|
||||
@FXML private HBox joueur2;
|
||||
@FXML private HBox joueur3;
|
||||
@ -55,6 +60,17 @@ public class PlateauController implements Initializable {
|
||||
System.out.println("Création du plateau ...");
|
||||
//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(joueur2);
|
||||
this.hboxJoueur.add(joueur3);
|
||||
@ -99,7 +115,6 @@ public class PlateauController implements Initializable {
|
||||
j++;
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
final URL fxmlURL = getClass().getResource("../ressources/Jouer_tour(1)lancer_des.fxml");
|
||||
final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.ENGLISH);
|
||||
@ -111,8 +126,18 @@ public class PlateauController implements Initializable {
|
||||
// TODO Auto-generated catch block
|
||||
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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -115,14 +115,18 @@ public class PlayersController implements Initializable{
|
||||
// Creer une configuration
|
||||
//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 ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRENCH);
|
||||
final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle);
|
||||
Parent root = fxmlLoader.load();
|
||||
PlateauController pc = fxmlLoader.getController();
|
||||
GestionnaireJeu.setPlateauController(pc);
|
||||
GestionnaireJeu.setConfiguration(new Configuration(this.joueurs));
|
||||
Map<Integer, Joueur> map = GestionnaireJeu.getJoueursMap(new Configuration(this.joueurs));
|
||||
|
||||
gj.setPlateauController(pc);
|
||||
|
||||
Map<Integer, Joueur> map = gj.getMapJoueurs();
|
||||
|
||||
|
||||
pc.showInformation(map);
|
||||
|
@ -12,7 +12,7 @@
|
||||
<?import javafx.scene.layout.VBox?>
|
||||
<?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>
|
||||
<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>
|
||||
|
@ -14,8 +14,10 @@ public class GestionnaireJeu {
|
||||
|
||||
private View view;
|
||||
|
||||
private static Plateau plateau;
|
||||
private static PlateauController pc;
|
||||
private Map<Integer, Joueur> mapJoueurs;
|
||||
|
||||
private Plateau plateau;
|
||||
private PlateauController pc;
|
||||
|
||||
private GestionnaireJeu() {}
|
||||
|
||||
@ -31,8 +33,8 @@ public class GestionnaireJeu {
|
||||
return plateau;
|
||||
}
|
||||
|
||||
public static void lancerPartie() {
|
||||
plateau.jeu();
|
||||
public void lancerPartie() {
|
||||
this.plateau.jeu();
|
||||
}
|
||||
|
||||
public void jouer(Configuration c) {
|
||||
@ -73,24 +75,32 @@ public class GestionnaireJeu {
|
||||
|
||||
}
|
||||
|
||||
public static void setConfiguration(Configuration c) {
|
||||
public void setConfiguration(Configuration c) {
|
||||
|
||||
List<Joueur> joueurs = new ArrayList<Joueur>();
|
||||
Map<Integer, Joueur> mapJoueurs = convertConfiguration(c);
|
||||
this.mapJoueurs = mapJoueurs;
|
||||
|
||||
for(Joueur j : c.toJoueurs().values()) {
|
||||
List<Joueur> joueurs = new ArrayList();
|
||||
|
||||
for(Joueur j : mapJoueurs.values()) {
|
||||
joueurs.add(j);
|
||||
}
|
||||
|
||||
plateau = new Plateau(joueurs);
|
||||
this.plateau = new Plateau(joueurs);
|
||||
|
||||
}
|
||||
|
||||
public static Map<Integer, Joueur> getJoueursMap(Configuration c) {
|
||||
public Map<Integer, Joueur> convertConfiguration(Configuration c) {
|
||||
|
||||
return c.toJoueurs();
|
||||
|
||||
}
|
||||
|
||||
public static void setPlateauController(PlateauController pc2) {
|
||||
pc = pc2;
|
||||
public Map<Integer, Joueur> getMapJoueurs() {
|
||||
return this.mapJoueurs;
|
||||
}
|
||||
|
||||
public void setPlateauController(PlateauController pc2) {
|
||||
this.pc = pc2;
|
||||
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user