@@ -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 ;
@@ -11,33 +12,27 @@ import java.util.ResourceBundle;
import ihm.PopUp ;
import ihm.PopUpBoolean ;
import ihm.SpriteAnimation ;
import javafx.animation.Animation ;
import javafx.event.Event ;
import javafx.event.EventHandler ;
import javafx.fxml.FXML ;
import javafx.fxml.FXMLLoader ;
import javafx.fxml.Initializable ;
import javafx.geometry.Rectangle2D ;
import javafx.scene.Group ;
import javafx.scene.Parent ;
import javafx.scene.control.Button ;
import javafx.scene.control.Label ;
import javafx.scene.image.ImageView ;
import javafx.scene.layout.AnchorPane ;
import javafx.scene.layout.HBox ;
import javafx.scene.layout.Pane ;
import javafx.scene.layout.VBox ;
import javafx.scene.shape.Circle ;
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 > ( ) ;
private List < Button > btnRevelation = new ArrayList < Button > ( ) ;
private List < ImageView > cartePerso = new ArrayList < ImageView > ( ) ;
private List < Label > nomJoueur = new ArrayList < Label > ( ) ;
private List < Joueur > listJoueur = new ArrayList < Joueur > ( ) ;
private Map < Joueur , Pane > joueursPane ;
@FXML private AnchorPane rootPane ;
@FXML private HBox joueur1 ;
@FXML private HBox joueur2 ;
@FXML private HBox joueur3 ;
@@ -47,6 +42,19 @@ public class PlateauController implements Initializable {
@FXML private VBox joueur7 ;
@FXML private VBox joueur8 ;
private List < VBox > vboxJoueur = new ArrayList < VBox > ( ) ;
private List < HBox > hboxJoueur = new ArrayList < HBox > ( ) ;
private List < Button > btnRevelation = new ArrayList < Button > ( ) ;
private List < ImageView > cartePerso = new ArrayList < ImageView > ( ) ;
private List < Label > nomJoueur = new ArrayList < Label > ( ) ;
private List < AnchorPane > tour = new ArrayList < AnchorPane > ( ) ;
@FXML private HBox lieux ;
@FXML private HBox vie ;
private List < Circle > pionLieux = new ArrayList < Circle > ( ) ;
private List < Circle > pionVie = new ArrayList < Circle > ( ) ;
public static int DICE_SIX = 2 ;
public static int DICE_QUATRE = 1 ;
public static int DICE_BOTH = 0 ;
@@ -57,14 +65,26 @@ public class PlateauController implements Initializable {
@Override
public void initialize ( URL arg0 , ResourceBundle arg1 ) {
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 ) ;
this . hboxJoueur . add ( joueur4 ) ;
for ( HBox hbox : hboxJoueur ) {
tour . add ( ( AnchorPane ) hbox . getChildren ( ) . get ( 0 ) ) ;
VBox carte = ( VBox ) hbox . getChildren ( ) . get ( 1 ) ;
cartePerso . add ( ( ImageView ) carte . getChildren ( ) . get ( 0 ) ) ;
btnRevelation . add ( ( Button ) carte . getChildren ( ) . get ( 1 ) ) ;
@@ -78,6 +98,7 @@ public class PlateauController implements Initializable {
this . vboxJoueur . add ( joueur8 ) ;
for ( VBox vbox : vboxJoueur ) {
tour . add ( ( AnchorPane ) vbox . getChildren ( ) . get ( 0 ) ) ;
HBox joueur = ( HBox ) vbox . getChildren ( ) . get ( 1 ) ;
VBox carte = ( VBox ) joueur . getChildren ( ) . get ( 1 ) ;
cartePerso . add ( ( ImageView ) carte . getChildren ( ) . get ( 0 ) ) ;
@@ -102,13 +123,58 @@ public class PlateauController implements Initializable {
}
listJoueur = View . getJoueurs ( ) ;
//initialisation des pions
VBox pionLieux14 = ( VBox ) lieux . getChildren ( ) . get ( 0 ) ;
VBox pionLieux58 = ( VBox ) lieux . getChildren ( ) . get ( 4 ) ;
for ( int k = 0 ; k < 4 ; k + + ) {
pionLieux . add ( ( Circle ) pionLieux14 . getChildren ( ) . get ( k ) ) ;
}
for ( int k = 0 ; k < 4 ; k + + ) {
pionLieux . add ( ( Circle ) pionLieux58 . getChildren ( ) . get ( k ) ) ;
}
VBox pionVie14 = ( VBox ) lieux . getChildren ( ) . get ( 0 ) ;
VBox pionVie58 = ( VBox ) lieux . getChildren ( ) . get ( 4 ) ;
for ( int k = 0 ; k < 4 ; k + + ) {
pionVie . add ( ( Circle ) pionVie14 . getChildren ( ) . get ( k ) ) ;
}
for ( int k = 0 ; k < 4 ; k + + ) {
pionVie . add ( ( Circle ) pionVie58 . getChildren ( ) . get ( k ) ) ;
}
System . out . println ( " Tour du joueur 1 " ) ;
try {
final URL fxmlURL = getClass ( ) . getResource ( " ../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 ( ) ;
root . setPrefSize ( 255 , 180 ) ;
tour . get ( 2 ) . getChildren ( ) . setAll ( root ) ;
} catch ( IOException e ) {
// TODO Auto-generated catch block
e . printStackTrace ( ) ;
}
}
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 ) ;
}
/**
* Affiche aux yeux de tous la carte personnage du joueur
*
* @param j : Le joueur sur lequel on a cliqu<EFBFBD>
* @param j : Le joueur sur lequel on a cliqué
*/
public void seReveler ( int numJoueur ) throws IOException {
System . out . println ( listJoueur . get ( numJoueur ) . getNom ( ) + " se revele " ) ;
@@ -159,16 +225,21 @@ public class PlateauController implements Initializable {
* @param j : map donnant le joueur et son numero
*/
public void showInformation ( Map < Integer , Joueur > j ) {
/* System.out.println("\tp lacement des joueurs");
System. out . println ( " \ tP lacement des joueurs" ) ;
int taille = this . vboxJoueur . size ( ) + this . hboxJoueur . size ( ) ;
for ( int i = 0 ; i < taille ; i + + ) {
if ( j . get ( i ) ! = null )
nomJoueur . get ( i ) . setText ( j . get ( i ) . getNom ( ) ) ;
else {
vboxJoueur.get(i).setVisible(false);
if ( i < 4 ) {
hboxJoueur . get ( i ) . setVisible ( false ) ;
} else {
vboxJoueur . get ( i - 4 ) . setVisible ( false ) ;
}
}
}*/
}
}
public void rollDice ( Joueur joueur , int typeDice , int [ ] rolls ) {