27-04-2022, 05:03 PM
J'ai enfin codé le calculateur de probabilité (en 3 exemplaire, mais en utilisant des Design Pattern).
Je me suis défoulé sur les guerriers nécrons, et ça marche:
Je me suis défoulé sur les guerriers nécrons, et ça marche:
Code:
package com.calculateur.warhammer.calcul.calcul;
import org.apache.commons.math3.fraction.Fraction;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
import com.calculateur.warhammer.data.ContexteActionImplementationBuilder;
import com.calculateur.warhammer.data.ContexteBatiment;
import com.calculateur.warhammer.data.ContexteGuerrierNecron;
import com.calculateur.warhammer.data.ContexteSpaceMarineIntersessor;
import com.calculateur.warhammer.data.IArmeDeTir;
import com.calculateur.warhammer.data.IBatiment;
import com.calculateur.warhammer.data.IContexteAction;
import com.calculateur.warhammer.data.IProfil;
import com.calculateur.warhammer.data.IReglesSpeciales;
public class CalculMortPhaseTirTest {
private final ICalculMort<IArmeDeTir> calculMort;
public CalculMortPhaseTirTest() {
calculMort = new CalculMortPhaseTir();
}
@Test
public void testSpaceMarineInterssessorTirentSurGuerrierNecronBase() throws CalculException {
IProfil spaceMarine = ContexteSpaceMarineIntersessor.getProfilSpaceMarineIntersessor();
IArmeDeTir bolter = ContexteSpaceMarineIntersessor.getFusilBolter();
IReglesSpeciales regleBaseMarine = ContexteSpaceMarineIntersessor.getRegleAttaqueBase();
IProfil necron = ContexteGuerrierNecron.getGuerrierNecron();
IReglesSpeciales regleBaseNecron = ContexteGuerrierNecron.getRegleAttaque();
IBatiment aucun = ContexteBatiment.getAucun();
IContexteAction<IArmeDeTir> contexteAction = ContexteActionImplementationBuilder.getInstancePhaseDeTir()
.addProfilAttaquant(spaceMarine).addReglesAttaquant(regleBaseMarine).addArmeAttaquant(bolter)
.addProfilDefenseur(necron).addReglesDefenseur(regleBaseNecron).addBatiment(aucun).build();
Fraction proba = calculMort.calculProbabiliteMort(contexteAction);
Assertions.assertThat(proba).isEqualTo(new Fraction(4, 27));
}
}