changements IA
This commit is contained in:
parent
84d63bd9c6
commit
4263869d58
@ -6,12 +6,19 @@ import java.util.List;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
import carte.CarteEquipement;
|
||||
import javafx.animation.KeyFrame;
|
||||
import javafx.animation.Timeline;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.fxml.Initializable;
|
||||
import javafx.scene.control.Button;
|
||||
import javafx.scene.image.ImageView;
|
||||
import javafx.scene.layout.GridPane;
|
||||
import javafx.scene.layout.HBox;
|
||||
import javafx.util.Duration;
|
||||
import main.Contexte;
|
||||
import main.GestionnaireJeu;
|
||||
import main.Joueur;
|
||||
import main.JoueurVirtuel;
|
||||
|
||||
public class ChoisirEquipement implements Initializable{
|
||||
@FXML private GridPane grilleEquipement;
|
||||
@ -63,7 +70,6 @@ public class ChoisirEquipement implements Initializable{
|
||||
iv.setFitHeight(100);
|
||||
iv.setFitHeight(100);
|
||||
iv.setPreserveRatio(true);
|
||||
|
||||
hbox.getChildren().add(iv);
|
||||
iv.setOnMouseClicked(e -> {
|
||||
equipementSelected = ce;
|
||||
@ -71,4 +77,15 @@ public class ChoisirEquipement implements Initializable{
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public void fireBtnIA(JoueurVirtuel jIA, Contexte c) {
|
||||
Timeline timeline = new Timeline(new KeyFrame(Duration.millis(2000), ae -> {
|
||||
equipementSelected = jIA.choisirEquipement(equipements);
|
||||
GestionnaireJeu.notifyPlateau();
|
||||
}));
|
||||
timeline.play();
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -120,6 +120,9 @@ public class ChoisirJoueur implements Initializable {
|
||||
case CHOISIR_VISION:
|
||||
titre.setText("Choisissez le joueur à qui passer la carte vision!");
|
||||
break;
|
||||
case VOLER_EQUIP:
|
||||
titre.setText("Choisissez le joueur à qui voler un equipement!");
|
||||
break;
|
||||
default:
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ package ihm.controller;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import effet.action.Action;
|
||||
import ihm.Die;
|
||||
import ihm.DieImages;
|
||||
import javafx.animation.KeyFrame;
|
||||
@ -38,6 +39,17 @@ public class LancerDes {
|
||||
this.contexte = c;
|
||||
}
|
||||
|
||||
private Button interpret(String s) {
|
||||
|
||||
String styles = "-fx-border-color: #e2e2e2;" + "-fx-border-width: 2;" + "-fx-background-radius: 0;"
|
||||
+ "-fx-background-color: #1d1d1d;" + "-fx-text-fill: #d8d8d8;"
|
||||
+ "-fx-background-insets: 0 0 0 0, 0, 1, 2;";
|
||||
|
||||
Button b = new Button(s);
|
||||
b.setStyle(styles);
|
||||
return b;
|
||||
}
|
||||
|
||||
public VBox initLancer(Joueur joueur) {
|
||||
switch (typeDe) {
|
||||
case LANCER_DE_4:
|
||||
@ -51,18 +63,16 @@ public class LancerDes {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private VBox initLancerD4(Joueur j) {
|
||||
DieImages images = new DieImages(4);
|
||||
Die die = new Die(images.getImages());
|
||||
ImageView stackpane = die.getdieFace();
|
||||
stackpane.setFitHeight(100);
|
||||
stackpane.setFitWidth(100);
|
||||
Button btn = new Button();
|
||||
Button btn = interpret("Lancer dé");
|
||||
Text txt = new Text("Lancez le dé");
|
||||
txt.setFont(Font.font(null, null, null, 12));
|
||||
txt.setFill(Color.WHITE);
|
||||
btn.setText("Lancer dé");
|
||||
btn.setOnAction((ActionEvent event) -> {
|
||||
btn.setDisable(true);// Disable Button
|
||||
Random random = new Random();
|
||||
@ -77,10 +87,7 @@ public class LancerDes {
|
||||
|
||||
die.setDieFace(rolls[0]);
|
||||
txt.setText("Vous avez obtenu " + rolls[0]);
|
||||
Timeline timeline2 = new Timeline(new KeyFrame(
|
||||
Duration.millis(2000),
|
||||
ae -> {
|
||||
|
||||
Timeline timeline2 = new Timeline(new KeyFrame(Duration.millis(2000), ae -> {
|
||||
|
||||
GestionnaireJeu.notifyPlateau();
|
||||
}));
|
||||
@ -104,11 +111,10 @@ public class LancerDes {
|
||||
ImageView stackpane = die.getdieFace();
|
||||
stackpane.setFitHeight(100);
|
||||
stackpane.setFitWidth(100);
|
||||
Button btn = new Button();
|
||||
Button btn = interpret("Lancer dé");
|
||||
Text txt = new Text("Lancez le dé");
|
||||
txt.setFont(Font.font(null, null, null, 12));
|
||||
txt.setFill(Color.WHITE);
|
||||
btn.setText("Lancer dé");
|
||||
btn.setOnAction((ActionEvent event) -> {
|
||||
btn.setDisable(true);// Disable Button
|
||||
Random random = new Random();
|
||||
@ -123,9 +129,7 @@ public class LancerDes {
|
||||
|
||||
die.setDieFace(rolls[0]);
|
||||
txt.setText("Vous avez obtenu " + rolls[0]);
|
||||
Timeline timeline2 = new Timeline(new KeyFrame(
|
||||
Duration.millis(2000),
|
||||
ae -> {
|
||||
Timeline timeline2 = new Timeline(new KeyFrame(Duration.millis(2000), ae -> {
|
||||
GestionnaireJeu.notifyPlateau();
|
||||
}));
|
||||
timeline2.play();
|
||||
@ -153,11 +157,10 @@ public class LancerDes {
|
||||
stackpane2.setFitHeight(100);
|
||||
stackpane.setFitWidth(100);
|
||||
stackpane2.setFitWidth(100);
|
||||
Button btn = new Button();
|
||||
Button btn = interpret("Lancer dés");
|
||||
Text txt = new Text("Lancez les dés");
|
||||
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();
|
||||
@ -179,9 +182,7 @@ public class LancerDes {
|
||||
int result = rolls[0] + rolls[1];
|
||||
|
||||
txt.setText("Vous avez obtenu " + result);
|
||||
Timeline timeline2 = new Timeline(new KeyFrame(
|
||||
Duration.millis(2000),
|
||||
ae -> {
|
||||
Timeline timeline2 = new Timeline(new KeyFrame(Duration.millis(2000), ae -> {
|
||||
GestionnaireJeu.notifyPlateau();
|
||||
|
||||
}));
|
||||
|
@ -1,6 +1,5 @@
|
||||
package ihm.controller;
|
||||
|
||||
|
||||
import java.awt.Dimension;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.IOException;
|
||||
@ -54,9 +53,12 @@ public class PlateauController implements Initializable {
|
||||
private List<Joueur> listJoueur = new ArrayList<Joueur>();
|
||||
private List<JoueurIHM> joueursIHM;
|
||||
|
||||
@FXML private AnchorPane rootPane;
|
||||
@FXML private GridPane gridPaneVie;
|
||||
@FXML public GridPane gridPaneLieux;
|
||||
@FXML
|
||||
private AnchorPane rootPane;
|
||||
@FXML
|
||||
private GridPane gridPaneVie;
|
||||
@FXML
|
||||
public GridPane gridPaneLieux;
|
||||
|
||||
private ChoisirBoolean cb;
|
||||
private ChoisirEquipement ce;
|
||||
@ -98,14 +100,14 @@ public class PlateauController implements Initializable {
|
||||
|
||||
for (int i : map.keySet()) {
|
||||
System.out.println(i);
|
||||
joueursIHM.add(new JoueurIHM(i,map.get(i),getPaneJoueur(i),new Color(Math.random(), Math.random(), Math.random(),1),gridPaneVie, gridPaneLieux,this));
|
||||
joueursIHM.add(new JoueurIHM(i, map.get(i), getPaneJoueur(i),
|
||||
new Color(Math.random(), Math.random(), Math.random(), 1), gridPaneVie, gridPaneLieux, this));
|
||||
}
|
||||
|
||||
for (int i = 0; i < joueursIHM.size(); i++) {
|
||||
joueursIHM.get(i).deplacerPionVie(0);
|
||||
}
|
||||
|
||||
|
||||
mapRessourcesCartes = rl.getRessourceCartes();
|
||||
setMapRessourcesDosCartes(rl.getRessourceDosCartes());
|
||||
|
||||
@ -116,7 +118,6 @@ public class PlateauController implements Initializable {
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void applyImages(List<CarteLieu> cls, List<ImageView> ivs) {
|
||||
|
||||
int size = cls.size();
|
||||
@ -177,7 +178,6 @@ public class PlateauController implements Initializable {
|
||||
|
||||
}
|
||||
|
||||
|
||||
return (Pane) gp.getChildren().get(i % 2);
|
||||
}
|
||||
|
||||
@ -215,17 +215,15 @@ public class PlateauController implements Initializable {
|
||||
popup.display();
|
||||
}
|
||||
|
||||
|
||||
|
||||
public JoueurIHM getJoueurIHM(Joueur j) {
|
||||
|
||||
for (JoueurIHM joueurIHM : joueursIHM) {
|
||||
if(joueurIHM.getJoueur().equals(j)) return joueurIHM;
|
||||
if (joueurIHM.getJoueur().equals(j))
|
||||
return joueurIHM;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Permet de consulter sa carte perssonage en cas d'oublie
|
||||
*
|
||||
@ -238,7 +236,6 @@ public class PlateauController implements Initializable {
|
||||
final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle);
|
||||
Parent root = fxmlLoader.load();
|
||||
|
||||
|
||||
AfficherCarteController acc = fxmlLoader.getController();
|
||||
acc.showInformation(listJoueur.get(numJoueur));
|
||||
|
||||
@ -284,7 +281,8 @@ public class PlateauController implements Initializable {
|
||||
cb.fireBtnIAattaquer((JoueurVirtuel) j, j.getJoueursRange());
|
||||
break;
|
||||
case CHOISIR_VISION:
|
||||
cb.fireBtnIAVision();;
|
||||
cb.fireBtnIAVision();
|
||||
;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -292,7 +290,6 @@ public class PlateauController implements Initializable {
|
||||
jihm.setZoneJoueur(root);
|
||||
}
|
||||
|
||||
|
||||
public void afficherChoisirEquipementVole(Joueur j, List<CarteEquipement> lce) throws IOException {
|
||||
final URL fxmlURL = getClass().getResource("/ihm/ressources/Jouer_tour(2a)voler_equipement.fxml");
|
||||
final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE);
|
||||
@ -301,6 +298,8 @@ public class PlateauController implements Initializable {
|
||||
this.ce = fxmlLoader.getController();
|
||||
this.ce.setListCarteEquipements(lce);
|
||||
this.ce.initChoisirEquipement();
|
||||
if (j instanceof JoueurVirtuel)
|
||||
this.ce.fireBtnIA((JoueurVirtuel) j, Contexte.VOLER_EQUIP);
|
||||
JoueurIHM jihm = getJoueurIHM(j);
|
||||
jihm.setZoneJoueur(root);
|
||||
}
|
||||
@ -314,7 +313,6 @@ public class PlateauController implements Initializable {
|
||||
AlterationVieZJ avzj = fxmlLoader.getController();
|
||||
avzj.changeLabel(valeur);
|
||||
|
||||
|
||||
JoueurIHM jihm = getJoueurIHM(j);
|
||||
Pane p = (Pane) jihm.getZoneJoueur();
|
||||
Pane pane = new Pane();
|
||||
@ -326,9 +324,7 @@ public class PlateauController implements Initializable {
|
||||
|
||||
jihm.setZoneJoueur(root);
|
||||
Pane pp = pane;
|
||||
Timeline timeline = new Timeline(new KeyFrame(
|
||||
Duration.millis(1000),
|
||||
ae -> {
|
||||
Timeline timeline = new Timeline(new KeyFrame(Duration.millis(1000), ae -> {
|
||||
|
||||
jihm.resetZoneJoueur();
|
||||
jihm.setZoneJoueur(pp);
|
||||
@ -345,7 +341,8 @@ public class PlateauController implements Initializable {
|
||||
Pane root = (Pane) fxmlLoader.load();
|
||||
LieuZJ lzj = fxmlLoader.getController();
|
||||
lzj.setImageView(this.getImageCarte(j.getCarteLieu()));
|
||||
if(j instanceof JoueurVirtuel) lzj.fireBtnIA();
|
||||
if (j instanceof JoueurVirtuel)
|
||||
lzj.fireBtnIA();
|
||||
JoueurIHM jihm = getJoueurIHM(j);
|
||||
if (jihm.getPosition() == 4 || jihm.getPosition() == 5) {
|
||||
SplitPane s = (SplitPane) root.getChildren().get(0);
|
||||
@ -361,6 +358,7 @@ public class PlateauController implements Initializable {
|
||||
|
||||
jihm.setZoneJoueur(root);
|
||||
}
|
||||
|
||||
public void afficherChoisirJoueur(Joueur j, List<Joueur> joueurs, Contexte contexte) throws IOException {
|
||||
final URL fxmlURL = getClass().getResource("/ihm/ressources/choixJoueurAttq.fxml");
|
||||
final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE);
|
||||
@ -378,6 +376,7 @@ public class PlateauController implements Initializable {
|
||||
JoueurIHM jihm = getJoueurIHM(j);
|
||||
jihm.setZoneJoueur(root);
|
||||
}
|
||||
|
||||
private List<JoueurIHM> toJoueursIHM(List<Joueur> joueurs) {
|
||||
|
||||
List<JoueurIHM> list = new ArrayList<JoueurIHM>();
|
||||
@ -389,7 +388,6 @@ public class PlateauController implements Initializable {
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
public void afficherPiocher(Joueur j) throws IOException {
|
||||
|
||||
final URL fxmlURL = getClass().getResource("/ihm/ressources/Jouer_tour(2b)piocher_carte.fxml");
|
||||
@ -401,6 +399,7 @@ public class PlateauController implements Initializable {
|
||||
JoueurIHM jihm = getJoueurIHM(j);
|
||||
jihm.setZoneJoueur(root);
|
||||
}
|
||||
|
||||
public void afficherEffet(Joueur j) throws IOException {
|
||||
|
||||
final URL fxmlURL = getClass().getResource("/ihm/ressources/Jouer_tour(2b)piocher_carte.fxml");
|
||||
@ -428,6 +427,7 @@ public void afficherEffet(Joueur j) throws IOException {
|
||||
jihm.getZoneJoueur().getChildren().setAll();
|
||||
return result;
|
||||
}
|
||||
|
||||
public Joueur getChoixJoueur(Joueur joueur) {
|
||||
JoueurIHM jihm = getJoueurIHM(joueur);
|
||||
JoueurIHM result = this.cj.getJoueurSelected();
|
||||
@ -435,6 +435,7 @@ public void afficherEffet(Joueur j) throws IOException {
|
||||
jihm.getZoneJoueur().getChildren().setAll();
|
||||
return result.getJoueur();
|
||||
}
|
||||
|
||||
public Type getChoixCarte(Joueur joueur) {
|
||||
JoueurIHM jihm = getJoueurIHM(joueur);
|
||||
Type result = this.pc.getCarte();
|
||||
@ -451,7 +452,6 @@ public void afficherEffet(Joueur j) throws IOException {
|
||||
|
||||
public void updateVieJoueur(Joueur joueur, int damage) {
|
||||
JoueurIHM jIHM = getJoueurIHM(joueur);
|
||||
jIHM.getZoneJoueur().getChildren().setAll();
|
||||
jIHM.deplacerPionVie(damage);
|
||||
}
|
||||
|
||||
@ -471,7 +471,6 @@ public void afficherEffet(Joueur j) throws IOException {
|
||||
pu.display();
|
||||
}
|
||||
|
||||
|
||||
public static Image getImageCarte(Carte carte) {
|
||||
BufferedImage bi = mapRessourcesCartes.get(carte);
|
||||
return RessourceLoader.toJavaFX(bi);
|
||||
@ -482,13 +481,11 @@ public void afficherEffet(Joueur j) throws IOException {
|
||||
return RessourceLoader.toJavaFX(bi);
|
||||
}
|
||||
|
||||
|
||||
public void ajouterEquipement(Joueur j, CarteEquipement e) {
|
||||
JoueurIHM jihm = getJoueurIHM(j);
|
||||
jihm.ajouterEquipement(e);
|
||||
}
|
||||
|
||||
|
||||
public void retirerEquipement(Joueur j, CarteEquipement e) {
|
||||
JoueurIHM jihm = getJoueurIHM(j);
|
||||
jihm.retirerEquipement(e);
|
||||
@ -534,7 +531,8 @@ public void afficherEffet(Joueur j) throws IOException {
|
||||
Image im = getImageCarte(cartePiochable);
|
||||
lzj.setImageView(im);
|
||||
lzj.setText("Cachez la carte vision");
|
||||
if(j instanceof JoueurVirtuel) lzj.fireBtnIA();
|
||||
if (j instanceof JoueurVirtuel)
|
||||
lzj.fireBtnIA();
|
||||
JoueurIHM jihm = getJoueurIHM(j);
|
||||
if (jihm.getPosition() == 4 || jihm.getPosition() == 5) {
|
||||
SplitPane s = (SplitPane) root.getChildren().get(0);
|
||||
@ -552,7 +550,6 @@ public void afficherEffet(Joueur j) throws IOException {
|
||||
|
||||
}
|
||||
|
||||
|
||||
public Map<String, BufferedImage> getMapRessourcesDosCartes() {
|
||||
return mapRessourcesDosCartes;
|
||||
}
|
||||
@ -565,7 +562,6 @@ public void afficherEffet(Joueur j) throws IOException {
|
||||
|
||||
public void afficherChoisirAction(Joueur joueur, List<Action> list) {
|
||||
|
||||
|
||||
List<Button> buttons = new ArrayList<Button>();
|
||||
|
||||
for (Action a : list) {
|
||||
@ -583,18 +579,28 @@ public void afficherEffet(Joueur j) throws IOException {
|
||||
v.setSpacing(20.0);
|
||||
JoueurIHM jihm = getJoueurIHM(joueur);
|
||||
jihm.setZoneJoueur(v);
|
||||
|
||||
if (joueur instanceof JoueurVirtuel) {
|
||||
for (Button b : buttons)
|
||||
b.setDisable(true);
|
||||
Timeline timeline = new Timeline(new KeyFrame(Duration.millis(2000), ae -> {
|
||||
Button bchoisi = ((JoueurVirtuel)joueur).choisirEffet(buttons);
|
||||
bchoisi.setDisable(false);
|
||||
bchoisi.fire();
|
||||
}));
|
||||
timeline.play();
|
||||
}
|
||||
}
|
||||
|
||||
public Action getChoixAction(Joueur joueur) {
|
||||
return this.choixAction;
|
||||
}
|
||||
|
||||
|
||||
private Button interpret(Action a) {
|
||||
|
||||
String styles = "-fx-border-color: #e2e2e2;"+"-fx-border-width: 2;"+
|
||||
"-fx-background-radius: 0;"+"-fx-background-color: #1d1d1d;"+
|
||||
"-fx-text-fill: #d8d8d8;"+"-fx-background-insets: 0 0 0 0, 0, 1, 2;";
|
||||
String styles = "-fx-border-color: #e2e2e2;" + "-fx-border-width: 2;" + "-fx-background-radius: 0;"
|
||||
+ "-fx-background-color: #1d1d1d;" + "-fx-text-fill: #d8d8d8;"
|
||||
+ "-fx-background-insets: 0 0 0 0, 0, 1, 2;";
|
||||
|
||||
String s = a.toString();
|
||||
Button b = new Button(s);
|
||||
@ -602,7 +608,6 @@ public void afficherEffet(Joueur j) throws IOException {
|
||||
return b;
|
||||
}
|
||||
|
||||
|
||||
public void revealJoueur(Joueur joueur) {
|
||||
JoueurIHM jihm = getJoueurIHM(joueur);
|
||||
jihm.reveler();
|
||||
|
@ -7,6 +7,7 @@ import java.util.Random;
|
||||
import carte.CarteEquipement;
|
||||
import carte.CarteEquipementStat;
|
||||
import effet.Effet;
|
||||
import javafx.scene.control.Button;
|
||||
|
||||
public class JoueurVirtuel extends Joueur {
|
||||
|
||||
@ -21,7 +22,7 @@ public class JoueurVirtuel extends Joueur {
|
||||
nvDifficulte = lvlIa;
|
||||
}
|
||||
|
||||
public Effet choisirEffet(List<Effet> effets) {
|
||||
public Button choisirEffet(List<Button> effets) {
|
||||
return effets.get((int) Math.floor(Math.random() * effets.size()));
|
||||
}
|
||||
|
||||
|
@ -6,6 +6,7 @@ import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
|
||||
import carte.Carte;
|
||||
import carte.CarteEquipement;
|
||||
@ -372,9 +373,8 @@ public class Plateau extends Thread{
|
||||
}
|
||||
|
||||
private int rollRandom(int nb) {
|
||||
|
||||
int roll = (int) Math.floor(Math.random() * (nb))+1;
|
||||
System.out.println("roll" + roll);
|
||||
Random r= new Random();
|
||||
int roll = r.nextInt(nb)+1;
|
||||
return roll;
|
||||
}
|
||||
|
||||
@ -389,8 +389,7 @@ public class Plateau extends Thread{
|
||||
sum = Math.abs(roll4+roll6);
|
||||
|
||||
gj.rollDice(j, PlateauController.DICE_BOTH, roll4,roll6);
|
||||
return 3;
|
||||
//return sum;
|
||||
return sum;
|
||||
}
|
||||
|
||||
public List<Joueur> getJoueurs() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user