PlateauTest
This commit is contained in:
parent
9d298ba9c1
commit
e61c63ab38
@ -2,13 +2,32 @@ package carte;
|
||||
|
||||
import main.Joueur;
|
||||
|
||||
public class Carte {
|
||||
public abstract class Carte {
|
||||
|
||||
private String nom;
|
||||
private String description;
|
||||
|
||||
private void utiliser(Joueur j) {
|
||||
public Carte(String nom, String description) {
|
||||
this.setNom(nom);
|
||||
this.setDescription(description);
|
||||
}
|
||||
|
||||
public abstract void utiliser(Joueur j);
|
||||
|
||||
public String getNom() {
|
||||
return nom;
|
||||
}
|
||||
|
||||
public void setNom(String nom) {
|
||||
this.nom = nom;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -5,6 +5,11 @@ import condition.Condition;
|
||||
|
||||
public abstract class CarteCondition extends CarteEffet{
|
||||
|
||||
public CarteCondition(String nom, String description) {
|
||||
super(nom, description);
|
||||
|
||||
}
|
||||
|
||||
private Condition condition;
|
||||
|
||||
public void utiliser(Joueur j) {
|
||||
|
@ -5,6 +5,11 @@ import effet.Effet;
|
||||
|
||||
public abstract class CarteEffet extends Carte{
|
||||
|
||||
public CarteEffet(String nom, String description) {
|
||||
super(nom, description);
|
||||
|
||||
}
|
||||
|
||||
private Effet effet;
|
||||
|
||||
|
||||
|
@ -9,13 +9,16 @@ import main.Joueur;
|
||||
|
||||
public class CarteLieu extends CarteEffet{
|
||||
|
||||
|
||||
|
||||
private List<Joueur> listeJoueurs;
|
||||
private Point coordinates;
|
||||
private CarteLieu voisin;
|
||||
|
||||
public CarteLieu(Point coordinates) {
|
||||
public CarteLieu(String nom, String description, Point p) {
|
||||
super(nom, description);
|
||||
this.coordinates = p;
|
||||
this.listeJoueurs = new ArrayList<Joueur>();
|
||||
this.coordinates = coordinates;
|
||||
}
|
||||
|
||||
public void utiliser(Joueur j) {
|
||||
@ -38,12 +41,15 @@ public class CarteLieu extends CarteEffet{
|
||||
|
||||
public void remove(Joueur joueur) {
|
||||
|
||||
if(this.listeJoueurs.contains(joueur))
|
||||
{
|
||||
if(this.listeJoueurs.contains(joueur)){
|
||||
this.listeJoueurs.remove(joueur);
|
||||
}
|
||||
}
|
||||
|
||||
public void setVoisin(CarteLieu cl) {
|
||||
this.voisin = cl;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -11,8 +11,8 @@ public class CarteLieuType<T extends Type> extends CarteLieu{
|
||||
private Pioche<T> pioche;
|
||||
|
||||
|
||||
public CarteLieuType(Point coordinates,Pioche<T> pioche) {
|
||||
super(coordinates);
|
||||
public CarteLieuType(String name, String description ,Point coordinates,Pioche<T> pioche) {
|
||||
super(name , description , coordinates);
|
||||
this.pioche = pioche;
|
||||
}
|
||||
|
||||
|
@ -6,6 +6,11 @@ import main.Type;
|
||||
public class CartePiochable<T extends Type> extends CarteCondition{
|
||||
|
||||
|
||||
public CartePiochable(String nom, String description) {
|
||||
super(nom, description);
|
||||
// TODO Auto-generated constructor stub
|
||||
}
|
||||
|
||||
public void utiliser(Joueur j) {
|
||||
super.utiliser(j);
|
||||
}
|
||||
|
@ -7,6 +7,11 @@ import main.Type;
|
||||
public class Equipement extends CartePiochable<Type>{
|
||||
|
||||
|
||||
public Equipement(String nom, String description) {
|
||||
super(nom, description);
|
||||
// TODO Auto-generated constructor stub
|
||||
}
|
||||
|
||||
public void utiliser(Joueur j) {
|
||||
|
||||
}
|
||||
|
@ -12,7 +12,7 @@ public class EffetChoisirCible extends Effet{
|
||||
@Override
|
||||
public void utiliser(Joueur joueur) {
|
||||
|
||||
Joueur j2 = joueur.choisirAdjacents();
|
||||
Joueur j2 = joueur.choisirTous();
|
||||
Action action = this.getAction();
|
||||
|
||||
action.affecte(joueur, j2);
|
||||
|
@ -109,6 +109,7 @@ public class Joueur {
|
||||
if(blessure > 0)
|
||||
{
|
||||
j2.addStat(PLAYER_HP, -blessure);
|
||||
this.cartePersonnage.attaquer(j2);
|
||||
}
|
||||
}
|
||||
|
||||
@ -177,8 +178,7 @@ public class Joueur {
|
||||
|
||||
public void deplacer(CarteLieu cl) {
|
||||
|
||||
if(this.carteLieu != null)
|
||||
{
|
||||
if(this.carteLieu != null){
|
||||
this.carteLieu.remove(this);
|
||||
}
|
||||
|
||||
@ -186,4 +186,13 @@ public class Joueur {
|
||||
|
||||
}
|
||||
|
||||
public Joueur choisirTous() {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
public CarteLieu getCarteLieu() {
|
||||
return this.carteLieu;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package main;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@ -8,6 +9,7 @@ import java.util.Map;
|
||||
import carte.CarteLieu;
|
||||
|
||||
public class Plateau {
|
||||
|
||||
private List<Joueur> joueurs;
|
||||
private List<CarteLieu> lieux;
|
||||
|
||||
@ -41,11 +43,14 @@ public class Plateau {
|
||||
this.stats.put(PARTIE_FINIE, 0);
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void jeu() {
|
||||
int nbJoueurs = this.joueurs.size();
|
||||
int i = 0;
|
||||
|
||||
int nbJoueurs = this.joueurs.size()-1;
|
||||
int i = 1;
|
||||
|
||||
while(true) {
|
||||
|
||||
@ -65,15 +70,18 @@ public class Plateau {
|
||||
}
|
||||
}
|
||||
|
||||
private void deplacer(Joueur currentJoueur) {
|
||||
public void deplacer(Joueur currentJoueur) {
|
||||
|
||||
int roll = sumRolls();
|
||||
boolean attributed = false;
|
||||
|
||||
for(CarteLieu cl : lieux) {
|
||||
if(cl.coordinatesContains(roll)){
|
||||
|
||||
currentJoueur.deplacer(cl);
|
||||
break;
|
||||
while(!attributed) {
|
||||
for(CarteLieu cl : lieux) {
|
||||
if(cl.coordinatesContains(roll) && currentJoueur.getCarteLieu() != cl){
|
||||
currentJoueur.deplacer(cl);
|
||||
attributed = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -131,4 +139,29 @@ public class Plateau {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void shuffleLieux(){
|
||||
|
||||
this.lieux.forEach(x -> x.setVoisin(null));
|
||||
|
||||
if(lieux.size() % 2 == 0) {
|
||||
|
||||
Collections.shuffle(lieux);
|
||||
|
||||
for(int i = 0; i < lieux.size()-2; i += 2) {
|
||||
|
||||
lieux.get(i).setVoisin(lieux.get(i+2));
|
||||
lieux.get(i+2).setVoisin(lieux.get(i));
|
||||
}
|
||||
|
||||
}else {
|
||||
|
||||
//TODO Throw exception
|
||||
}
|
||||
}
|
||||
|
||||
public void setLieux(List<CarteLieu> lieux) {
|
||||
this.lieux = lieux;
|
||||
shuffleLieux();
|
||||
}
|
||||
}
|
||||
|
@ -16,7 +16,7 @@ import main.Plateau;
|
||||
public class Allie extends Unique{
|
||||
|
||||
public Allie(Joueur joueur) {
|
||||
super("ALLIE", 8, joueur);
|
||||
super("ALLIE","desc", 8, joueur);
|
||||
|
||||
Action action = new ActionAltererStatistiquesJoueur("HP",this.getPv(),false);
|
||||
Effet effet = new EffetSelf(action);
|
||||
|
@ -6,8 +6,8 @@ import main.Joueur;
|
||||
|
||||
public class Bob extends CartePersonnage{
|
||||
|
||||
public Bob(String nom, int hp, Joueur joueur) throws Exception {
|
||||
super(nom, hp, joueur);
|
||||
public Bob(String nom, String desc ,int hp, Joueur joueur) throws Exception {
|
||||
super(nom,desc, hp, joueur);
|
||||
Condition condition = new ConditionStatistiques(ConditionStatistiques.JOUEUR, Joueur.PLAYER_NB_EQUIPEMENTS, 5, ConditionStatistiques.MORE);
|
||||
this.setCondition(condition);
|
||||
}
|
||||
|
@ -1,24 +1,20 @@
|
||||
package personnage;
|
||||
|
||||
import carte.CarteCondition;
|
||||
import condition.Condition;
|
||||
import main.Joueur;
|
||||
|
||||
public abstract class CartePersonnage extends CarteCondition {
|
||||
//attributs
|
||||
private String nom;
|
||||
|
||||
private int pv;
|
||||
private Joueur joueur;
|
||||
private Condition condition;
|
||||
|
||||
//constructeurs
|
||||
public CartePersonnage(String nom, int pv, Joueur joueur){
|
||||
this.nom=nom;
|
||||
|
||||
public CartePersonnage(String nom, String description, int pv, Joueur joueur) {
|
||||
super(nom, description);
|
||||
this.pv = pv;
|
||||
this.joueur=joueur;
|
||||
this.joueur = joueur;
|
||||
}
|
||||
|
||||
//méthodes
|
||||
|
||||
public abstract void utiliser();
|
||||
|
||||
|
@ -5,8 +5,8 @@ import main.Joueur;
|
||||
public class Charles extends CartePersonnage{
|
||||
|
||||
//constructeur
|
||||
public Charles(String nom, int hp, Joueur joueur) {
|
||||
super(nom, hp, joueur);
|
||||
public Charles(String nom, String desc ,int hp, Joueur joueur) {
|
||||
super(nom,desc, hp, joueur);
|
||||
}
|
||||
|
||||
//m<EFBFBD>thode
|
||||
|
@ -13,8 +13,8 @@ import main.Plateau;
|
||||
|
||||
public class Daniel extends CartePersonnage{
|
||||
|
||||
public Daniel(String nom, int pv, Joueur joueur) throws Exception {
|
||||
super(nom, pv, joueur);
|
||||
public Daniel(String nom, String desc ,int hp, Joueur joueur) throws Exception {
|
||||
super(nom,desc, hp, joueur);
|
||||
|
||||
int nbShadow = joueur.getPlateau().getStat(Plateau.NB_SHADOWS);
|
||||
|
||||
|
@ -5,8 +5,8 @@ import main.Joueur;
|
||||
|
||||
public class Emi extends CartePersonnage{
|
||||
//constructeur
|
||||
public Emi(String nom, int hp, Joueur joueur) {
|
||||
super(nom, hp, joueur);
|
||||
public Emi(String nom, String desc ,int hp, Joueur joueur) {
|
||||
super(nom,desc, hp, joueur);
|
||||
|
||||
this.setCondition(new WinConditionHunter());
|
||||
}
|
||||
|
@ -7,7 +7,7 @@ public class Franklin extends Unique{
|
||||
|
||||
//constructeur
|
||||
public Franklin(String nom, int hp, Joueur joueur) {
|
||||
super(nom, hp, joueur);
|
||||
super(nom, nom, hp, joueur);
|
||||
this.setCondition(new WinConditionHunter());
|
||||
}
|
||||
|
||||
|
@ -7,7 +7,7 @@ public class Georges extends Unique{
|
||||
|
||||
//constructeur
|
||||
public Georges(String nom, int hp, Joueur joueur) {
|
||||
super(nom, hp, joueur);
|
||||
super(nom, nom, hp, joueur);
|
||||
this.setCondition(new WinConditionHunter());
|
||||
}
|
||||
|
||||
|
@ -5,8 +5,8 @@ import main.Joueur;
|
||||
|
||||
public class LoupGarou extends CartePersonnage {
|
||||
//constructeur
|
||||
public LoupGarou(String nom, int hp, Joueur joueur) {
|
||||
super(nom, hp, joueur);
|
||||
public LoupGarou(String nom, String desc ,int hp, Joueur joueur) {
|
||||
super(nom,desc, hp, joueur);
|
||||
|
||||
this.setCondition(new WinConditionShadow());
|
||||
}
|
||||
|
@ -5,8 +5,8 @@ import main.Joueur;
|
||||
|
||||
public class Metamorphe extends CartePersonnage{
|
||||
|
||||
public Metamorphe(String nom, int pv, Joueur joueur) {
|
||||
super(nom, pv, joueur);
|
||||
public Metamorphe(String nom, String desc ,int hp, Joueur joueur) {
|
||||
super(nom,desc, hp, joueur);
|
||||
this.setCondition(new WinConditionShadow());
|
||||
}
|
||||
|
||||
|
@ -6,8 +6,8 @@ public class Unique extends CartePersonnage{
|
||||
|
||||
private boolean capaciteUsed;
|
||||
|
||||
public Unique(String nom, int hp, Joueur joueur) {
|
||||
super(nom, hp, joueur);
|
||||
public Unique(String nom, String desc ,int hp, Joueur joueur) {
|
||||
super(nom,desc, hp, joueur);
|
||||
|
||||
}
|
||||
|
||||
|
@ -10,8 +10,8 @@ import main.Joueur;
|
||||
|
||||
public class Vampire extends CartePersonnage{
|
||||
|
||||
public Vampire(String nom, int hp, Joueur joueur) {
|
||||
super(nom, hp, joueur);
|
||||
public Vampire(String nom, String desc ,int hp, Joueur joueur) {
|
||||
super(nom,desc, hp, joueur);
|
||||
|
||||
Action action = new ActionAltererStatistiquesJoueur("HP",2,true);
|
||||
Effet effet = new EffetSelf(action);
|
||||
@ -27,7 +27,7 @@ public class Vampire extends CartePersonnage{
|
||||
|
||||
/**
|
||||
* Lance l'action d'attaquer de Vampire
|
||||
* <br><br> Effet :
|
||||
* <br><br> Effet : Soin 2 PV
|
||||
* @param j Le joueur qui subit l'attaque
|
||||
* @return void
|
||||
*/
|
||||
|
@ -36,7 +36,7 @@ class ConditionClassPersonnageTest {
|
||||
assertTrue(cc.isTrue(j));
|
||||
|
||||
|
||||
CartePersonnage cp2 = new Bob(null, 0, j);
|
||||
CartePersonnage cp2 = new Bob(null, null, 0, j);
|
||||
// Le personnage ne fait pas partie des classes
|
||||
j.setCartePersonnage(cp2);
|
||||
assertFalse(cc.isTrue(j));
|
||||
|
98
tests/main/PlateauTest.java
Normal file
98
tests/main/PlateauTest.java
Normal file
@ -0,0 +1,98 @@
|
||||
package main;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertNotEquals;
|
||||
import static org.junit.jupiter.api.Assertions.fail;
|
||||
|
||||
import java.awt.Point;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import carte.CarteLieu;
|
||||
import carte.CarteLieuType;
|
||||
import carte.CartePiochable;
|
||||
import effet.EffetChoisirCible;
|
||||
import effet.EffetChoisirEffet;
|
||||
import effet.EffetSelf;
|
||||
import effet.action.ActionAltererStatistiquesJoueur;
|
||||
import effet.action.ActionVoler;
|
||||
|
||||
class PlateauTest {
|
||||
|
||||
Plateau p;
|
||||
Joueur j1;
|
||||
Joueur j2;
|
||||
|
||||
@BeforeEach
|
||||
void init() {
|
||||
|
||||
//Pioche<TypeVision> piocheVision = new Pioche<TypeVision>(new ArrayList<>());
|
||||
|
||||
|
||||
|
||||
//CarteLieu lieu1 = new CarteLieuType<TypeVision>("Antre de l'Ermite","desc",new Point(2,3),piocheVision);
|
||||
|
||||
j1 = new Joueur("Mohamed");
|
||||
j2 = new Joueur("Pierrot");
|
||||
|
||||
List<Joueur> joueurs = new ArrayList<Joueur>();
|
||||
joueurs.add(j2);
|
||||
joueurs.add(j1);
|
||||
|
||||
p = new Plateau(joueurs);
|
||||
|
||||
List<CartePiochable<TypeLumiere>> list1 = new ArrayList<>();
|
||||
List<CartePiochable<TypeTenebre>> list2 = new ArrayList<>();
|
||||
|
||||
for(int i = 0; i < 60; i++) {
|
||||
|
||||
CartePiochable<TypeLumiere> carte1 = new CartePiochable<TypeLumiere>("Eau bénite", "Soin 2");
|
||||
carte1.setEffet(new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 2, true)));
|
||||
list1.add(carte1);
|
||||
|
||||
CartePiochable<TypeTenebre> carte2 = new CartePiochable<TypeTenebre>("Eau maudite", "Damage 2");
|
||||
carte2.setEffet(new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)));
|
||||
list2.add(carte2);
|
||||
}
|
||||
|
||||
|
||||
Pioche<TypeLumiere> piocheLumiere = new Pioche<TypeLumiere>(list1);
|
||||
Pioche<TypeTenebre> piocheTenebre = new Pioche<TypeTenebre>(list2);
|
||||
|
||||
|
||||
CarteLieu lieu1 = new CarteLieuType<TypeTenebre>("Antre de l'Ermite","desc",new Point(2,3),piocheTenebre);
|
||||
CarteLieu lieu2 = new CarteLieuType<TypeTenebre>("Cimetière","desc",new Point(-1,8),piocheTenebre);
|
||||
CarteLieu lieu3 = new CarteLieu("Forêt hantée","desc",new Point(-1,9));
|
||||
lieu3.setEffet(new EffetChoisirEffet(new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-2,true)),
|
||||
new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,1,true))));
|
||||
CarteLieu lieu4 = new CarteLieuType<TypeLumiere>("Monastère","desc",new Point(-1,6),piocheLumiere);
|
||||
|
||||
CarteLieu lieu5 = new CarteLieuType<TypeTenebre>("Sanctuaire Ancien","desc",new Point(4,5),piocheTenebre);
|
||||
CarteLieu lieu6 = new CarteLieu("Sanctuaire Ancien","desc",new Point(-1,9));
|
||||
lieu6.setEffet(new EffetChoisirCible(new ActionVoler()));
|
||||
|
||||
List<CarteLieu> cls = new ArrayList<CarteLieu>();
|
||||
cls.add(lieu6);
|
||||
cls.add(lieu5);
|
||||
cls.add(lieu4);
|
||||
cls.add(lieu3);
|
||||
cls.add(lieu2);
|
||||
cls.add(lieu1);
|
||||
|
||||
p.setLieux(cls);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
void deplacer_lieuDepartDifferentLieuArrive() {
|
||||
p.deplacer(j1);
|
||||
CarteLieu lieuDepart = j1.getCarteLieu();
|
||||
|
||||
p.deplacer(j1);
|
||||
|
||||
assertNotEquals(lieuDepart, j1.getCarteLieu());
|
||||
}
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user