prise en compte ia

This commit is contained in:
Kruss
2020-05-14 08:21:42 +02:00
parent b69955273d
commit d858b1bcb9
12 changed files with 253 additions and 78 deletions

View File

@@ -28,6 +28,8 @@ public class ControleurIA {
// precondition 2 : on n'appellera pas cette methode si jIA est seul sur le lieu
public boolean choixSiAttaquer(JoueurVirtuel jIA, List<Joueur> joueursLieu) {
double res = getRandomPercentage();
System.out.println(res);
System.out.println(joueursLieu);
if (getEnnemisJoueurs(jIA, joueursLieu).size() > 0) {
int diff = jIA.getDifficulte();
switch (diff) {

View File

@@ -116,11 +116,16 @@ public class GestionnaireJeu {
if(cls == CarteEquipement.class) {
return choisirEquipementVole(joueur, (List<CarteEquipement>) list);
}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);
}
@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) {
Platform.runLater(() -> {
try {

View File

@@ -272,4 +272,8 @@ public class Joueur {
public boolean isMetamorph() {
return this.cartePersonnage instanceof Metamorphe;
}
public Joueur choisir(List<Joueur> adjacents, Contexte attaquer) {
return this.plateau.choisir(this,adjacents, attaquer);
}
}

View File

@@ -2,6 +2,7 @@ package main;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import carte.CarteEquipement;
import carte.CarteEquipementStat;
@@ -51,6 +52,9 @@ public class JoueurVirtuel extends Joueur {
case EFFET_POSITIF_SUR_AUTRES:
res = choisirJoueurAmi(joueurs);
break;
case CHOISIR_VISION:
res = joueurs.get((int) Math.floor(Math.random() * joueurs.size())); // a revoir inshallah
break;
default:
res = null; // faire exception?
}

View File

@@ -289,7 +289,7 @@ public class Plateau extends Thread{
if(currentJoueur.choisir(Contexte.ATTAQUER)){
if(currentJoueur.hasOpponents()) {
List<Joueur> adjacents = currentJoueur.getJoueursRange();
Joueur cible = (Joueur) currentJoueur.choisir(adjacents,Joueur.class);
Joueur cible = (Joueur) currentJoueur.choisir(adjacents,Contexte.ATTAQUER);
attaquer(currentJoueur,cible);
if(isPartieTerminee()) break;
}else {
@@ -368,7 +368,7 @@ public class Plateau extends Thread{
public int roll6(Joueur j) {
int roll = this.rollRandom(6);
gj.rollDice(j, PlateauController.DICE_QUATRE, roll);
gj.rollDice(j, PlateauController.DICE_SIX, roll);
return roll;
}
@@ -385,7 +385,7 @@ public class Plateau extends Thread{
int roll6 = rollRandom(6);
int sum = Math.abs(roll4+roll6);
gj.rollDice(j, PlateauController.DICE_BOTH, roll4,roll6);
return 3;
return sum;
//return Math.abs(roll4+roll6);
}
@@ -480,4 +480,8 @@ public class Plateau extends Thread{
gj.retirerEquipement(joueur,e);
}
public Joueur choisir(Joueur joueur, List<Joueur> adjacents, Contexte attaquer) {
return gj.choisirJoueur(joueur, adjacents, attaquer);
}
}