diff --git a/src/carte/CarteLieu.java b/src/carte/CarteLieu.java index af11b05..9f664e8 100644 --- a/src/carte/CarteLieu.java +++ b/src/carte/CarteLieu.java @@ -50,6 +50,11 @@ public class CarteLieu extends CarteEffet{ this.voisin = cl; } + public Point getCoordinates() { + return this.coordinates; + } + + } diff --git a/src/main/Joueur.java b/src/main/Joueur.java index 37b53d3..301a341 100644 --- a/src/main/Joueur.java +++ b/src/main/Joueur.java @@ -109,7 +109,7 @@ public class Joueur { if(blessure > 0) { j2.addStat(PLAYER_HP, -blessure); - this.cartePersonnage.attaquer(j2); + //this.cartePersonnage.attaquer(j2); } } diff --git a/src/main/Plateau.java b/src/main/Plateau.java index 5e2edda..b286044 100644 --- a/src/main/Plateau.java +++ b/src/main/Plateau.java @@ -72,12 +72,15 @@ public class Plateau { public void deplacer(Joueur currentJoueur) { - int roll = sumRolls(); + boolean attributed = false; while(!attributed) { + int roll = sumRolls(); for(CarteLieu cl : lieux) { + if(cl.coordinatesContains(roll) && currentJoueur.getCarteLieu() != cl){ + currentJoueur.deplacer(cl); attributed = true; break; diff --git a/src/personnage/Charles.java b/src/personnage/Charles.java index 60a1afb..9267706 100644 --- a/src/personnage/Charles.java +++ b/src/personnage/Charles.java @@ -13,7 +13,7 @@ public class Charles extends CartePersonnage{ public Charles(String nom, int hp, Joueur joueur) { super(nom, nom, hp, joueur); - Action action = new ActionAltererStatistiquesJoueur("HP",2,true); + Action action = new ActionAltererStatistiquesJoueur("HP",-2,true); Effet effet = new EffetSelf(action); this.setEffet(effet); @@ -31,7 +31,6 @@ public class Charles extends CartePersonnage{ @Override public void utiliser() { - // TODO Auto-generated method stub this.getEffet().utiliser(this.getJoueur()); } } diff --git a/tests/effet/action/ActionAttaquerTest.java b/tests/effet/action/ActionAttaquerTest.java index 2e02be5..9bcdbbc 100644 --- a/tests/effet/action/ActionAttaquerTest.java +++ b/tests/effet/action/ActionAttaquerTest.java @@ -50,8 +50,6 @@ class ActionAttaquerTest { ActionAttaquer aa = new ActionAttaquer(); int pvBaseJ2 = 100; - j2.setStat(Joueur.PLAYER_HP, pvBaseJ2); - aa.affecte(j1, j2); for(int j = 0; j< 1000; j++) { diff --git a/tests/main/PlateauTest.java b/tests/main/PlateauTest.java index 80f326b..e37ea00 100644 --- a/tests/main/PlateauTest.java +++ b/tests/main/PlateauTest.java @@ -1,7 +1,7 @@ package main; +import static org.junit.Assert.assertTrue; import static org.junit.jupiter.api.Assertions.assertNotEquals; -import static org.junit.jupiter.api.Assertions.fail; import java.awt.Point; import java.util.ArrayList; @@ -18,6 +18,7 @@ import effet.EffetChoisirEffet; import effet.EffetSelf; import effet.action.ActionAltererStatistiquesJoueur; import effet.action.ActionVoler; +import personnage.Allie; class PlateauTest { @@ -37,6 +38,12 @@ class PlateauTest { j1 = new Joueur("Mohamed"); j2 = new Joueur("Pierrot"); + Allie allie1 = new Allie(j1); + Allie allie2 = new Allie(j2); + + j1.setCartePersonnage(allie1); + j2.setCartePersonnage(allie2); + List joueurs = new ArrayList(); joueurs.add(j2); joueurs.add(j1); @@ -95,4 +102,35 @@ class PlateauTest { assertNotEquals(lieuDepart, j1.getCarteLieu()); } + /* + * L'attaque du plateau se base sur des tirages aléatoires de dés. + * La réussite moyenne d'une attaque est d'environ 80 % + * En autorisant une erreur d'environ 2 % + * + * ,on vérifie que la différence du nombre d'attaques réussie avec la moyenne + * des attaques réussie est bien inférieure à 2 %. + */ + @Test + void attaquer_attaqueBienEnvoyee() { + + int error = 2; + int pvBaseJ2 = 100; + + + for(int j = 0; j< 1000; j++) { + + int countNb = 0; + + for(int i = 0; i < 10000; i++) + { + j2.setStat(Joueur.PLAYER_HP, pvBaseJ2); + p.attaquer(j1, j2); + if(j2.getStat(Joueur.PLAYER_HP) < 100) countNb++; + } + + countNb /= 100; + assertTrue(Math.abs(countNb-80) <= error); + } + } + }