示例#1
0
文件: Region.cs 项目: barsanges/diplo
 /// <summary>
 /// Initialise une nouvelle instance de la classe Region.
 /// </summary>
 /// <param name="nom">Nom de la région.</param>
 /// <param name="abreviation">Abréviation du nom de la région.</param>
 /// <param name="typeRegion">Type de la région (côtière, intérieure ou maritime).</param>
 /// <param name="coordonneesUnite">Coordonnées utilisées pour placer une éventuelle unité dans la région.</param>
 public Region(String nom, String abreviation, ETypeRegion typeRegion, Coordonnees coordonneesUnite)
 {
     this.nom              = nom;
     this.abreviation      = abreviation;
     this.typeRegion       = typeRegion;
     this.coordonneesUnite = coordonneesUnite;
 }
示例#2
0
        /// <summary>
        /// Initialise le dictionnaire des régions.
        /// </summary>
        /// <param name="fichierACharger">Chemin d'accès au fichier à charger contenant le dictionnaire des régions.</param>
        private void InitialiseDictionnaireRegions(String fichierACharger)
        {
            this.DictionnaireRecrutement = new Dictionary <EBelligerant, List <String> >();
            this.dictionnaireRegions     = new Dictionary <string, GRegion>();
            this.DictionnaireOccupation  = new Dictionary <string, OccupationRegion>();
            using (StreamReader lecteur = new StreamReader(fichierACharger))
            {
                foreach (String nomRegion in this.ListeNomsRegions)
                {
                    String   donnees           = lecteur.ReadLine();
                    String[] donneesDetaillees = donnees.Split(';');

                    if (donneesDetaillees[0] == nomRegion)
                    {
                        String       abreviation      = donneesDetaillees[1];
                        Boolean      centre           = Boolean.Parse(donneesDetaillees[2]);
                        ETypeRegion  typeRegion       = (ETypeRegion)(Int32.Parse(donneesDetaillees[3]));
                        Coordonnees  coordonneesUnite = Coordonnees.Convertit(donneesDetaillees[4]);
                        EBelligerant possesseurUnite  = (EBelligerant)(Int32.Parse(donneesDetaillees[5]));
                        EUnite       unite            = (EUnite)(Int32.Parse(donneesDetaillees[6]));

                        if (centre == false)
                        {
                            GRegion nouvelleRegion = new GRegion(nomRegion, abreviation, typeRegion, coordonneesUnite);
                            this.dictionnaireRegions.Add(nomRegion, nouvelleRegion);

                            OccupationRegion occupation = new OccupationRegion(nomRegion, unite, possesseurUnite);
                            this.DictionnaireOccupation.Add(nomRegion, occupation);
                        }
                        else
                        {
                            Coordonnees  coordonneesCentre = Coordonnees.Convertit(donneesDetaillees[7]);
                            EBelligerant possesseurCentre  = (EBelligerant)(Int32.Parse(donneesDetaillees[8]));

                            EBelligerant recrutement = (EBelligerant)(Int32.Parse(donneesDetaillees[9]));

                            Centre nouveauCentre = new Centre(
                                nomRegion,
                                abreviation,
                                typeRegion,
                                coordonneesUnite,
                                coordonneesCentre,
                                recrutement);
                            this.dictionnaireRegions.Add(nomRegion, nouveauCentre);

                            OccupationCentre occupation = new OccupationCentre(nomRegion, unite, possesseurUnite, possesseurCentre);
                            this.DictionnaireOccupation.Add(nomRegion, occupation);

                            if (recrutement != EBelligerant.Aucun)
                            {
                                if (this.DictionnaireRecrutement.ContainsKey(recrutement))
                                {
                                    this.DictionnaireRecrutement[recrutement].Add(nomRegion);
                                }
                                else
                                {
                                    this.DictionnaireRecrutement.Add(recrutement, new List <String>()
                                    {
                                        nomRegion
                                    });
                                }
                            }
                        }
                    }
                    else
                    {
                        throw new Exception("Le fichier de régions ne correspond pas à la matrice d'adjacence.");
                    }
                }

                String retraite = lecteur.ReadLine();
                while (retraite != null)
                {
                    String[] retraiteDetaillee = retraite.Split(';');

                    String       attaquant  = retraiteDetaillee[0];
                    EBelligerant possesseur = Convertisseurs.VersEBelligerant(retraiteDetaillee[1]);
                    String       region     = retraiteDetaillee[2];
                    EUnite       typeUnite  = Convertisseurs.VersEUnite(retraiteDetaillee[3]);

                    OrdreRegional nouvelleRetraite = new OrdreRegional(typeUnite, possesseur, region, attaquant);
                    this.ListeRetraites.Add(nouvelleRetraite);

                    retraite = lecteur.ReadLine();
                }
            }
        }