Ajout des classes conditions

This commit is contained in:
Paul Gross 2020-04-17 12:27:52 +02:00
parent 88af998484
commit dda437e265
5 changed files with 133 additions and 2 deletions

View File

@ -1,7 +1,9 @@
package condition;
import main.Joueur;
public abstract class Condition {
//TODO
abstract boolean isTrue(Joueur joueur);
}

View File

@ -0,0 +1,31 @@
package condition;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import main.Joueur;
public class ConditionClass<T extends Comparable> extends Condition{
private List<Class<T>> classes;
public ConditionClass(Class<T> ... classes){
// TODO
this.classes = new ArrayList<Class<T>>();
this.classes.addAll(Arrays.asList(classes));
}
@Override
boolean isTrue(Joueur joueur) {
// TODO Auto-generated method stub
return false;
}
}

View File

@ -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<Condition> conditions;
public ConditionMultiple(Condition ...conditions) {
this.conditions = new ArrayList<Condition>();
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<Condition> getConditions() {
return conditions;
}
public void setConditions(List<Condition> conditions) {
this.conditions = conditions;
}
}

View File

@ -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;
}
}

View File

@ -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));
}
}