Unit tests WinConditionHunter / Shadow
This commit is contained in:
parent
b6a1db9e3b
commit
fb4e3c6c7c
@ -11,6 +11,15 @@ public class ConditionClassPersonnage extends Condition{
|
||||
|
||||
private List<Class<? extends CartePersonnage>> classes;
|
||||
|
||||
|
||||
/**
|
||||
* Construit une condition qui vérifie la possession d'un certain Personnage dans une liste définie.
|
||||
* exemple :
|
||||
*
|
||||
* classes = { Emi.class, Metamorphe.class, ... etc }
|
||||
*
|
||||
* @param classes Les Class des différents Personnage's.
|
||||
*/
|
||||
public ConditionClassPersonnage(List<Class<? extends CartePersonnage>> classes){
|
||||
|
||||
this.classes = new ArrayList<Class<? extends CartePersonnage>>();
|
||||
|
@ -4,8 +4,8 @@ import main.Joueur;
|
||||
|
||||
public class ConditionStatistiques extends Condition {
|
||||
|
||||
public static final boolean PLATEAU = false;
|
||||
public static final boolean JOUEUR = true;
|
||||
public static final boolean PLATEAU = true;
|
||||
public static final boolean JOUEUR = false;
|
||||
|
||||
public static final int EQUAL = 0;
|
||||
public static final int MORE = 1;
|
||||
@ -19,7 +19,6 @@ public class ConditionStatistiques extends Condition {
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @param plateauJoueur
|
||||
* @param key
|
||||
* @param value
|
||||
@ -28,11 +27,10 @@ public class ConditionStatistiques extends Condition {
|
||||
public ConditionStatistiques(boolean plateauJoueur,String key,int value,int equalMoreLess) {
|
||||
|
||||
if(equalMoreLess >= 0 && equalMoreLess <= 2) this.equalMoreLess = equalMoreLess;
|
||||
else // TODO exception
|
||||
else {} // TODO exception
|
||||
|
||||
this.key = key;
|
||||
this.value = value;
|
||||
|
||||
this.plateauJoueur = plateauJoueur;
|
||||
}
|
||||
|
||||
@ -46,21 +44,21 @@ public class ConditionStatistiques extends Condition {
|
||||
int valeur;
|
||||
if(this.plateauJoueur)
|
||||
{
|
||||
valeur = joueur.getPlateau().getStat(key);
|
||||
valeur = joueur.getPlateau().getStat(this.key);
|
||||
|
||||
}else {
|
||||
valeur = joueur.getStat(key);
|
||||
|
||||
valeur = joueur.getStat(this.key);
|
||||
}
|
||||
|
||||
switch(this.equalMoreLess) {
|
||||
case EQUAL:
|
||||
return this.value == valeur;
|
||||
case MORE:
|
||||
return this.value <= valeur;
|
||||
case LESS:
|
||||
return this.value >= valeur;
|
||||
case LESS:
|
||||
return this.value <= valeur;
|
||||
default:
|
||||
// TODO exception
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -9,7 +9,9 @@ public class WinConditionHunter extends Condition{
|
||||
public boolean isTrue(Joueur j)
|
||||
{
|
||||
int nbShadow = j.getPlateau().getStat(Plateau.NB_SHADOWS);
|
||||
Condition winCondition = new ConditionStatistiques(ConditionStatistiques.PLATEAU, Plateau.NB_MORTS_SHADOW, nbShadow, ConditionStatistiques.MORE);
|
||||
|
||||
Condition winCondition = new ConditionStatistiques(
|
||||
ConditionStatistiques.PLATEAU, Plateau.NB_MORTS_SHADOW, nbShadow, ConditionStatistiques.LESS);
|
||||
return winCondition.isTrue(j);
|
||||
}
|
||||
|
||||
|
@ -9,7 +9,10 @@ public class WinConditionShadow extends Condition{
|
||||
public boolean isTrue(Joueur j)
|
||||
{
|
||||
int nbHunter = j.getPlateau().getStat(Plateau.NB_HUNTERS);
|
||||
Condition winCondition = new ConditionStatistiques(ConditionStatistiques.PLATEAU, Plateau.NB_MORTS_HUNTER, nbHunter, ConditionStatistiques.MORE);
|
||||
Condition winCondition =
|
||||
new ConditionMultipleOR(
|
||||
new ConditionStatistiques(ConditionStatistiques.PLATEAU,Plateau.NB_MORTS_NEUTRAL,3,ConditionStatistiques.LESS),
|
||||
new ConditionStatistiques(ConditionStatistiques.PLATEAU, Plateau.NB_MORTS_HUNTER, nbHunter, ConditionStatistiques.LESS));
|
||||
return winCondition.isTrue(j);
|
||||
}
|
||||
|
||||
|
@ -7,8 +7,6 @@ public class CarteLieu {
|
||||
private String nom;
|
||||
private CarteLieu voisin;
|
||||
private Plateau plateau;
|
||||
// TODO connaitre carte voisine sur un autre territoire pour emi?
|
||||
|
||||
|
||||
public CarteLieu(String n, List<Integer> vals, CarteLieu vois, Plateau plat){
|
||||
nom = n;
|
||||
|
@ -58,12 +58,17 @@ public class Joueur {
|
||||
return this.equipe;
|
||||
}
|
||||
|
||||
public int setStat(String key, int valeur) {
|
||||
return stats.put(key, valeur);
|
||||
public void setStat(String key, int valeur) {
|
||||
this.stats.put(key, valeur);
|
||||
}
|
||||
|
||||
public int getStat(String key) {
|
||||
return stats.get(key);
|
||||
|
||||
if(stats.containsKey(key)) {
|
||||
return stats.get(key);
|
||||
}else {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -134,4 +139,8 @@ public class Joueur {
|
||||
|
||||
}
|
||||
|
||||
public void setPlateau(Plateau plateau2) {
|
||||
this.plateau = plateau2;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -34,17 +34,18 @@ public class Plateau {
|
||||
this.joueurs = joueurs;
|
||||
this.lieux = new ArrayList<>();
|
||||
|
||||
stats = new HashMap<>();
|
||||
this.stats = new HashMap<>();
|
||||
|
||||
// Initialisation plateau
|
||||
stats.put(NB_HUNTERS, 0);
|
||||
stats.put(NB_SHADOWS, 0);
|
||||
stats.put(NB_NEUTRES, 0);
|
||||
stats.put(NB_MORTS, 0);
|
||||
stats.put(NB_MORTS_NEUTRAL, 0);
|
||||
stats.put(NB_MORTS_HUNTER, 0);
|
||||
stats.put(NB_MORTS_SHADOW, 0);
|
||||
stats.put(PARTIE_FINIE, 0);
|
||||
this.stats.put(NB_HUNTERS, 0);
|
||||
this.stats.put(NB_SHADOWS, 0);
|
||||
this.stats.put(NB_NEUTRES, 0);
|
||||
this.stats.put(NB_MORTS, 0);
|
||||
this.stats.put(NB_MORTS_NEUTRAL, 0);
|
||||
this.stats.put(NB_MORTS_HUNTER, 0);
|
||||
this.stats.put(NB_MORTS_SHADOW, 0);
|
||||
this.stats.put(PARTIE_FINIE, 0);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -95,10 +96,15 @@ public class Plateau {
|
||||
return this.joueurs;
|
||||
}
|
||||
|
||||
public void setStat(String key, int valeur) {
|
||||
this.stats.put(key, valeur);
|
||||
}
|
||||
|
||||
public int getStat(String key) {
|
||||
|
||||
if(this.stats.containsKey(key))
|
||||
{
|
||||
return this.getStat(key);
|
||||
return this.stats.get(key);
|
||||
}else {
|
||||
|
||||
//TODO Exception
|
||||
|
26
tests/condition/ConditionStatistiquesTest.java
Normal file
26
tests/condition/ConditionStatistiquesTest.java
Normal file
@ -0,0 +1,26 @@
|
||||
package condition;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Before;
|
||||
|
||||
import main.Joueur;
|
||||
import main.Plateau;
|
||||
|
||||
class ConditionStatistiquesTest {
|
||||
|
||||
Plateau plateau;
|
||||
Joueur joueur;
|
||||
|
||||
@Before
|
||||
void init() {
|
||||
List<Joueur> list = new ArrayList<Joueur>();
|
||||
joueur = new Joueur("Jack");
|
||||
list.add(joueur);
|
||||
plateau = new Plateau(list);
|
||||
joueur.setPlateau(plateau);
|
||||
}
|
||||
|
||||
//TODO
|
||||
}
|
49
tests/condition/WinConditionHunterTest.java
Normal file
49
tests/condition/WinConditionHunterTest.java
Normal file
@ -0,0 +1,49 @@
|
||||
package condition;
|
||||
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import main.Joueur;
|
||||
import main.Plateau;
|
||||
|
||||
class WinConditionHunterTest {
|
||||
|
||||
Plateau plateau;
|
||||
Joueur joueur;
|
||||
|
||||
@BeforeEach
|
||||
void init() {
|
||||
List<Joueur> list = new ArrayList<Joueur>();
|
||||
joueur = new Joueur("Jack");
|
||||
list.add(joueur);
|
||||
plateau = new Plateau(list);
|
||||
joueur.setPlateau(plateau);
|
||||
}
|
||||
|
||||
@Test
|
||||
void isTrue_AllShadowsAreDead_True() {
|
||||
|
||||
WinConditionHunter wch = new WinConditionHunter();
|
||||
plateau.setStat(Plateau.NB_SHADOWS, 2);
|
||||
plateau.setStat(Plateau.NB_MORTS_SHADOW, 2);
|
||||
|
||||
assertTrue(wch.isTrue(joueur));
|
||||
}
|
||||
|
||||
@Test
|
||||
void isTrue_NotAllShadowsAreDead_False() {
|
||||
|
||||
WinConditionHunter wch = new WinConditionHunter();
|
||||
plateau.setStat(Plateau.NB_SHADOWS, 20);
|
||||
plateau.setStat(Plateau.NB_MORTS_SHADOW, 8);
|
||||
|
||||
assertFalse(wch.isTrue(joueur));
|
||||
}
|
||||
|
||||
}
|
78
tests/condition/WinConditionShadowTest.java
Normal file
78
tests/condition/WinConditionShadowTest.java
Normal file
@ -0,0 +1,78 @@
|
||||
package condition;
|
||||
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import main.Joueur;
|
||||
import main.Plateau;
|
||||
|
||||
class WinConditionShadowTest {
|
||||
|
||||
Plateau plateau;
|
||||
Joueur joueur;
|
||||
|
||||
@BeforeEach
|
||||
void init() {
|
||||
List<Joueur> list = new ArrayList<Joueur>();
|
||||
joueur = new Joueur("Jack");
|
||||
list.add(joueur);
|
||||
plateau = new Plateau(list);
|
||||
joueur.setPlateau(plateau);
|
||||
}
|
||||
|
||||
@Test
|
||||
void isTrue_AllHuntersAreDead_LessThan3NeutralsAreDead_True() {
|
||||
|
||||
WinConditionShadow wch = new WinConditionShadow();
|
||||
plateau.setStat(Plateau.NB_HUNTERS, 2);
|
||||
plateau.setStat(Plateau.NB_MORTS_HUNTER, 2);
|
||||
|
||||
plateau.setStat(Plateau.NB_MORTS_NEUTRAL, 2);
|
||||
|
||||
assertTrue(wch.isTrue(joueur));
|
||||
}
|
||||
|
||||
@Test
|
||||
void isTrue_AllHuntersAreDead_MoreThan3NeutralsAreDead_True() {
|
||||
|
||||
WinConditionShadow wch = new WinConditionShadow();
|
||||
plateau.setStat(Plateau.NB_HUNTERS, 2);
|
||||
plateau.setStat(Plateau.NB_MORTS_HUNTER, 2);
|
||||
|
||||
plateau.setStat(Plateau.NB_MORTS_NEUTRAL, 4);
|
||||
|
||||
assertTrue(wch.isTrue(joueur));
|
||||
}
|
||||
|
||||
@Test
|
||||
void isTrue_NotAllHuntersAreDead_MoreThan3NeutralsAreDead_True() {
|
||||
|
||||
WinConditionShadow wch = new WinConditionShadow();
|
||||
plateau.setStat(Plateau.NB_HUNTERS, 20);
|
||||
plateau.setStat(Plateau.NB_MORTS_HUNTER, 8);
|
||||
|
||||
plateau.setStat(Plateau.NB_MORTS_NEUTRAL, 4);
|
||||
|
||||
assertTrue(wch.isTrue(joueur));
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
void isTrue_NotAllHuntersAreDead_LessThan3NeutralsAreDead_False() {
|
||||
|
||||
WinConditionShadow wch = new WinConditionShadow();
|
||||
plateau.setStat(Plateau.NB_HUNTERS, 20);
|
||||
plateau.setStat(Plateau.NB_MORTS_HUNTER, 8);
|
||||
|
||||
plateau.setStat(Plateau.NB_MORTS_NEUTRAL, 2);
|
||||
|
||||
assertFalse(wch.isTrue(joueur));
|
||||
}
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user