示例#1
0
 /// <summary>
 /// Retourne le nb d'ennemi que l'on peut éliminer dans un étage par rapport à un plan donné
 /// </summary>
 private int VerifierNbEnnemisEtage(Etage etg, PlanTraitement plan)
 {
     plan.RunsPossibles = new List <Etage>()
     {
         etg
     };
     return(GenererDicoEtageNbEnnemis(plan).First().Value);
 }
示例#2
0
 public EmpiricSimulationWorker(EmpiricSimulationWorker wsp, Etage etageDeCombat)
 {
     EtagesEffectues = wsp.EtagesEffectues.ToDictionary(x => x.Key, x => x.Value);
     EtagesEffectues.Add(new Etage(etageDeCombat.Difficulte, etageDeCombat.MesVagues, etageDeCombat.Numero, etageDeCombat.NomZone), 0);
     EtagesDisponibles = wsp.EtagesDisponibles.ToList();
     EtagesDisponibles.Remove(etageDeCombat);
     CiblesAAbattre = wsp.CiblesAAbattre.ToDictionary(x => x.Key, x => x.Value);
     Overkills      = wsp.Overkills;
 }
示例#3
0
 public EmpiricSimulationWorker(Etage etageDeDepart, List <Etage> etagesRestants, Dictionary <E_NomEnnemiSucces, uint> cibles)
 {
     EtagesEffectues = new Dictionary <Etage, uint>()
     {
         { new Etage(etageDeDepart.Difficulte, etageDeDepart.MesVagues, etageDeDepart.Numero, etageDeDepart.NomZone), 0 }
     };
     EtagesDisponibles = etagesRestants.ToList();
     EtagesDisponibles.Remove(etageDeDepart);
     CiblesAAbattre = cibles.ToDictionary(x => x.Key, x => x.Value);
     Overkills      = 0;
 }
示例#4
0
 internal AlgoMaxTargetNumberPerEnemiSimulationWorker(Etage etageEnCours, E_NomEnnemiSucces typeEnnemiEnCours, Dictionary <E_NomEnnemiSucces, uint> cibles)
 {
     EtagesEffectues = new Dictionary <Etage, int>()
     {
         { new Etage(etageEnCours.Difficulte, etageEnCours.MesVagues, etageEnCours.Numero, etageEnCours.NomZone), 0 }
     };
     EtageEnCours      = etageEnCours;
     TypeEnnemiEnCours = typeEnnemiEnCours;
     CiblesAAbattre    = cibles.ToDictionary(x => x.Key, x => x.Value);
     Overkills         = 0;
     NbDeRunTotal      = 0;
     CoutTotalScenario = 0;
 }
示例#5
0
 internal AlgoMaxTargetNumberPerEnemiSimulationWorker(Etage etageEnCours, E_NomEnnemiSucces typeEnnemiEnCours, AlgoMaxTargetNumberPerEnemiSimulationWorker oldWorker)
 {
     EtagesEffectues = oldWorker.EtagesEffectues.ToDictionary(x => x.Key, x => x.Value);
     if (!EtagesEffectues.ContainsKey(etageEnCours))
     {
         EtagesEffectues.Add(new Etage(etageEnCours.Difficulte, etageEnCours.MesVagues, etageEnCours.Numero, etageEnCours.NomZone), 0);
     }
     CiblesAAbattre    = oldWorker.CiblesAAbattre.ToDictionary(x => x.Key, x => x.Value);
     Overkills         = oldWorker.Overkills;
     EtageEnCours      = etageEnCours;
     TypeEnnemiEnCours = typeEnnemiEnCours;
     NbDeRunTotal      = oldWorker.NbDeRunTotal;
     CoutTotalScenario = oldWorker.CoutTotalScenario;
 }
示例#6
0
        public MaxTargetNumberSimulationWorker(Dictionary <E_NomEnnemiSucces, uint> ennemisAElliminer, Etage etageDeDepart, int nbEnnemisParRun, PlanTraitement lePlan = null)
        {
            EnnemisAElliminer = ennemisAElliminer.ToDictionary(x => x.Key, x => x.Value);
            NbEnnemisParRun   = nbEnnemisParRun;
            Objectifs         = new Dictionary <Etage, int>
            {
                { new Etage(etageDeDepart.Difficulte, etageDeDepart.MesVagues, etageDeDepart.Numero, etageDeDepart.NomZone), 0 }
            };
            EtageActuel = new Etage(etageDeDepart.Difficulte, etageDeDepart.MesVagues, etageDeDepart.Numero, etageDeDepart.NomZone);

            PlanAssocie = lePlan == null ? null : new PlanTraitement()
            {
                Algorithme        = lePlan.Algorithme,
                EnnemisAElliminer = lePlan.EnnemisAElliminer.ToDictionary(x => x.Key, x => x.Value),
                RunsPossibles     = lePlan.RunsPossibles.ToList()
            };
        }