Example #1
0
        /// <summary>
        /// Ajoute arbitrairement une unité sur la carte.
        /// </summary>
        /// <param name="identificateurBelligerant">Belligérant possesseur de l'unité à ajouter.</param>
        /// <param name="identificateurUnite">Type d'unité à ajouter.</param>
        /// <param name="nomRegion">Nom de la région où ajouter l'unité.</param>
        /// <param name="carte">Image représentant la carte.</param>
        /// <param name="outilsGraphiques">Outils graphiques utilisés pour effectuer le dessin.</param>
        public void AjouteUnite(String identificateurBelligerant, String identificateurUnite, String nomRegion, Image carte, Graphics outilsGraphiques)
        {
            if (this.DictionnaireOccupation.Keys.Contains(nomRegion) == true)
            {
                EBelligerant belligerantConcerne = Convertisseurs.VersEBelligerant(identificateurBelligerant);
                EUnite       uniteAjoutee        = Convertisseurs.VersEUnite(identificateurUnite);

                this.DictionnaireOccupation[nomRegion].ChangeUnite(uniteAjoutee, belligerantConcerne);
                Pictogrammes.PlaceUnite(this.DictionnaireRegions[nomRegion], this.DictionnaireOccupation[nomRegion], carte, outilsGraphiques);
            }
            else
            {
                throw new Exception("L'allégeance et/ou le nom de la région sont mal définis.");
            }
        }
Example #2
0
        /// <summary>
        /// Retourne l'ordre d'ajustement associé au contrôle.
        /// </summary>
        /// <returns>Ordre d'ajustement associé au contrôle.</returns>
        public Ajuster RetourneAjustement()
        {
            EUnite       unite;
            EAjustement  ajustement;
            String       nomRegion   = this.region.Text;
            EBelligerant belligerant = Convertisseurs.DepuisEBelligerantAbrege(this.Belligerant.Text);

            if (this.comboBox.Visible == true)
            {
                String recrutement = this.comboBox.Text;
                if (recrutement != "")
                {
                    unite      = Convertisseurs.VersEUnite(recrutement);
                    ajustement = EAjustement.Recrutement;
                }
                else
                {
                    unite      = EUnite.Aucune;
                    ajustement = EAjustement.Aucun;
                }
            }
            else
            {
                unite = Convertisseurs.DepuisEUniteAbrege(this.Unite.Text);
                if (this.Ordre.Text == "*")
                {
                    ajustement = EAjustement.Congédiement;
                }
                else
                {
                    ajustement = EAjustement.Aucun;
                }
            }

            Ajuster ordre = new Ajuster(ajustement, unite, belligerant, nomRegion);

            return(ordre);
        }
Example #3
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();
                }
            }
        }