CarteLieu possède désormais ses propres pioches
This commit is contained in:
parent
461c38ba1b
commit
0f8a283e31
@ -2,19 +2,21 @@ package carte;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import main.Joueur;
|
import main.Joueur;
|
||||||
|
import main.Pioche;
|
||||||
import main.Type;
|
import main.Type;
|
||||||
|
import main.TypeLumiere;
|
||||||
|
|
||||||
|
|
||||||
public class CarteLieu extends CarteEffet{
|
public class CarteLieu<T extends Type> extends CarteEffet{
|
||||||
|
|
||||||
private Type field;
|
private Pioche<T> piocheLumiere;
|
||||||
|
|
||||||
// Liste des joueurs actuellement présentsur le lieu
|
|
||||||
private List<Joueur> listeJoueur;
|
private List<Joueur> listeJoueur;
|
||||||
|
|
||||||
|
|
||||||
public void utiliser(Joueur j) {
|
public void utiliser(Joueur j) {
|
||||||
super.utiliser(j);
|
|
||||||
|
CartePiochable<?> carte = piocheLumiere.piocher();
|
||||||
|
carte.utiliser(j);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,7 @@ public class ActionAttaquer extends Action {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void affecte(Joueur j1, Joueur j2) {
|
public void affecte(Joueur j1, Joueur j2) {
|
||||||
|
|
||||||
Plateau p = j1.getPlateau();
|
Plateau p = j1.getPlateau();
|
||||||
p.attaquer(j1, j2);
|
p.attaquer(j1, j2);
|
||||||
|
|
||||||
|
@ -1,22 +0,0 @@
|
|||||||
package effet.action;
|
|
||||||
|
|
||||||
import main.Joueur;
|
|
||||||
|
|
||||||
public class ActionPiocher extends Action{
|
|
||||||
|
|
||||||
public ActionPiocher() {
|
|
||||||
super();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Lance l'action de piocher une carte.
|
|
||||||
* @param j1 Le joueur qui lance l'action
|
|
||||||
* @param j2 Le joueur qui subit l'action
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void affecte(Joueur j1, Joueur j2) {
|
|
||||||
j2.piocher();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -10,12 +10,13 @@ import personnage.CartePersonnage;
|
|||||||
|
|
||||||
public class Joueur {
|
public class Joueur {
|
||||||
private GestionnaireEquipements gestionnaireEquipements;
|
private GestionnaireEquipements gestionnaireEquipements;
|
||||||
|
|
||||||
private String nom;
|
private String nom;
|
||||||
private boolean revele;
|
private boolean revele;
|
||||||
private Plateau plateau;
|
private Plateau plateau;
|
||||||
private CartePersonnage cartePersonnage;
|
private CartePersonnage cartePersonnage;
|
||||||
private Equipe equipe;
|
private Equipe equipe;
|
||||||
|
private CarteLieu carteLieu;
|
||||||
|
|
||||||
|
|
||||||
// map keys
|
// map keys
|
||||||
public static final String PLAYER_HP = "hp";
|
public static final String PLAYER_HP = "hp";
|
||||||
@ -79,8 +80,10 @@ public class Joueur {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public List<Joueur> getJoueursAdjacents() {
|
public List<Joueur> getJoueursAdjacents() {
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return null;
|
List<Joueur> joueurs = this.carteLieu.getJoueursAdjacents();
|
||||||
|
joueurs.remove(this);
|
||||||
|
return joueurs;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Equipement[] getEquipements() {
|
public Equipement[] getEquipements() {
|
||||||
@ -98,11 +101,6 @@ public class Joueur {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void piocher() {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public void attaquer(Joueur j2, int attaqueDice) {
|
public void attaquer(Joueur j2, int attaqueDice) {
|
||||||
|
|
||||||
int blessure = evaluerImmunite(j2)*(this.evaluerAttaque(j2) + attaqueDice);
|
int blessure = evaluerImmunite(j2)*(this.evaluerAttaque(j2) + attaqueDice);
|
||||||
@ -155,9 +153,7 @@ public class Joueur {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setCartePersonnage(CartePersonnage cp) {
|
public void setCartePersonnage(CartePersonnage cp) {
|
||||||
|
|
||||||
this.cartePersonnage = cp;
|
this.cartePersonnage = cp;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setEquipe(Equipe equipe) {
|
public void setEquipe(Equipe equipe) {
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package main;
|
package main;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Stack;
|
import java.util.Stack;
|
||||||
|
|
||||||
import carte.CartePiochable;
|
import carte.CartePiochable;
|
||||||
@ -9,7 +10,13 @@ public class Pioche<T extends Type> {
|
|||||||
|
|
||||||
private Stack<CartePiochable<T>> cartesPiochables;
|
private Stack<CartePiochable<T>> cartesPiochables;
|
||||||
|
|
||||||
|
public Pioche(List<CartePiochable<T>> cartesPiochables) {
|
||||||
|
super();
|
||||||
|
this.cartesPiochables = new Stack<CartePiochable<T>>();
|
||||||
|
this.cartesPiochables.addAll(cartesPiochables);
|
||||||
|
melanger();
|
||||||
|
}
|
||||||
|
|
||||||
public void melanger()
|
public void melanger()
|
||||||
{
|
{
|
||||||
Collections.shuffle(cartesPiochables);
|
Collections.shuffle(cartesPiochables);
|
||||||
|
@ -23,13 +23,7 @@ public class Plateau {
|
|||||||
|
|
||||||
private Map<String, Integer> stats;
|
private Map<String, Integer> stats;
|
||||||
|
|
||||||
|
|
||||||
private Pioche<TypeLumiere> piocheLumiere;
|
|
||||||
private Pioche<TypeTenebre> piocheTenebre;
|
|
||||||
private Pioche<TypeVision> piocheVision;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public Plateau(List<Joueur> joueurs) {
|
public Plateau(List<Joueur> joueurs) {
|
||||||
this.joueurs = joueurs;
|
this.joueurs = joueurs;
|
||||||
this.lieux = new ArrayList<>();
|
this.lieux = new ArrayList<>();
|
||||||
@ -54,8 +48,8 @@ public class Plateau {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void fairePiocher(Joueur joueur, Type type) {
|
public void piocher(Joueur joueur, Type type) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void déplacerJoueur(Joueur joueur, int indexLieu) {
|
public void déplacerJoueur(Joueur joueur, int indexLieu) {
|
||||||
@ -70,7 +64,6 @@ public class Plateau {
|
|||||||
|
|
||||||
joueur1.attaquer(joueur2,attaque);
|
joueur1.attaquer(joueur2,attaque);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -86,8 +79,6 @@ public class Plateau {
|
|||||||
return (int) Math.floor(Math.random() * 3)+1;
|
return (int) Math.floor(Math.random() * 3)+1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public int rollDices4() {
|
public int rollDices4() {
|
||||||
return Math.abs(roll4() - roll4());
|
return Math.abs(roll4() - roll4());
|
||||||
}
|
}
|
||||||
|
73
tests/effet/action/ActionAttaquerTest.java
Normal file
73
tests/effet/action/ActionAttaquerTest.java
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
package effet.action;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import main.Joueur;
|
||||||
|
import main.Plateau;
|
||||||
|
|
||||||
|
class ActionAttaquerTest {
|
||||||
|
|
||||||
|
Joueur j1;
|
||||||
|
Joueur j2;
|
||||||
|
Plateau p;
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
void init()
|
||||||
|
{
|
||||||
|
List<Joueur> joueurs = new ArrayList<Joueur>();
|
||||||
|
j1 = new Joueur("Michel");
|
||||||
|
j2 = new Joueur("Gérard");
|
||||||
|
|
||||||
|
joueurs.add(j1);
|
||||||
|
joueurs.add(j2);
|
||||||
|
|
||||||
|
p = new Plateau(joueurs);
|
||||||
|
|
||||||
|
j1.setPlateau(p);
|
||||||
|
j2.setPlateau(p);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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_BaissePV() {
|
||||||
|
|
||||||
|
int error = 2;
|
||||||
|
ActionAttaquer aa = new ActionAttaquer();
|
||||||
|
|
||||||
|
int pvBaseJ2 = 100;
|
||||||
|
j2.setStat(Joueur.PLAYER_HP, pvBaseJ2);
|
||||||
|
aa.affecte(j1, j2);
|
||||||
|
|
||||||
|
for(int j = 0; j< 1000; j++) {
|
||||||
|
|
||||||
|
int countNb = 0;
|
||||||
|
|
||||||
|
for(int i = 0; i < 10000; i++)
|
||||||
|
{
|
||||||
|
j2.setStat(Joueur.PLAYER_HP, pvBaseJ2);
|
||||||
|
aa.affecte(j1, j2);
|
||||||
|
|
||||||
|
if(j2.getStat(Joueur.PLAYER_HP) < pvBaseJ2) countNb++;
|
||||||
|
}
|
||||||
|
|
||||||
|
countNb /= 100;
|
||||||
|
assertTrue(Math.abs(countNb-80) <= error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user