Ejemplo n.º 1
0
        /// <summary>
        /// Sauvegarde les données de la partie courante.
        /// </summary>
        /// <param name="cheminDictionnaireRegions">Fichier dans lequel sauvegarder le dictionnaire des régions.</param>
        public void Sauvegarde(String cheminDictionnaireRegions)
        {
            using (StreamWriter redacteur = new StreamWriter(cheminDictionnaireRegions))
            {
                foreach (String nomRegion in this.ListeNomsRegions)
                {
                    GRegion regionASauvegarder = this.DictionnaireRegions[nomRegion];
                    String  abreviation        = regionASauvegarder.Abreviation;
                    String  centre             = regionASauvegarder.EstUnCentre.ToString();
                    String  typeRegion         = ((Int32)(regionASauvegarder.TypeRegion)).ToString();
                    String  coordonneesUnites  = regionASauvegarder.CoordonneesUnite.Convertit();

                    OccupationRegion occupationASauvegarder = this.DictionnaireOccupation[nomRegion];
                    String           possesseurUnite        = ((Int32)(occupationASauvegarder.PossesseurUnite)).ToString();
                    String           unite = ((Int32)(occupationASauvegarder.TypeUnite)).ToString();

                    String donneesCompletes;
                    if (regionASauvegarder.EstUnCentre == false)
                    {
                        donneesCompletes = String.Format(
                            "{0};{1};{2};{3};{4};{5};{6}",
                            nomRegion,
                            abreviation,
                            centre,
                            typeRegion,
                            coordonneesUnites,
                            possesseurUnite,
                            unite);
                    }
                    else
                    {
                        Centre centreASAuvegarder = regionASauvegarder as Centre;
                        String coordonneesCentre  = centreASAuvegarder.CoordonneesCentre.Convertit();

                        OccupationCentre occupationCentre = occupationASauvegarder as OccupationCentre;
                        String           possesseurCentre = ((Int32)(occupationCentre.PossesseurCentre)).ToString();

                        String recrutement = ((Int32)(centreASAuvegarder.Recrutement)).ToString();

                        donneesCompletes = String.Format(
                            "{0};{1};{2};{3};{4};{5};{6};{7};{8};{9}",
                            nomRegion,
                            abreviation,
                            centre,
                            typeRegion,
                            coordonneesUnites,
                            possesseurUnite,
                            unite,
                            coordonneesCentre,
                            possesseurCentre,
                            recrutement);
                    }

                    redacteur.WriteLine(donneesCompletes);
                }

                foreach (var retraite in this.ListeRetraites)
                {
                    redacteur.WriteLine(
                        "{0};{1};{2};{3}",
                        retraite.Attaquant,
                        retraite.Possesseur,
                        retraite.Region,
                        retraite.TypeUnite);
                }
            }
        }
Ejemplo n.º 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();
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Compte les centres, les armées et les flottes de chacun des belligérants.
        /// </summary>
        /// <remarks>Cette méthode est vraiment très mal codée.</remarks>
        private void CompteCentresEtArmees()
        {
            Int32 centresLautrec    = 0;
            Int32 centresBarsanges  = 0;
            Int32 centresEmpire     = 0;
            Int32 centresMelinde    = 0;
            Int32 centresBremontree = 0;
            Int32 centresGretz      = 0;
            Int32 centresPalavin    = 0;
            Int32 centresThymee     = 0;

            foreach (OccupationRegion region in this.conteneurDonnees.DictionnaireOccupation.Values)
            {
                if (this.conteneurDonnees.DictionnaireRegions[region.Region].EstUnCentre == true)
                {
                    OccupationCentre centre = region as OccupationCentre;
                    switch (centre.PossesseurCentre)
                    {
                    case EBelligerant.Lautrec:
                        centresLautrec++;
                        break;

                    case EBelligerant.Barsanges:
                        centresBarsanges++;
                        break;

                    case EBelligerant.Empire:
                        centresEmpire++;
                        break;

                    case EBelligerant.Mélinde:
                        centresMelinde++;
                        break;

                    case EBelligerant.Brémontrée:
                        centresBremontree++;
                        break;

                    case EBelligerant.Gretz:
                        centresGretz++;
                        break;

                    case EBelligerant.Palavin:
                        centresPalavin++;
                        break;

                    case EBelligerant.Thymée:
                        centresThymee++;
                        break;

                    default:
                        break;
                    }
                }
            }

            this.labelCompteurLautrec.Visible = true;
            this.compteurLautrec.Visible      = true;
            this.compteurLautrec.Text         = String.Format("{0} centre(s), {1} armée(s), {2} flotte(s)",
                                                              centresLautrec,
                                                              this.conteneurDonnees.DictionnaireOccupation.Values.Count(item => item.PossesseurUnite == EBelligerant.Lautrec && item.TypeUnite == EUnite.Armée),
                                                              this.conteneurDonnees.DictionnaireOccupation.Values.Count(item => item.PossesseurUnite == EBelligerant.Lautrec && item.TypeUnite == EUnite.Flotte));
            this.nombreCentres["Lautrec"] = centresLautrec;
            this.nombreUnites["Lautrec"]  = this.conteneurDonnees.DictionnaireOccupation.Values.Count(item => item.PossesseurUnite == EBelligerant.Lautrec && item.TypeUnite == EUnite.Armée) +
                                            this.conteneurDonnees.DictionnaireOccupation.Values.Count(item => item.PossesseurUnite == EBelligerant.Lautrec && item.TypeUnite == EUnite.Flotte);

            this.labelCompteurBarsanges.Visible = true;
            this.compteurBarsanges.Visible      = true;
            this.compteurBarsanges.Text         = String.Format("{0} centre(s), {1} armée(s), {2} flotte(s)",
                                                                centresBarsanges,
                                                                this.conteneurDonnees.DictionnaireOccupation.Values.Count(item => item.PossesseurUnite == EBelligerant.Barsanges && item.TypeUnite == EUnite.Armée),
                                                                this.conteneurDonnees.DictionnaireOccupation.Values.Count(item => item.PossesseurUnite == EBelligerant.Barsanges && item.TypeUnite == EUnite.Flotte));
            this.nombreCentres["Barsanges"] = centresBarsanges;
            this.nombreUnites["Barsanges"]  = this.conteneurDonnees.DictionnaireOccupation.Values.Count(item => item.PossesseurUnite == EBelligerant.Barsanges && item.TypeUnite == EUnite.Armée) +
                                              this.conteneurDonnees.DictionnaireOccupation.Values.Count(item => item.PossesseurUnite == EBelligerant.Barsanges && item.TypeUnite == EUnite.Flotte);

            this.labelCompteurEmpire.Visible = true;
            this.compteurEmpire.Visible      = true;
            this.compteurEmpire.Text         = String.Format("{0} centre(s), {1} armée(s), {2} flotte(s)",
                                                             centresEmpire,
                                                             this.conteneurDonnees.DictionnaireOccupation.Values.Count(item => item.PossesseurUnite == EBelligerant.Empire && item.TypeUnite == EUnite.Armée),
                                                             this.conteneurDonnees.DictionnaireOccupation.Values.Count(item => item.PossesseurUnite == EBelligerant.Empire && item.TypeUnite == EUnite.Flotte));
            this.nombreCentres["Empire"] = centresEmpire;
            this.nombreUnites["Empire"]  = this.conteneurDonnees.DictionnaireOccupation.Values.Count(item => item.PossesseurUnite == EBelligerant.Empire && item.TypeUnite == EUnite.Armée) +
                                           this.conteneurDonnees.DictionnaireOccupation.Values.Count(item => item.PossesseurUnite == EBelligerant.Empire && item.TypeUnite == EUnite.Flotte);

            this.labelCompteurMelinde.Visible = true;
            this.compteurMelinde.Visible      = true;
            this.compteurMelinde.Text         = String.Format("{0} centre(s), {1} armée(s), {2} flotte(s)",
                                                              centresMelinde,
                                                              this.conteneurDonnees.DictionnaireOccupation.Values.Count(item => item.PossesseurUnite == EBelligerant.Mélinde && item.TypeUnite == EUnite.Armée),
                                                              this.conteneurDonnees.DictionnaireOccupation.Values.Count(item => item.PossesseurUnite == EBelligerant.Mélinde && item.TypeUnite == EUnite.Flotte));
            this.nombreCentres["Mélinde"] = centresMelinde;
            this.nombreUnites["Mélinde"]  = this.conteneurDonnees.DictionnaireOccupation.Values.Count(item => item.PossesseurUnite == EBelligerant.Mélinde && item.TypeUnite == EUnite.Armée) +
                                            this.conteneurDonnees.DictionnaireOccupation.Values.Count(item => item.PossesseurUnite == EBelligerant.Mélinde && item.TypeUnite == EUnite.Flotte);

            this.labelCompteurBremontree.Visible = true;
            this.compteurBremontree.Visible      = true;
            this.compteurBremontree.Text         = String.Format("{0} centre(s), {1} armée(s), {2} flotte(s)",
                                                                 centresBremontree,
                                                                 this.conteneurDonnees.DictionnaireOccupation.Values.Count(item => item.PossesseurUnite == EBelligerant.Brémontrée && item.TypeUnite == EUnite.Armée),
                                                                 this.conteneurDonnees.DictionnaireOccupation.Values.Count(item => item.PossesseurUnite == EBelligerant.Brémontrée && item.TypeUnite == EUnite.Flotte));
            this.nombreCentres["Brémontrée"] = centresBremontree;
            this.nombreUnites["Brémontrée"]  = this.conteneurDonnees.DictionnaireOccupation.Values.Count(item => item.PossesseurUnite == EBelligerant.Brémontrée && item.TypeUnite == EUnite.Armée) +
                                               this.conteneurDonnees.DictionnaireOccupation.Values.Count(item => item.PossesseurUnite == EBelligerant.Brémontrée && item.TypeUnite == EUnite.Flotte);

            this.labelCompteurGretz.Visible = true;
            this.compteurGretz.Visible      = true;
            this.compteurGretz.Text         = String.Format("{0} centre(s), {1} armée(s), {2} flotte(s)",
                                                            centresGretz,
                                                            this.conteneurDonnees.DictionnaireOccupation.Values.Count(item => item.PossesseurUnite == EBelligerant.Gretz && item.TypeUnite == EUnite.Armée),
                                                            this.conteneurDonnees.DictionnaireOccupation.Values.Count(item => item.PossesseurUnite == EBelligerant.Gretz && item.TypeUnite == EUnite.Flotte));
            this.nombreCentres["Gretz"] = centresGretz;
            this.nombreUnites["Gretz"]  = this.conteneurDonnees.DictionnaireOccupation.Values.Count(item => item.PossesseurUnite == EBelligerant.Gretz && item.TypeUnite == EUnite.Armée) +
                                          this.conteneurDonnees.DictionnaireOccupation.Values.Count(item => item.PossesseurUnite == EBelligerant.Gretz && item.TypeUnite == EUnite.Flotte);

            this.labelCompteurPalavin.Visible = true;
            this.compteurPalavin.Visible      = true;
            this.compteurPalavin.Text         = String.Format("{0} centre(s), {1} armée(s), {2} flotte(s)",
                                                              centresPalavin,
                                                              this.conteneurDonnees.DictionnaireOccupation.Values.Count(item => item.PossesseurUnite == EBelligerant.Palavin && item.TypeUnite == EUnite.Armée),
                                                              this.conteneurDonnees.DictionnaireOccupation.Values.Count(item => item.PossesseurUnite == EBelligerant.Palavin && item.TypeUnite == EUnite.Flotte));
            this.nombreCentres["Palavin"] = centresPalavin;
            this.nombreUnites["Palavin"]  = this.conteneurDonnees.DictionnaireOccupation.Values.Count(item => item.PossesseurUnite == EBelligerant.Palavin && item.TypeUnite == EUnite.Armée) +
                                            this.conteneurDonnees.DictionnaireOccupation.Values.Count(item => item.PossesseurUnite == EBelligerant.Palavin && item.TypeUnite == EUnite.Flotte);

            this.labelCompteurThymee.Visible = true;
            this.compteurThymee.Visible      = true;
            this.compteurThymee.Text         = String.Format("{0} centre(s), {1} armée(s), {2} flotte(s)",
                                                             centresThymee,
                                                             this.conteneurDonnees.DictionnaireOccupation.Values.Count(item => item.PossesseurUnite == EBelligerant.Thymée && item.TypeUnite == EUnite.Armée),
                                                             this.conteneurDonnees.DictionnaireOccupation.Values.Count(item => item.PossesseurUnite == EBelligerant.Thymée && item.TypeUnite == EUnite.Flotte));
            this.nombreCentres["Thymée"] = centresThymee;
            this.nombreUnites["Thymée"]  = this.conteneurDonnees.DictionnaireOccupation.Values.Count(item => item.PossesseurUnite == EBelligerant.Thymée && item.TypeUnite == EUnite.Armée) +
                                           this.conteneurDonnees.DictionnaireOccupation.Values.Count(item => item.PossesseurUnite == EBelligerant.Thymée && item.TypeUnite == EUnite.Flotte);
        }