update java's tp

master
antoine.perederii 1 year ago
parent 383cfb5963
commit e0a82abdb6

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="18" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_18" default="true" project-jdk-name="18" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" /> <output url="file://$PROJECT_DIR$/out" />
</component> </component>
</project> </project>

@ -8,6 +8,6 @@
</content> </content>
<orderEntry type="inheritedJdk" /> <orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="lib21" level="application" /> <orderEntry type="library" name="lib" level="application" />
</component> </component>
</module> </module>

@ -1,14 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?> <?import javafx.scene.control.Button?>
<?import javafx.scene.layout.*?> <?import javafx.scene.control.ListView?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.control.TextField?>
<BorderPane fx:id="myBorderPane" style="-fx-background-color: #ecf0f1;" xmlns="http://javafx.com/javafx/17.0.2-ea" xmlns:fx="http://javafx.com/fxml/1" fx:controller="view.Fenetre"> <BorderPane fx:id="myBorderPane" style="-fx-background-color: #ecf0f1;" xmlns="http://javafx.com/javafx/18" xmlns:fx="http://javafx.com/fxml/1" fx:controller="view.Fenetre">
<center> <bottom>
<VBox fx:id="buttonContainer" BorderPane.alignment="CENTER"> <Button fx:id="rollDice" alignment="CENTER" mnemonicParsing="false" onAction="#onButtonRollClicked" style="-fx-background-color: #2ecc71;" text="RollDice" />
</bottom>
<right>
<VBox fx:id="labelContainer" BorderPane.alignment="CENTER">
<!-- Les boutons seront ajoutés ici dynamiquement --> <!-- Les boutons seront ajoutés ici dynamiquement -->
<Button fx:id="rollDice" mnemonicParsing="false" onAction="#onButtonRollClicked" style="-fx-background-color: #2ecc71;" text="RollDice" alignment="CENTER" />
</VBox> </VBox>
</center> </right>
<left>
<BorderPane prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<center>
<ListView fx:id="joueursContainer" prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER" />
</center>
<bottom>
<TextField fx:id="joueur"></TextField>
</bottom>
</BorderPane>
</left>
</BorderPane> </BorderPane>

@ -1,14 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?> <?import javafx.scene.control.Button?>
<?import javafx.scene.layout.*?> <?import javafx.scene.control.ListView?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.control.TextField?>
<BorderPane fx:id="myBorderPane" style="-fx-background-color: #ecf0f1;" xmlns="http://javafx.com/javafx/17.0.2-ea" xmlns:fx="http://javafx.com/fxml/1" fx:controller="view.Fenetre"> <BorderPane fx:id="myBorderPane" style="-fx-background-color: #ecf0f1;" xmlns="http://javafx.com/javafx/18" xmlns:fx="http://javafx.com/fxml/1" fx:controller="view.Fenetre">
<center> <bottom>
<VBox fx:id="buttonContainer" BorderPane.alignment="CENTER"> <Button fx:id="rollDice" alignment="CENTER" mnemonicParsing="false" onAction="#onButtonRollClicked" style="-fx-background-color: #2ecc71;" text="RollDice" />
</bottom>
<right>
<VBox fx:id="labelContainer" BorderPane.alignment="CENTER">
<!-- Les boutons seront ajoutés ici dynamiquement --> <!-- Les boutons seront ajoutés ici dynamiquement -->
<Button fx:id="rollDice" mnemonicParsing="false" onAction="#onButtonRollClicked" style="-fx-background-color: #2ecc71;" text="RollDice" alignment="CENTER" />
</VBox> </VBox>
</center> </right>
<left>
<BorderPane prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<center>
<ListView fx:id="joueursContainer" prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER" />
</center>
<bottom>
<TextField fx:id="joueur"></TextField>
</bottom>
</BorderPane>
</left>
</BorderPane> </BorderPane>

@ -6,7 +6,7 @@ import models.Plateau;
public class Stub { public class Stub {
public Jeu loadPions() { public Jeu loadPions() {
Jeu game = new Jeu(6, 6); Jeu game = new Jeu(10, 6);
game.getMyAdminPlayer().ajouterJoueur(new Joueur("rouge")); game.getMyAdminPlayer().ajouterJoueur(new Joueur("rouge"));
game.getMyAdminPlayer().ajouterJoueur(new Joueur("bleu")); game.getMyAdminPlayer().ajouterJoueur(new Joueur("bleu"));
game.getPlateau().placerJoueursSurCaseInitiale(game.getMyAdminPlayer().getLesJoueurs()); game.getPlateau().placerJoueursSurCaseInitiale(game.getMyAdminPlayer().getLesJoueurs());

@ -1,27 +1,55 @@
package managers; package managers;
import javafx.beans.Observable;
import javafx.beans.property.*;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import models.Joueur; import models.Joueur;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
public class GestionnaireJoueur { public class GestionnaireJoueur {
private int currentIdJoueur = 0; private ObservableList<Joueur> myList = FXCollections.observableArrayList();
private List<Joueur> lesJoueurs = new ArrayList<>(); private ListProperty<Joueur> lesJoueurs = new SimpleListProperty(myList);
public ObservableList<Joueur> getLesJoueurs() {
return lesJoueurs.get();
}
public ListProperty<Joueur> lesJoueursProperty() {
return lesJoueurs;
}
private ObjectProperty<Joueur> currentJoueur = new SimpleObjectProperty();
public Joueur getCurrentJoueur() {
return currentJoueur.get();
}
public ObjectProperty<Joueur> currentJoueurProperty() {
return currentJoueur;
}
public void setCurrentJoueur(Joueur joueur) {
currentJoueur.set(joueur);
}
// private List<Joueur> lesJoueurs = new ArrayList<>();
// private StringProperty name = new SimpleStringProperty();
// public String getName() { return name.get(); }
// public StringProperty nameProperty() { return name; }
// private void setName(String name) { this.name.set(name); }
public List<Joueur> getLesJoueurs() { // public List<Joueur> getLesJoueurs() {
return this.lesJoueurs; // return this.lesJoueurs;
} // }
public Joueur getCurrentJoueur() { // public Joueur getCurrentJoueur() {
return this.lesJoueurs.get(currentIdJoueur%lesJoueurs.size()); // return currentJoueur;
} // }
public Joueur getJoueurSuivant() { public Joueur getJoueurSuivant() {
return this.lesJoueurs.get((currentIdJoueur+1) % lesJoueurs.size()); return this.myList.get((currentJoueur.get().getIdJoueur() + 1) % lesJoueurs.size());
} }
public void ajouterJoueur(Joueur joueur) { public void ajouterJoueur(Joueur joueur) {
lesJoueurs.add(joueur); myList.add(joueur);
if(myList.size() == 1) {
currentJoueur.set(myList.get(0));
}
} }
public Joueur nextPlayer() { public Joueur nextPlayer() {
return lesJoueurs.get((++currentIdJoueur) % lesJoueurs.size()); return myList.get((currentJoueur.get().getIdJoueur() + 1) % lesJoueurs.size());
} }
} }

@ -3,6 +3,9 @@ package view;
import data.Stub; import data.Stub;
import javafx.fxml.FXML; import javafx.fxml.FXML;
import javafx.scene.control.Button; import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.ListView;
import javafx.scene.control.TextField;
import javafx.scene.layout.BorderPane; import javafx.scene.layout.BorderPane;
import javafx.scene.layout.VBox; import javafx.scene.layout.VBox;
import models.Jeu; import models.Jeu;
@ -13,17 +16,19 @@ public class Fenetre {
@FXML @FXML
private BorderPane myBorderPane = new BorderPane(); private BorderPane myBorderPane = new BorderPane();
@FXML @FXML
private VBox buttonContainer; private VBox labelContainer;
@FXML
private ListView joueursContainer = new ListView();
private final Jeu game = new Stub().loadPions(); private final Jeu game = new Stub().loadPions();
Joueur currentPion = game.getMyAdminPlayer().getCurrentJoueur(); Joueur currentPion = game.getMyAdminPlayer().getCurrentJoueur();
public void updateButtonLabels() { public void updateButtonLabels() {
for (int i = 0; i < game.getPlateau().getCaseList().size(); i++) { for (int i = 1; i < game.getPlateau().getCaseList().size(); i++) {
Button button = (Button) buttonContainer.getChildren().get(i); Label label = (Label) labelContainer.getChildren().get(i);
if (game.getPlateau().getCaseList().get(i).getCurrentJoueur() != null) { if (game.getPlateau().getCaseList().get(i).getCurrentJoueur() != null) {
button.setText("Case " + (i + 1) + "\n" + "Joueur: " + game.getPlateau().getCaseList().get(i).getCurrentJoueur().getIdJoueur()); label.setText("Case " + (i) + "\n" + "Joueur: " + game.getPlateau().getCaseList().get(i).getCurrentJoueur().getIdJoueur());
} else { } else {
button.setText("Case " + (i + 1)); label.setText("Case " + (i));
} }
} }
} }
@ -34,13 +39,15 @@ public class Fenetre {
} }
public void initialize() { public void initialize() {
for (int i = 0; i < game.getPlateau().getCaseList().size(); i++) { for (int i = 0; i < game.getPlateau().getCaseList().size(); i++) {
Button button = new Button(); Label label = new Label();
if (game.getPlateau().getCaseList().get(i).getCurrentJoueur() != null) { if (game.getPlateau().getCaseList().get(i).getCurrentJoueur() != null) {
button.setText("Case " + i + "\n" + "Joueur: " + game.getPlateau().getCaseList().get(i).getCurrentJoueur().getIdJoueur()); label.setText("Case " + i + "\n" + "Joueur: " + game.getPlateau().getCaseList().get(i).getCurrentJoueur().getIdJoueur());
} else { } else {
button.setText("Case " + i); label.setText("Case " + i);
} }
buttonContainer.getChildren().add(button); labelContainer.getChildren().add(label);
} }
joueursContainer.itemsProperty().bind(game.getMyAdminPlayer().lesJoueursProperty());
// joueursContainer.selectionModelProperty().bind(game.getMyAdminPlayer().currentJoueurProperty());
} }
} }

Loading…
Cancel
Save