/// <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; }
/// <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(); } } }