diff --git a/src/condition/Condition.java b/src/condition/Condition.java index 39357cc..945e546 100644 --- a/src/condition/Condition.java +++ b/src/condition/Condition.java @@ -1,7 +1,9 @@ package condition; +import main.Joueur; + public abstract class Condition { - - + //TODO + abstract boolean isTrue(Joueur joueur); } diff --git a/src/condition/ConditionClass.java b/src/condition/ConditionClass.java new file mode 100644 index 0000000..6af39d0 --- /dev/null +++ b/src/condition/ConditionClass.java @@ -0,0 +1,31 @@ +package condition; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import main.Joueur; + +public class ConditionClass extends Condition{ + + + private List> classes; + + + public ConditionClass(Class ... classes){ + + // TODO + this.classes = new ArrayList>(); + this.classes.addAll(Arrays.asList(classes)); + } + + + @Override + boolean isTrue(Joueur joueur) { + // TODO Auto-generated method stub + return false; + } + + + +} diff --git a/src/condition/ConditionMultiple.java b/src/condition/ConditionMultiple.java new file mode 100644 index 0000000..cbb24e9 --- /dev/null +++ b/src/condition/ConditionMultiple.java @@ -0,0 +1,44 @@ +package condition; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import main.Joueur; + +public class ConditionMultiple extends Condition { + + private List conditions; + + public ConditionMultiple(Condition ...conditions) { + + this.conditions = new ArrayList(); + this.conditions.addAll(Arrays.asList(conditions)); + } + + /** + * Vérifie si toutes les conditions sont vérifiées + * @param joueur Le joueur sur lequel on vérifie les conditions. + * @return boolean + */ + @Override + public boolean isTrue(Joueur joueur) + { + for(Condition condition : conditions) + { + // Si une seule des conditions n'est pas vraie alors on renvoie false + if(!condition.isTrue(joueur)) return false; + } + return true; + } + + public List getConditions() { + return conditions; + } + + public void setConditions(List conditions) { + this.conditions = conditions; + } + + +} diff --git a/src/condition/ConditionMultipleOR.java b/src/condition/ConditionMultipleOR.java new file mode 100644 index 0000000..60af141 --- /dev/null +++ b/src/condition/ConditionMultipleOR.java @@ -0,0 +1,25 @@ +package condition; + +import main.Joueur; + +public class ConditionMultipleOR extends ConditionMultiple{ + + + /** + * Vérifie si au moins une des conditions est vérifiée + * @param joueur Le joueur sur lequel on vérifie les conditions. + * @return boolean + */ + @Override + public boolean isTrue(Joueur joueur) + { + for(Condition condition : this.getConditions()) + { + // Si une seule des conditions est vraie alors on renvoie true + if(condition.isTrue(joueur)) return true; + } + return false; + } + + +} diff --git a/tests/condition/ConditionMultipleTest.java b/tests/condition/ConditionMultipleTest.java new file mode 100644 index 0000000..5ff7873 --- /dev/null +++ b/tests/condition/ConditionMultipleTest.java @@ -0,0 +1,29 @@ +package condition; + +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.Test; + +import main.Joueur; + +class ConditionMultipleTest { + + @Test + public void conditionMultipleVideRenvoieTrue() { + + Condition condition = new ConditionMultiple(); + Joueur j = new Joueur(); + + assertTrue(condition.isTrue(j)); + } + + @Test + public void conditionMultipleORVideRenvoieFalse() { + + Condition condition = new ConditionMultipleOR(); + Joueur j = new Joueur(); + + assertFalse(condition.isTrue(j)); + } + +}