Ejemplo n.º 1
0
 /// <summary>
 /// Initialise une nouvelle instance de la classe DonneesProgrammePrincipal.
 /// </summary>
 /// <param name="donneesCalendaires">Année et phase de jeu sous forme d'une chaîne de caractères.</param>
 /// <param name="cheminDictionnaireAdjacence">Chemin d'accès au fichier à charger (matrice d'adjacence).</param>
 /// <param name="cheminDictionnaireRegions">Chemin d'accès au fichier à charger (dictionnaire des régions).</param>
 public DonneesProgrammePrincipal(
     String donneesCalendaires,
     String cheminDictionnaireAdjacence,
     String cheminDictionnaireRegions)
 {
     this.ListeRetraites = new List <OrdreRegional>();
     this.InitialisePeriodeJeu(donneesCalendaires);
     this.dictionnaireAdjacence = new DictionnaireAdjacence(cheminDictionnaireAdjacence);
     this.InitialiseDictionnaireRegions(cheminDictionnaireRegions);
     this.InitialiseDictionnaireOrdre();
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Initialise une nouvelle instance de la classe ListeOrdres.
        /// </summary>
        /// <param name="listeOrdres">Liste d'ordres.</param>
        /// <param name="dictionnaireAdjacence">Dictionnaire d'adjacence spécifique à la carte utilisée.</param>
        /// <param name="dictionnaireRegions">Dictionnaire des régions, triées par noms.</param>
        /// <param name="dictionnaireOccupation">Dictionnaire d'occupation des régions.</param>
        public ListeOrdres(
            List <OrdreAbstrait> listeOrdres,
            DictionnaireAdjacence dictionnaireAdjacence,
            Dictionary <String, Region> dictionnaireRegions,
            Dictionary <String, OccupationRegion> dictionnaireOccupation)
        {
            this.dictionnaireAdjacence = dictionnaireAdjacence;
            this.dictionnaireRegions   = dictionnaireRegions;

            List <OrdreAbstrait> ordresApplicables = this.TrieOrdresApplicables(listeOrdres, dictionnaireOccupation);

            this.OrdresTenir = new List <Tenir>();
            ordresApplicables.FindAll(item => item.TypeOrdre == EOrdre.Tenir).ForEach(item => this.OrdresTenir.Add(item as Tenir));

            List <Attaquer> ordresAttaque = new List <Attaquer>();

            ordresApplicables.FindAll(item => item.TypeOrdre == EOrdre.Attaque).ForEach(item => ordresAttaque.Add(item as Attaquer));
            this.OrdresAttaqueImmediate = this.TrieAttaquesImmediatesValides(ordresAttaque);

            List <Convoyer> ordresConvoi = new List <Convoyer>();

            ordresApplicables.FindAll(item => item.TypeOrdre == EOrdre.Convoi).ForEach(item => ordresConvoi.Add(item as Convoyer));
            this.OrdresConvoi          = this.TrieConvoisValides(ordresConvoi, ordresAttaque);
            this.OrdresAttaqueConvoyee = this.TrieAttaquesConvoyeesValides(ordresAttaque);

            List <SoutenirDefensif> ordresSoutienDefensif = new List <SoutenirDefensif>();

            ordresApplicables.FindAll(item => item.TypeOrdre == EOrdre.SoutienDefensif).ForEach(item => ordresSoutienDefensif.Add(item as SoutenirDefensif));
            this.OrdresSoutienDefensif = this.TrieSoutiensDefensifsValides(ordresSoutienDefensif, this.OrdresTenir);

            List <SoutenirOffensif> ordresSoutienOffensif = new List <SoutenirOffensif>();

            ordresApplicables.FindAll(item => item.TypeOrdre == EOrdre.SoutienOffensif).ForEach(item => ordresSoutienOffensif.Add(item as SoutenirOffensif));
            this.OrdresSoutienOffensif = this.TrieSoutiensOffensifsValides(ordresSoutienOffensif);

            this.OrdresValides = new List <OrdreAbstrait>();
            this.OrdresValides.AddRange(this.OrdresAttaqueConvoyee);
            this.OrdresValides.AddRange(this.OrdresAttaqueImmediate);
            this.OrdresValides.AddRange(this.OrdresConvoi);
            this.OrdresValides.AddRange(this.OrdresSoutienDefensif);
            this.OrdresValides.AddRange(this.OrdresSoutienOffensif);
            this.OrdresValides.AddRange(this.OrdresTenir);
        }