prise en compte ia
This commit is contained in:
parent
b69955273d
commit
d858b1bcb9
@ -49,7 +49,6 @@ public class Main extends Application {
|
|||||||
RessourceLoader rl = new RessourceLoader();
|
RessourceLoader rl = new RessourceLoader();
|
||||||
rl.loadRessources();
|
rl.loadRessources();
|
||||||
gj.setRessourceLoader(rl);
|
gj.setRessourceLoader(rl);
|
||||||
|
|
||||||
launch(args);
|
launch(args);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,33 +1,45 @@
|
|||||||
package ihm.controller;
|
package ihm.controller;
|
||||||
|
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
|
import java.util.List;
|
||||||
import java.util.ResourceBundle;
|
import java.util.ResourceBundle;
|
||||||
|
|
||||||
|
import javafx.animation.KeyFrame;
|
||||||
|
import javafx.animation.Timeline;
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.fxml.Initializable;
|
import javafx.fxml.Initializable;
|
||||||
import javafx.scene.control.Button;
|
import javafx.scene.control.Button;
|
||||||
import javafx.scene.control.Label;
|
import javafx.scene.control.Label;
|
||||||
|
import javafx.util.Duration;
|
||||||
|
import main.Contexte;
|
||||||
|
import main.ControleurIA;
|
||||||
import main.GestionnaireJeu;
|
import main.GestionnaireJeu;
|
||||||
|
import main.Joueur;
|
||||||
|
import main.JoueurVirtuel;
|
||||||
|
|
||||||
public class ChoisirBoolean implements Initializable {
|
public class ChoisirBoolean implements Initializable {
|
||||||
@FXML private Button ouiButton;
|
@FXML
|
||||||
@FXML private Button nonButton;
|
private Button ouiButton;
|
||||||
@FXML private Label titre;
|
@FXML
|
||||||
|
private Button nonButton;
|
||||||
|
@FXML
|
||||||
|
private Label titre;
|
||||||
|
|
||||||
private boolean result;
|
private boolean result;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initialize(URL arg0, ResourceBundle arg1) {
|
public void initialize(URL arg0, ResourceBundle arg1) {
|
||||||
|
|
||||||
ouiButton.setOnAction(x -> {
|
ouiButton.setOnAction(x -> {
|
||||||
|
|
||||||
this.result = true;
|
this.result = true;
|
||||||
GestionnaireJeu.notifyPlateau();
|
GestionnaireJeu.notifyPlateau();
|
||||||
});
|
});
|
||||||
|
|
||||||
nonButton.setOnAction(x -> {
|
nonButton.setOnAction(x -> {
|
||||||
this.result = false;
|
this.result = false;
|
||||||
GestionnaireJeu.notifyPlateau();
|
GestionnaireJeu.notifyPlateau();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean getResult() {
|
public boolean getResult() {
|
||||||
@ -49,12 +61,53 @@ public class ChoisirBoolean implements Initializable {
|
|||||||
public void setNonButton(Button nonButton) {
|
public void setNonButton(Button nonButton) {
|
||||||
this.nonButton = nonButton;
|
this.nonButton = nonButton;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Label getTitre() {
|
public Label getTitre() {
|
||||||
return titre;
|
return titre;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTitre(Label titre) {
|
public void setTitre(Contexte c) {
|
||||||
this.titre = titre;
|
switch(c) {
|
||||||
|
case ATTAQUER:
|
||||||
|
titre.setText("Souhaitez-vous attaquer quelqu'un?");
|
||||||
|
break;
|
||||||
|
case ACTIVER_EFFET_LIEU :
|
||||||
|
titre.setText("Souhaitez-vous activer l'effet du lieu?");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void fireBtnIAEffetLieu() {
|
||||||
|
ControleurIA cIA = new ControleurIA();
|
||||||
|
ouiButton.setDisable(true);
|
||||||
|
nonButton.setDisable(true);
|
||||||
|
Timeline timeline = new Timeline(new KeyFrame(Duration.millis(2000), ae -> {
|
||||||
|
if (cIA.choixUtiliserPouvoirLieu()) {
|
||||||
|
ouiButton.setDisable(false);
|
||||||
|
ouiButton.fire();
|
||||||
|
} else {
|
||||||
|
nonButton.setDisable(false);
|
||||||
|
nonButton.fire();
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
timeline.play();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void fireBtnIAattaquer(JoueurVirtuel jIA, List<Joueur> joueursLieu) {
|
||||||
|
ControleurIA cIA = new ControleurIA();
|
||||||
|
ouiButton.setDisable(true);
|
||||||
|
nonButton.setDisable(true);
|
||||||
|
Timeline timeline = new Timeline(new KeyFrame(Duration.millis(2000), ae -> {
|
||||||
|
if (cIA.choixSiAttaquer(jIA, joueursLieu)) {
|
||||||
|
ouiButton.setDisable(false);
|
||||||
|
ouiButton.fire();
|
||||||
|
} else {
|
||||||
|
nonButton.setDisable(false);
|
||||||
|
nonButton.fire();
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
timeline.play();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,50 +5,67 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.ResourceBundle;
|
import java.util.ResourceBundle;
|
||||||
|
|
||||||
|
import javafx.animation.KeyFrame;
|
||||||
|
import javafx.animation.Timeline;
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.fxml.Initializable;
|
import javafx.fxml.Initializable;
|
||||||
import javafx.scene.control.Button;
|
import javafx.scene.control.Button;
|
||||||
import javafx.scene.control.Label;
|
import javafx.scene.control.Label;
|
||||||
import javafx.scene.layout.HBox;
|
import javafx.scene.layout.HBox;
|
||||||
|
import javafx.util.Duration;
|
||||||
|
import main.Contexte;
|
||||||
import main.GestionnaireJeu;
|
import main.GestionnaireJeu;
|
||||||
|
import main.Joueur;
|
||||||
|
import main.JoueurVirtuel;
|
||||||
|
|
||||||
public class ChoisirJoueur implements Initializable{
|
public class ChoisirJoueur implements Initializable {
|
||||||
@FXML private HBox joueurHaut;
|
@FXML
|
||||||
@FXML private HBox joueurBas;
|
private HBox joueurHaut;
|
||||||
@FXML private Label titre;
|
@FXML
|
||||||
@FXML private Button btn1;
|
private HBox joueurBas;
|
||||||
@FXML private Button btn2;
|
@FXML
|
||||||
@FXML private Button btn3;
|
private Label titre;
|
||||||
@FXML private Button btn4;
|
@FXML
|
||||||
@FXML private Button btn5;
|
private Button btn1;
|
||||||
@FXML private Button btn6;
|
@FXML
|
||||||
@FXML private Button btn7;
|
private Button btn2;
|
||||||
@FXML private Button btn8;
|
@FXML
|
||||||
|
private Button btn3;
|
||||||
|
@FXML
|
||||||
|
private Button btn4;
|
||||||
|
@FXML
|
||||||
|
private Button btn5;
|
||||||
|
@FXML
|
||||||
|
private Button btn6;
|
||||||
|
@FXML
|
||||||
|
private Button btn7;
|
||||||
|
@FXML
|
||||||
|
private Button btn8;
|
||||||
|
|
||||||
private JoueurIHM joueurSelected;
|
private JoueurIHM joueurSelected;
|
||||||
private List<JoueurIHM> listJoueursIHM;
|
private List<JoueurIHM> listJoueursIHM;
|
||||||
private List<Button> buttons;
|
private List<Button> buttons;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initialize(URL arg0, ResourceBundle arg1) {
|
public void initialize(URL arg0, ResourceBundle arg1) {
|
||||||
|
|
||||||
this.buttons = new ArrayList<Button>();
|
this.buttons = new ArrayList<Button>();
|
||||||
|
|
||||||
this.buttons.add(btn1);
|
this.buttons.add(btn1);
|
||||||
this.buttons.add(btn2);
|
this.buttons.add(btn2);
|
||||||
this.buttons.add(btn3);
|
this.buttons.add(btn3);
|
||||||
this.buttons.add(btn4);
|
this.buttons.add(btn4);
|
||||||
this.buttons.add(btn5);
|
this.buttons.add(btn5);
|
||||||
this.buttons.add(btn6);
|
this.buttons.add(btn6);
|
||||||
this.buttons.add(btn7);
|
this.buttons.add(btn7);
|
||||||
this.buttons.add(btn8);
|
this.buttons.add(btn8);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void initButtons() {
|
public void initButtons() {
|
||||||
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
while(i <listJoueursIHM.size()) {
|
while (i < listJoueursIHM.size()) {
|
||||||
Button b = this.buttons.get(i);
|
Button b = this.buttons.get(i);
|
||||||
JoueurIHM jihm = listJoueursIHM.get(i);
|
JoueurIHM jihm = listJoueursIHM.get(i);
|
||||||
b.setOnAction(e -> {
|
b.setOnAction(e -> {
|
||||||
@ -58,27 +75,27 @@ public class ChoisirJoueur implements Initializable{
|
|||||||
b.setText(jihm.getNom());
|
b.setText(jihm.getNom());
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
for(int j = i; j < buttons.size(); j++) {
|
for (int j = i; j < buttons.size(); j++) {
|
||||||
Button b = this.buttons.get(j);
|
Button b = this.buttons.get(j);
|
||||||
b.setVisible(false);
|
b.setVisible(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//GETTERS AND SETTERS
|
// GETTERS AND SETTERS
|
||||||
|
|
||||||
public HBox getJoueurHaut() {
|
public HBox getJoueurHaut() {
|
||||||
return joueurHaut;
|
return joueurHaut;
|
||||||
}
|
}
|
||||||
|
|
||||||
public HBox getHBox(int valeur) {
|
public HBox getHBox(int valeur) {
|
||||||
if(valeur < 4) {
|
if (valeur < 4) {
|
||||||
return joueurHaut;
|
return joueurHaut;
|
||||||
}else {
|
} else {
|
||||||
return joueurBas;
|
return joueurBas;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setJoueurHaut(HBox joueurHaut) {
|
public void setJoueurHaut(HBox joueurHaut) {
|
||||||
this.joueurHaut = joueurHaut;
|
this.joueurHaut = joueurHaut;
|
||||||
}
|
}
|
||||||
@ -95,8 +112,16 @@ public class ChoisirJoueur implements Initializable{
|
|||||||
return titre;
|
return titre;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTitre(Label titre) {
|
public void setTitre(Contexte c) {
|
||||||
this.titre = titre;
|
switch (c) {
|
||||||
|
case ATTAQUER:
|
||||||
|
titre.setText("Choisissez le joueur à attaquer!");
|
||||||
|
break;
|
||||||
|
case CHOISIR_VISION:
|
||||||
|
titre.setText("Choisissez le joueur à qui passer la carte vision!");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public JoueurIHM getJoueurSelected() {
|
public JoueurIHM getJoueurSelected() {
|
||||||
@ -106,4 +131,31 @@ public class ChoisirJoueur implements Initializable{
|
|||||||
public void setListJoueursIHM(List<JoueurIHM> joueursIHM) {
|
public void setListJoueursIHM(List<JoueurIHM> joueursIHM) {
|
||||||
this.listJoueursIHM = joueursIHM;
|
this.listJoueursIHM = joueursIHM;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void fireBtnIA(JoueurVirtuel jIA, Contexte c) {
|
||||||
|
for (Button b : buttons)
|
||||||
|
b.setDisable(true);
|
||||||
|
Timeline timeline = new Timeline(new KeyFrame(Duration.millis(2000), ae -> {
|
||||||
|
List<Joueur> joueurs = new ArrayList<>();
|
||||||
|
for (JoueurIHM jihm : listJoueursIHM) {
|
||||||
|
joueurs.add(jihm.getJoueur());
|
||||||
|
}
|
||||||
|
|
||||||
|
Joueur jchoisi = jIA.choisirJoueur(joueurs, c);
|
||||||
|
System.out.println(jchoisi+"oof");
|
||||||
|
int i = 0;
|
||||||
|
boolean found = false;
|
||||||
|
while (!found && i < listJoueursIHM.size()) {
|
||||||
|
System.out.println(listJoueursIHM.get(i).getJoueur());
|
||||||
|
if (listJoueursIHM.get(i).getJoueur().equals(jchoisi)) {
|
||||||
|
found = true;
|
||||||
|
buttons.get(i).setDisable(false);
|
||||||
|
buttons.get(i).fire();
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
timeline.play();
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,8 @@ import javafx.scene.text.Text;
|
|||||||
import javafx.util.Duration;
|
import javafx.util.Duration;
|
||||||
import main.Contexte;
|
import main.Contexte;
|
||||||
import main.GestionnaireJeu;
|
import main.GestionnaireJeu;
|
||||||
|
import main.Joueur;
|
||||||
|
import main.JoueurVirtuel;
|
||||||
|
|
||||||
public class LancerDes {
|
public class LancerDes {
|
||||||
private int resultat;
|
private int resultat;
|
||||||
@ -36,31 +38,31 @@ public class LancerDes {
|
|||||||
this.contexte = c;
|
this.contexte = c;
|
||||||
}
|
}
|
||||||
|
|
||||||
public VBox initLancer() {
|
public VBox initLancer(Joueur joueur) {
|
||||||
switch (typeDe) {
|
switch (typeDe) {
|
||||||
case LANCER_DE_4:
|
case LANCER_DE_4:
|
||||||
return initLancerD4();
|
return initLancerD4(joueur);
|
||||||
case LANCER_DE_6:
|
case LANCER_DE_6:
|
||||||
return initLancerD6();
|
return initLancerD6(joueur);
|
||||||
case LANCER_DES:
|
case LANCER_DES:
|
||||||
return initLancerBoth();
|
return initLancerBoth(joueur);
|
||||||
default :
|
default :
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private VBox initLancerD4() {
|
private VBox initLancerD4(Joueur j) {
|
||||||
DieImages images = new DieImages(4);
|
DieImages images = new DieImages(4);
|
||||||
Die die = new Die(images.getImages());
|
Die die = new Die(images.getImages());
|
||||||
ImageView stackpane = die.getdieFace();
|
ImageView stackpane = die.getdieFace();
|
||||||
stackpane.setFitHeight(100);
|
stackpane.setFitHeight(100);
|
||||||
stackpane.setFitWidth(100);
|
stackpane.setFitWidth(100);
|
||||||
Button btn = new Button();
|
Button btn = new Button();
|
||||||
Text txt = new Text("Lancez le dés pour attaquer");
|
Text txt = new Text("Lancez le dé");
|
||||||
txt.setFont(Font.font(null, null, null, 12));
|
txt.setFont(Font.font(null, null, null, 12));
|
||||||
txt.setFill(Color.WHITE);
|
txt.setFill(Color.WHITE);
|
||||||
btn.setText("Lancer dés");
|
btn.setText("Lancer dé");
|
||||||
btn.setOnAction((ActionEvent event) -> {
|
btn.setOnAction((ActionEvent event) -> {
|
||||||
btn.setDisable(true);// Disable Button
|
btn.setDisable(true);// Disable Button
|
||||||
Random random = new Random();
|
Random random = new Random();
|
||||||
@ -91,20 +93,22 @@ public class LancerDes {
|
|||||||
VBox root = new VBox(txt,des, new StackPane(btn));
|
VBox root = new VBox(txt,des, new StackPane(btn));
|
||||||
root.setAlignment(Pos.CENTER);
|
root.setAlignment(Pos.CENTER);
|
||||||
root.setSpacing(20);
|
root.setSpacing(20);
|
||||||
|
if(j instanceof JoueurVirtuel)
|
||||||
|
btn.fire();
|
||||||
return root;
|
return root;
|
||||||
}
|
}
|
||||||
|
|
||||||
private VBox initLancerD6() {
|
private VBox initLancerD6(Joueur j) {
|
||||||
DieImages images = new DieImages(6);
|
DieImages images = new DieImages(6);
|
||||||
Die die = new Die(images.getImages());
|
Die die = new Die(images.getImages());
|
||||||
ImageView stackpane = die.getdieFace();
|
ImageView stackpane = die.getdieFace();
|
||||||
stackpane.setFitHeight(100);
|
stackpane.setFitHeight(100);
|
||||||
stackpane.setFitWidth(100);
|
stackpane.setFitWidth(100);
|
||||||
Button btn = new Button();
|
Button btn = new Button();
|
||||||
Text txt = new Text("Lancez le dés pour attaquer");
|
Text txt = new Text("Lancez le dé");
|
||||||
txt.setFont(Font.font(null, null, null, 12));
|
txt.setFont(Font.font(null, null, null, 12));
|
||||||
txt.setFill(Color.WHITE);
|
txt.setFill(Color.WHITE);
|
||||||
btn.setText("Lancer dés");
|
btn.setText("Lancer dé");
|
||||||
btn.setOnAction((ActionEvent event) -> {
|
btn.setOnAction((ActionEvent event) -> {
|
||||||
btn.setDisable(true);// Disable Button
|
btn.setDisable(true);// Disable Button
|
||||||
Random random = new Random();
|
Random random = new Random();
|
||||||
@ -122,8 +126,6 @@ public class LancerDes {
|
|||||||
Timeline timeline2 = new Timeline(new KeyFrame(
|
Timeline timeline2 = new Timeline(new KeyFrame(
|
||||||
Duration.millis(2000),
|
Duration.millis(2000),
|
||||||
ae -> {
|
ae -> {
|
||||||
|
|
||||||
|
|
||||||
GestionnaireJeu.notifyPlateau();
|
GestionnaireJeu.notifyPlateau();
|
||||||
}));
|
}));
|
||||||
timeline2.play();
|
timeline2.play();
|
||||||
@ -135,10 +137,12 @@ public class LancerDes {
|
|||||||
VBox root = new VBox(txt,des, new StackPane(btn));
|
VBox root = new VBox(txt,des, new StackPane(btn));
|
||||||
root.setAlignment(Pos.CENTER);
|
root.setAlignment(Pos.CENTER);
|
||||||
root.setSpacing(20);
|
root.setSpacing(20);
|
||||||
|
if(j instanceof JoueurVirtuel)
|
||||||
|
btn.fire();
|
||||||
return root;
|
return root;
|
||||||
}
|
}
|
||||||
|
|
||||||
private VBox initLancerBoth() {
|
private VBox initLancerBoth(Joueur j) {
|
||||||
DieImages images = new DieImages(6);
|
DieImages images = new DieImages(6);
|
||||||
DieImages images2 = new DieImages(4);
|
DieImages images2 = new DieImages(4);
|
||||||
Die die = new Die(images.getImages());
|
Die die = new Die(images.getImages());
|
||||||
@ -150,7 +154,7 @@ public class LancerDes {
|
|||||||
stackpane.setFitWidth(100);
|
stackpane.setFitWidth(100);
|
||||||
stackpane2.setFitWidth(100);
|
stackpane2.setFitWidth(100);
|
||||||
Button btn = new Button();
|
Button btn = new Button();
|
||||||
Text txt = new Text("Lancez les dés pour vous deplacer");
|
Text txt = new Text("Lancez les dés");
|
||||||
txt.setFont(Font.font(null, null, null, 12));
|
txt.setFont(Font.font(null, null, null, 12));
|
||||||
txt.setFill(Color.WHITE);
|
txt.setFill(Color.WHITE);
|
||||||
btn.setText("Lancer dés");
|
btn.setText("Lancer dés");
|
||||||
@ -191,6 +195,8 @@ public class LancerDes {
|
|||||||
VBox root = new VBox(txt,des, new StackPane(btn));
|
VBox root = new VBox(txt,des, new StackPane(btn));
|
||||||
root.setAlignment(Pos.CENTER);
|
root.setAlignment(Pos.CENTER);
|
||||||
root.setSpacing(20);
|
root.setSpacing(20);
|
||||||
|
if(j instanceof JoueurVirtuel)
|
||||||
|
btn.fire();
|
||||||
return root;
|
return root;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,27 +3,41 @@ package ihm.controller;
|
|||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.ResourceBundle;
|
import java.util.ResourceBundle;
|
||||||
|
|
||||||
|
import javafx.animation.KeyFrame;
|
||||||
|
import javafx.animation.Timeline;
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.fxml.Initializable;
|
import javafx.fxml.Initializable;
|
||||||
import javafx.scene.control.Button;
|
import javafx.scene.control.Button;
|
||||||
import javafx.scene.image.Image;
|
import javafx.scene.image.Image;
|
||||||
import javafx.scene.image.ImageView;
|
import javafx.scene.image.ImageView;
|
||||||
|
import javafx.util.Duration;
|
||||||
import main.GestionnaireJeu;
|
import main.GestionnaireJeu;
|
||||||
|
|
||||||
public class LieuZJ implements Initializable {
|
public class LieuZJ implements Initializable {
|
||||||
@FXML private Button okButton;
|
@FXML
|
||||||
@FXML private ImageView imageView;
|
private Button okButton;
|
||||||
|
@FXML
|
||||||
|
private ImageView imageView;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initialize(URL arg0, ResourceBundle arg1) {
|
public void initialize(URL arg0, ResourceBundle arg1) {
|
||||||
|
|
||||||
okButton.setOnAction(x -> {
|
okButton.setOnAction(x -> {
|
||||||
GestionnaireJeu.notifyPlateau();
|
GestionnaireJeu.notifyPlateau();
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setImageView(Image imageCarte) {
|
public void setImageView(Image imageCarte) {
|
||||||
this.imageView.setImage(imageCarte);
|
this.imageView.setImage(imageCarte);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void fireBtnIA() {
|
||||||
|
okButton.setDisable(true);
|
||||||
|
Timeline timeline = new Timeline(new KeyFrame(Duration.millis(2000), ae -> {
|
||||||
|
okButton.setDisable(false);
|
||||||
|
okButton.fire();
|
||||||
|
}));
|
||||||
|
timeline.play();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -42,6 +42,7 @@ import javafx.util.Duration;
|
|||||||
import main.Contexte;
|
import main.Contexte;
|
||||||
import main.GestionnaireJeu;
|
import main.GestionnaireJeu;
|
||||||
import main.Joueur;
|
import main.Joueur;
|
||||||
|
import main.JoueurVirtuel;
|
||||||
|
|
||||||
public class PlateauController implements Initializable {
|
public class PlateauController implements Initializable {
|
||||||
|
|
||||||
@ -333,7 +334,7 @@ public class PlateauController implements Initializable {
|
|||||||
|
|
||||||
this.ld=new LancerDes(typeDice,rolls,c);
|
this.ld=new LancerDes(typeDice,rolls,c);
|
||||||
JoueurIHM jihm = getJoueurIHM(joueur);
|
JoueurIHM jihm = getJoueurIHM(joueur);
|
||||||
jihm.setZoneJoueur(ld.initLancer());
|
jihm.setZoneJoueur(ld.initLancer(joueur));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void afficherChoisir(Joueur j, Contexte contexte) throws IOException {
|
public void afficherChoisir(Joueur j, Contexte contexte) throws IOException {
|
||||||
@ -342,6 +343,19 @@ public class PlateauController implements Initializable {
|
|||||||
final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle);
|
final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle);
|
||||||
Pane root = (Pane)fxmlLoader.load();
|
Pane root = (Pane)fxmlLoader.load();
|
||||||
this.cb = fxmlLoader.getController();
|
this.cb = fxmlLoader.getController();
|
||||||
|
cb.setTitre(contexte);
|
||||||
|
if(j instanceof JoueurVirtuel) {
|
||||||
|
switch(contexte) {
|
||||||
|
case ACTIVER_EFFET_LIEU :
|
||||||
|
cb.fireBtnIAEffetLieu();
|
||||||
|
break;
|
||||||
|
case ATTAQUER :
|
||||||
|
cb.fireBtnIAattaquer((JoueurVirtuel)j, j.getJoueursAdjacents());
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
JoueurIHM jihm = getJoueurIHM(j);
|
JoueurIHM jihm = getJoueurIHM(j);
|
||||||
jihm.setZoneJoueur(root);
|
jihm.setZoneJoueur(root);
|
||||||
}
|
}
|
||||||
@ -399,6 +413,7 @@ public class PlateauController implements Initializable {
|
|||||||
Pane root = (Pane)fxmlLoader.load();
|
Pane root = (Pane)fxmlLoader.load();
|
||||||
LieuZJ lzj = fxmlLoader.getController();
|
LieuZJ lzj = fxmlLoader.getController();
|
||||||
lzj.setImageView(this.getImageCarte(j.getCarteLieu()));
|
lzj.setImageView(this.getImageCarte(j.getCarteLieu()));
|
||||||
|
if(j instanceof JoueurVirtuel) lzj.fireBtnIA();
|
||||||
JoueurIHM jihm = getJoueurIHM(j);
|
JoueurIHM jihm = getJoueurIHM(j);
|
||||||
jihm.setZoneJoueur(root);
|
jihm.setZoneJoueur(root);
|
||||||
}
|
}
|
||||||
@ -411,8 +426,11 @@ public class PlateauController implements Initializable {
|
|||||||
List<JoueurIHM> joueursIHM = toJoueursIHM(joueurs);
|
List<JoueurIHM> joueursIHM = toJoueursIHM(joueurs);
|
||||||
|
|
||||||
this.cj = fxmlLoader.getController();
|
this.cj = fxmlLoader.getController();
|
||||||
|
cj.setTitre(contexte);
|
||||||
this.cj.setListJoueursIHM(joueursIHM);
|
this.cj.setListJoueursIHM(joueursIHM);
|
||||||
this.cj.initButtons();
|
this.cj.initButtons();
|
||||||
|
if(j instanceof JoueurVirtuel)
|
||||||
|
cj.fireBtnIA((JoueurVirtuel)j, contexte);
|
||||||
JoueurIHM jihm = getJoueurIHM(j);
|
JoueurIHM jihm = getJoueurIHM(j);
|
||||||
jihm.setZoneJoueur(root);
|
jihm.setZoneJoueur(root);
|
||||||
}
|
}
|
||||||
@ -554,6 +572,7 @@ public class PlateauController implements Initializable {
|
|||||||
Image im = getImageCarte(cartePiochable);
|
Image im = getImageCarte(cartePiochable);
|
||||||
lzj.setImageView(im);
|
lzj.setImageView(im);
|
||||||
lzj.setText("Cachez la carte vision");
|
lzj.setText("Cachez la carte vision");
|
||||||
|
if(j instanceof JoueurVirtuel) lzj.fireBtnIA();
|
||||||
JoueurIHM jihm = getJoueurIHM(j);
|
JoueurIHM jihm = getJoueurIHM(j);
|
||||||
jihm.setZoneJoueur(root);
|
jihm.setZoneJoueur(root);
|
||||||
|
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
package ihm.controller;
|
package ihm.controller;
|
||||||
|
|
||||||
|
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.ResourceBundle;
|
import java.util.ResourceBundle;
|
||||||
|
|
||||||
|
import javafx.animation.KeyFrame;
|
||||||
|
import javafx.animation.Timeline;
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.fxml.Initializable;
|
import javafx.fxml.Initializable;
|
||||||
import javafx.scene.control.Button;
|
import javafx.scene.control.Button;
|
||||||
@ -16,32 +17,44 @@ import javafx.scene.layout.BackgroundImage;
|
|||||||
import javafx.scene.layout.BackgroundPosition;
|
import javafx.scene.layout.BackgroundPosition;
|
||||||
import javafx.scene.layout.BackgroundRepeat;
|
import javafx.scene.layout.BackgroundRepeat;
|
||||||
import javafx.scene.layout.BackgroundSize;
|
import javafx.scene.layout.BackgroundSize;
|
||||||
|
import javafx.util.Duration;
|
||||||
import main.GestionnaireJeu;
|
import main.GestionnaireJeu;
|
||||||
|
|
||||||
public class RecevoirCarte implements Initializable {
|
public class RecevoirCarte implements Initializable {
|
||||||
@FXML private Button okButton;
|
@FXML
|
||||||
@FXML private Label label;
|
private Button okButton;
|
||||||
@FXML private ImageView imageView;
|
@FXML
|
||||||
|
private Label label;
|
||||||
|
@FXML
|
||||||
|
private ImageView imageView;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initialize(URL arg0, ResourceBundle arg1) {
|
public void initialize(URL arg0, ResourceBundle arg1) {
|
||||||
|
|
||||||
okButton.setOnAction(x -> {
|
okButton.setOnAction(x -> {
|
||||||
GestionnaireJeu.notifyPlateau();
|
GestionnaireJeu.notifyPlateau();
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setText(String name) {
|
public void setText(String name) {
|
||||||
this.label.setText(name);
|
this.label.setText(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setImageView(Image imageCarte) {
|
public void setImageView(Image imageCarte) {
|
||||||
AnchorPane ap = (AnchorPane) imageView.getParent();
|
AnchorPane ap = (AnchorPane) imageView.getParent();
|
||||||
|
|
||||||
BackgroundImage myBI= new BackgroundImage(imageCarte,
|
BackgroundImage myBI = new BackgroundImage(imageCarte, BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT,
|
||||||
BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT, BackgroundPosition.DEFAULT,
|
BackgroundPosition.DEFAULT, new BackgroundSize(BackgroundSize.AUTO, 1.0, true, true, false, false));
|
||||||
new BackgroundSize(BackgroundSize.AUTO,1.0,true,true,false,false));
|
|
||||||
ap.setBackground(new Background(myBI));
|
ap.setBackground(new Background(myBI));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void fireBtnIA() {
|
||||||
|
okButton.setDisable(true);
|
||||||
|
Timeline timeline = new Timeline(new KeyFrame(Duration.millis(2000), ae -> {
|
||||||
|
okButton.setDisable(false);
|
||||||
|
okButton.fire();
|
||||||
|
}));
|
||||||
|
timeline.play();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -28,6 +28,8 @@ public class ControleurIA {
|
|||||||
// precondition 2 : on n'appellera pas cette methode si jIA est seul sur le lieu
|
// precondition 2 : on n'appellera pas cette methode si jIA est seul sur le lieu
|
||||||
public boolean choixSiAttaquer(JoueurVirtuel jIA, List<Joueur> joueursLieu) {
|
public boolean choixSiAttaquer(JoueurVirtuel jIA, List<Joueur> joueursLieu) {
|
||||||
double res = getRandomPercentage();
|
double res = getRandomPercentage();
|
||||||
|
System.out.println(res);
|
||||||
|
System.out.println(joueursLieu);
|
||||||
if (getEnnemisJoueurs(jIA, joueursLieu).size() > 0) {
|
if (getEnnemisJoueurs(jIA, joueursLieu).size() > 0) {
|
||||||
int diff = jIA.getDifficulte();
|
int diff = jIA.getDifficulte();
|
||||||
switch (diff) {
|
switch (diff) {
|
||||||
|
@ -116,11 +116,16 @@ public class GestionnaireJeu {
|
|||||||
if(cls == CarteEquipement.class) {
|
if(cls == CarteEquipement.class) {
|
||||||
return choisirEquipementVole(joueur, (List<CarteEquipement>) list);
|
return choisirEquipementVole(joueur, (List<CarteEquipement>) list);
|
||||||
}else if(cls == Joueur.class) {
|
}else if(cls == Joueur.class) {
|
||||||
return choisirJoueur(joueur, (List<Joueur>) list, Contexte.ACTIVER_EFFET_LIEU);
|
return choisirJoueur(joueur, (List<Joueur>) list, Contexte.CHOISIR_VISION);
|
||||||
}
|
}
|
||||||
return list.get(0);
|
return list.get(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public Object choisir(Joueur joueur, List<?> list, Contexte c) {
|
||||||
|
return choisirJoueur(joueur, (List<Joueur>) list, c);
|
||||||
|
}
|
||||||
|
|
||||||
public CarteEquipement choisirEquipementVole(Joueur joueur, List<CarteEquipement> lce) {
|
public CarteEquipement choisirEquipementVole(Joueur joueur, List<CarteEquipement> lce) {
|
||||||
Platform.runLater(() -> {
|
Platform.runLater(() -> {
|
||||||
try {
|
try {
|
||||||
|
@ -272,4 +272,8 @@ public class Joueur {
|
|||||||
public boolean isMetamorph() {
|
public boolean isMetamorph() {
|
||||||
return this.cartePersonnage instanceof Metamorphe;
|
return this.cartePersonnage instanceof Metamorphe;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Joueur choisir(List<Joueur> adjacents, Contexte attaquer) {
|
||||||
|
return this.plateau.choisir(this,adjacents, attaquer);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@ package main;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
import carte.CarteEquipement;
|
import carte.CarteEquipement;
|
||||||
import carte.CarteEquipementStat;
|
import carte.CarteEquipementStat;
|
||||||
@ -51,6 +52,9 @@ public class JoueurVirtuel extends Joueur {
|
|||||||
case EFFET_POSITIF_SUR_AUTRES:
|
case EFFET_POSITIF_SUR_AUTRES:
|
||||||
res = choisirJoueurAmi(joueurs);
|
res = choisirJoueurAmi(joueurs);
|
||||||
break;
|
break;
|
||||||
|
case CHOISIR_VISION:
|
||||||
|
res = joueurs.get((int) Math.floor(Math.random() * joueurs.size())); // a revoir inshallah
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
res = null; // faire exception?
|
res = null; // faire exception?
|
||||||
}
|
}
|
||||||
|
@ -289,7 +289,7 @@ public class Plateau extends Thread{
|
|||||||
if(currentJoueur.choisir(Contexte.ATTAQUER)){
|
if(currentJoueur.choisir(Contexte.ATTAQUER)){
|
||||||
if(currentJoueur.hasOpponents()) {
|
if(currentJoueur.hasOpponents()) {
|
||||||
List<Joueur> adjacents = currentJoueur.getJoueursRange();
|
List<Joueur> adjacents = currentJoueur.getJoueursRange();
|
||||||
Joueur cible = (Joueur) currentJoueur.choisir(adjacents,Joueur.class);
|
Joueur cible = (Joueur) currentJoueur.choisir(adjacents,Contexte.ATTAQUER);
|
||||||
attaquer(currentJoueur,cible);
|
attaquer(currentJoueur,cible);
|
||||||
if(isPartieTerminee()) break;
|
if(isPartieTerminee()) break;
|
||||||
}else {
|
}else {
|
||||||
@ -368,7 +368,7 @@ public class Plateau extends Thread{
|
|||||||
public int roll6(Joueur j) {
|
public int roll6(Joueur j) {
|
||||||
|
|
||||||
int roll = this.rollRandom(6);
|
int roll = this.rollRandom(6);
|
||||||
gj.rollDice(j, PlateauController.DICE_QUATRE, roll);
|
gj.rollDice(j, PlateauController.DICE_SIX, roll);
|
||||||
return roll;
|
return roll;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -385,7 +385,7 @@ public class Plateau extends Thread{
|
|||||||
int roll6 = rollRandom(6);
|
int roll6 = rollRandom(6);
|
||||||
int sum = Math.abs(roll4+roll6);
|
int sum = Math.abs(roll4+roll6);
|
||||||
gj.rollDice(j, PlateauController.DICE_BOTH, roll4,roll6);
|
gj.rollDice(j, PlateauController.DICE_BOTH, roll4,roll6);
|
||||||
return 3;
|
return sum;
|
||||||
//return Math.abs(roll4+roll6);
|
//return Math.abs(roll4+roll6);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -480,4 +480,8 @@ public class Plateau extends Thread{
|
|||||||
gj.retirerEquipement(joueur,e);
|
gj.retirerEquipement(joueur,e);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Joueur choisir(Joueur joueur, List<Joueur> adjacents, Contexte attaquer) {
|
||||||
|
return gj.choisirJoueur(joueur, adjacents, attaquer);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user