remise de la partie ihm
This commit is contained in:
commit
b1a64cbb7a
7
src/condition/Condition.java
Normal file
7
src/condition/Condition.java
Normal file
@ -0,0 +1,7 @@
|
||||
package condition;
|
||||
|
||||
public abstract class Condition {
|
||||
|
||||
|
||||
|
||||
}
|
@ -8,11 +8,19 @@ public class MenuController {
|
||||
@FXML
|
||||
private Label label;
|
||||
|
||||
<<<<<<< HEAD
|
||||
public void commencerPartie(MouseEvent mouseEvent) {
|
||||
System.out.println("Bonjouuuuur!");
|
||||
}
|
||||
|
||||
public void afficherRegle(MouseEvent mouseEvent) {
|
||||
=======
|
||||
public void afficheBonjour(MouseEvent mouseEvent) {
|
||||
System.out.println("Bonjouuuuur!");
|
||||
}
|
||||
|
||||
public void changerNom(MouseEvent mouseEvent) {
|
||||
>>>>>>> 88af99848491a78118cac6121fa65e6c2ffd3f56
|
||||
System.out.println("clik");
|
||||
}
|
||||
}
|
||||
|
@ -7,12 +7,20 @@
|
||||
|
||||
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" onMouseClicked="#afficheBonjour" prefHeight="400.0" prefWidth="600.0" styleClass="background" stylesheets="@style/menu.css" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ihm.controller.MenuController">
|
||||
<children>
|
||||
<<<<<<< HEAD
|
||||
<Button layoutX="231.0" layoutY="161.0" mnemonicParsing="false" onMouseClicked="#commencerPartie" prefHeight="39.0" prefWidth="139.0" styleClass="bouton" stylesheets="@style/menu.css" text="Jouer">
|
||||
=======
|
||||
<Button layoutX="231.0" layoutY="161.0" mnemonicParsing="false" onMouseClicked="#changerNom" prefHeight="39.0" prefWidth="139.0" styleClass="bouton" stylesheets="@style/menu.css" text="Jouer">
|
||||
>>>>>>> 88af99848491a78118cac6121fa65e6c2ffd3f56
|
||||
<font>
|
||||
<Font size="18.0" />
|
||||
</font>
|
||||
</Button>
|
||||
<<<<<<< HEAD
|
||||
<Button layoutX="230.0" layoutY="244.0" mnemonicParsing="false" onMouseClicked="#afficherRegle" styleClass="bouton" stylesheets="@style/menu.css" text="Règles du jeux">
|
||||
=======
|
||||
<Button layoutX="230.0" layoutY="244.0" mnemonicParsing="false" styleClass="bouton" stylesheets="@style/menu.css" text="Règles du jeux">
|
||||
>>>>>>> 88af99848491a78118cac6121fa65e6c2ffd3f56
|
||||
<font>
|
||||
<Font size="18.0" />
|
||||
</font>
|
||||
|
@ -180,10 +180,17 @@
|
||||
<children>
|
||||
<VBox alignment="CENTER" prefHeight="136.0" prefWidth="17.0">
|
||||
<children>
|
||||
<<<<<<< HEAD
|
||||
<Circle fill="#ff1f1f" radius="8.0" stroke="BLACK" strokeType="INSIDE" />
|
||||
<Circle fill="#fccb0a" radius="8.0" stroke="BLACK" strokeType="INSIDE" />
|
||||
<Circle fill="#f1ff1f" radius="8.0" stroke="BLACK" strokeType="INSIDE" />
|
||||
<Circle fill="#1fff35" radius="8.0" stroke="BLACK" strokeType="INSIDE" />
|
||||
=======
|
||||
<Circle fill="DODGERBLUE" radius="8.0" stroke="BLACK" strokeType="INSIDE" />
|
||||
<Circle fill="DODGERBLUE" radius="8.0" stroke="BLACK" strokeType="INSIDE" />
|
||||
<Circle fill="DODGERBLUE" radius="8.0" stroke="BLACK" strokeType="INSIDE" />
|
||||
<Circle fill="DODGERBLUE" radius="8.0" stroke="BLACK" strokeType="INSIDE" />
|
||||
>>>>>>> 88af99848491a78118cac6121fa65e6c2ffd3f56
|
||||
</children>
|
||||
</VBox>
|
||||
<HBox alignment="CENTER" prefHeight="100.0" prefWidth="200.0">
|
||||
@ -206,10 +213,17 @@
|
||||
</HBox>
|
||||
<VBox alignment="CENTER" prefHeight="136.0" prefWidth="19.0">
|
||||
<children>
|
||||
<<<<<<< HEAD
|
||||
<Circle fill="#21e9ff" radius="8.0" stroke="BLACK" strokeType="INSIDE" />
|
||||
<Circle fill="#4421ff" radius="8.0" stroke="BLACK" strokeType="INSIDE" />
|
||||
<Circle fill="#ff21d8" radius="8.0" stroke="BLACK" strokeType="INSIDE" />
|
||||
<Circle fill="#d521ff" radius="8.0" stroke="BLACK" strokeType="INSIDE" />
|
||||
=======
|
||||
<Circle fill="DODGERBLUE" radius="8.0" stroke="BLACK" strokeType="INSIDE" />
|
||||
<Circle fill="DODGERBLUE" radius="8.0" stroke="BLACK" strokeType="INSIDE" />
|
||||
<Circle fill="DODGERBLUE" radius="8.0" stroke="BLACK" strokeType="INSIDE" />
|
||||
<Circle fill="DODGERBLUE" radius="8.0" stroke="BLACK" strokeType="INSIDE" />
|
||||
>>>>>>> 88af99848491a78118cac6121fa65e6c2ffd3f56
|
||||
</children>
|
||||
</VBox>
|
||||
</children>
|
||||
|
16
src/main/CarteLieu.java
Normal file
16
src/main/CarteLieu.java
Normal file
@ -0,0 +1,16 @@
|
||||
package main;
|
||||
import java.util.List;
|
||||
|
||||
public class CarteLieu {
|
||||
|
||||
public List<Joueur> getJoueursAdjacents() {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<Joueur> getJoueurs() {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
151
src/main/ControleurIA.java
Normal file
151
src/main/ControleurIA.java
Normal file
@ -0,0 +1,151 @@
|
||||
package main;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ControleurIA {
|
||||
|
||||
public static boolean choixUtiliserPouvoirLieu() {
|
||||
double res = getRandomPercentage();
|
||||
if (res < 80)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
// precondition 1 : la liste joueursLieu ne contiendra pas jIA lui-meme
|
||||
// precondition 2 : on n'appellera pas cette methode si jIA est seul sur le lieu
|
||||
public static boolean choixSiAttaquer(JoueurVirtuel jIA, List<Joueur> joueursLieu) {
|
||||
double res = getRandomPercentage();
|
||||
if (getEnnemisJoueurs(jIA, joueursLieu).size() > 0) {
|
||||
int diff = jIA.getDifficulte();
|
||||
switch (diff) {
|
||||
case 1:
|
||||
if (res < 25)
|
||||
return true;
|
||||
break;
|
||||
case 2:
|
||||
if (res < 50)
|
||||
return true;
|
||||
break;
|
||||
case 3:
|
||||
if (res < 75)
|
||||
return true;
|
||||
break;
|
||||
default:
|
||||
}
|
||||
} else if (res < 10)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
public static double getRandomPercentage() {
|
||||
return Math.floor(Math.random() * 100);
|
||||
}
|
||||
|
||||
public static List<Joueur> getEnnemisJoueurs(JoueurVirtuel jIA, List<Joueur> joueursLieu) {
|
||||
List<Joueur> res = new ArrayList<>();
|
||||
String equipejIA = jIA.getEquipe();
|
||||
if (equipejIA.equals("NEUTRE"))
|
||||
res = joueursLieu;
|
||||
else {
|
||||
for (Joueur j : joueursLieu) {
|
||||
if (!equipejIA.equals(j.getEquipe()))
|
||||
res.add(j);
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
// loup-garou : si attaquee par joueur pas du meme camps 60%? devoilement
|
||||
public static boolean devoilerIALoupGarou(JoueurVirtuel jIA, Joueur jAttaquant) {
|
||||
String equipejIA = jIA.getEquipe();
|
||||
double rand = getRandomPercentage();
|
||||
if (!equipejIA.equals(jAttaquant.getEquipe())) {
|
||||
if (rand < 60)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// metamorphe : si reçoit carte vision 50%? mentir sans se devoiler
|
||||
public static boolean mentirIAMetamorphe(JoueurVirtuel jIA) {
|
||||
if (getRandomPercentage() < 50)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
// vampire : si attaque joueur et propre vie<10?hp 60%? (plus vie baisse, plus
|
||||
// proba augmente) devoilement
|
||||
public static boolean devoilerIAVampire(JoueurVirtuel jIA, Joueur jAttaquee) {
|
||||
String equipejIA = jIA.getEquipe();
|
||||
double rand = getRandomPercentage();
|
||||
if (!equipejIA.equals(jAttaquee.getEquipe())) {
|
||||
if (rand < 940 / 9 - (40 * jIA.getHP()))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// emi : si pas de shadow sur lieu actuel mais un sur lieu adjacent 60%?
|
||||
// devoilement
|
||||
public static boolean devoilerIAEmi(JoueurVirtuel jIA, CarteLieu cl) {
|
||||
List<Joueur> joueursProx = cl.getJoueurs();
|
||||
if (getEnnemisJoueurs(jIA, joueursProx).size() > 0)
|
||||
return false;
|
||||
List<Joueur> joueursAdj = cl.getJoueursAdjacents();
|
||||
if (getEnnemisJoueurs(jIA, joueursAdj).size() > 0)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
// georges: si vie d'un shadow <=4hp 90%? devoilement avant de commencer le tour
|
||||
public static boolean devoilerIAGeorges(JoueurVirtuel jIA, List<Joueur> jPlateau) {
|
||||
List<Joueur> jEnnemis = getEnnemisJoueurs(jIA, jPlateau);
|
||||
boolean devoiler = false;
|
||||
double rand = getRandomPercentage();
|
||||
for (Joueur j : jEnnemis) {
|
||||
if (j.getHP() <= 4)
|
||||
devoiler = true;
|
||||
}
|
||||
if (devoiler && rand < 90)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
// franklin: si vie d'un shadow <=6hp 90%? devoilement avant de commencer le
|
||||
// tour
|
||||
public static boolean devoilerIAFranklin(JoueurVirtuel jIA, List<Joueur> jPlateau) {
|
||||
List<Joueur> jEnnemis = getEnnemisJoueurs(jIA, jPlateau);
|
||||
boolean devoiler = false;
|
||||
double rand = getRandomPercentage();
|
||||
for (Joueur j : jEnnemis) {
|
||||
if (j.getHP() <= 6)
|
||||
devoiler = true;
|
||||
}
|
||||
if (devoiler && rand < 90)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
// allie : si vie<5?hp (plus vie baisse, plus proba augmente) 60%? devoilement
|
||||
public static boolean devoilerIAAllie(JoueurVirtuel jIA) {
|
||||
if (getRandomPercentage() < 110 - 10 * jIA.getHP())
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
// bob : si attaque joueur possedant equipement 70?% devoilement
|
||||
public static boolean devoilerIABob(JoueurVirtuel jIA, Joueur jAttaquee) {
|
||||
if (jAttaquee.getNbEquipments() > 0 && getRandomPercentage() < 70)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
// charles : si attaque joueur possedant moins de vie que attaque de charles
|
||||
// 85?% devoilement
|
||||
public static boolean devoilerIACharles(JoueurVirtuel jIA, Joueur jAttaquee) {
|
||||
if (jAttaquee.getHP() <= jIA.getDamage() && jIA.getHP() >= 2 && getRandomPercentage() <= 85)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
5
src/main/Effet.java
Normal file
5
src/main/Effet.java
Normal file
@ -0,0 +1,5 @@
|
||||
package main;
|
||||
|
||||
public class Effet {
|
||||
|
||||
}
|
5
src/main/Equipement.java
Normal file
5
src/main/Equipement.java
Normal file
@ -0,0 +1,5 @@
|
||||
package main;
|
||||
|
||||
public class Equipement {
|
||||
|
||||
}
|
12
src/main/GestionnaireEquipements.java
Normal file
12
src/main/GestionnaireEquipements.java
Normal file
@ -0,0 +1,12 @@
|
||||
package main;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class GestionnaireEquipements {
|
||||
private Map<String, Integer> stats = new HashMap<>();
|
||||
|
||||
public int getNbEquipments() {
|
||||
return stats.size();
|
||||
}
|
||||
}
|
26
src/main/Joueur.java
Normal file
26
src/main/Joueur.java
Normal file
@ -0,0 +1,26 @@
|
||||
package main;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class Joueur {
|
||||
private Map<String, Integer> stats = new HashMap<>();
|
||||
private GestionnaireEquipements gestionnaireEquipements;
|
||||
|
||||
//shadows, hunters ou neutre
|
||||
public String getEquipe() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public int getHP() {
|
||||
return stats.get("HP");
|
||||
}
|
||||
|
||||
public int getDamage() {
|
||||
return stats.get("DAMAGE");
|
||||
}
|
||||
|
||||
public int getNbEquipments() {
|
||||
return gestionnaireEquipements.getNbEquipments();
|
||||
}
|
||||
|
||||
}
|
26
src/main/JoueurVirtuel.java
Normal file
26
src/main/JoueurVirtuel.java
Normal file
@ -0,0 +1,26 @@
|
||||
package main;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
public class JoueurVirtuel extends Joueur {
|
||||
|
||||
private int nvDifficulte = 1; //possibilite de 1, 2 ou 3
|
||||
|
||||
public JoueurVirtuel ( ) {}
|
||||
|
||||
public Effet choisirEffet(List<Effet> effets) {
|
||||
return effets.get((int)Math.floor(Math.random() * effets.size()));
|
||||
}
|
||||
|
||||
public Equipement choisirEquipement(List<Equipement> equips) {
|
||||
return equips.get((int)Math.floor(Math.random() * equips.size()));
|
||||
}
|
||||
|
||||
public Joueur choisirJoueur(List<Joueur> joueurs) {
|
||||
return joueurs.get((int)Math.floor(Math.random() * joueurs.size()));
|
||||
}
|
||||
|
||||
public int getDifficulte() {
|
||||
return nvDifficulte;
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user