public override ObjetAbstrait creerObjet(string nom, int TypeObjet, ZoneAbstraite position, EnvironnementAbstrait env)
        {
            id++;
            switch (TypeObjet)
            {
            case (int)FourmiliereConstante.typeObjectAbstrait.nourriture:
            {
                Nourriture n = new Nourriture(nom, position, id);
                env.ZoneAbstraiteList[position.coordonnes.x].zoneAbstraiteList[position.coordonnes.y].AjouteObjet(n);
                return(n);
            }

            case (int)FourmiliereConstante.typeObjectAbstrait.fourmiliere:
            {
                Fourmiliere f = new Fourmiliere(nom, position, id);
                env.ZoneAbstraiteList[position.coordonnes.x].zoneAbstraiteList[position.coordonnes.y].AjouteObjet(f);
                return(f);
            }

            case (int)FourmiliereConstante.typeObjectAbstrait.pheromoneInactive:
            {
                return(new PheromoneInactive(nom, position, id));
            }

            default:
                return(null);
            }
        }
Beispiel #2
0
        public MainWindow()
        {
            InitializeComponent();
            var fabrique    = new FabriqueFourmiliere("Master fabrique");
            var fourmiliere = new Fourmiliere(fabrique);

            DataContext = this;
        }
Beispiel #3
0
 public FourmilliereModel()
 {
     TitreApplication = "Application FourmilliereAL";
     DimensionX       = 60;
     DimensionY       = 60;
     vitesse          = 500;
     fourmilliere     = new Fourmiliere(DimensionX, DimensionY);
     fourmilliere.PersonnageAbstraitList = new ObservableCollection <PersonnageAbstrait>();
     fourmilliere.ObjetAbstraitList      = new ObservableCollection <ObjetAbstrait>();
 }
Beispiel #4
0
        public MasterViewModel(FabriqueFourmiliere fabriqueFourmiliere, Fourmiliere fourmiliere)
        {
            this._fabriqueFourmiliere = fabriqueFourmiliere;
            this._fourmiliere         = fourmiliere;

            this._fourmis     = new ObservableCollection <FourmiViewModel>();
            this._combatantes = new ObservableCollection <CombatanteViewModel>();
            this._cueilleuses = new ObservableCollection <CueilleuseViewModel>();

            foreach (var personnageAbstrait in this._fourmiliere.PersonnagesList)
            {
                if (personnageAbstrait.Nom == "fourmi")
                {
                    var fourmi = (Fourmi)personnageAbstrait;
                    this._fourmis.Add(new FourmiViewModel(fourmi));
                }
                if (personnageAbstrait.Nom == "combatante")
                {
                    var combatante = (Combatante)personnageAbstrait;
                    this._combatantes.Add(new CombatanteViewModel(combatante));
                }
                if (personnageAbstrait.Nom == "cueilleuse")
                {
                    var cueilleuse = (Cueilleuse)personnageAbstrait;
                    this._cueilleuses.Add(new CueilleuseViewModel(cueilleuse));
                }
            }
            this._collectionFourmisView = CollectionViewSource.GetDefaultView(this._fourmis);
            if (this._collectionFourmisView == null)
            {
                throw new NullReferenceException("collectionViewFourmi");
            }

            this._collectionFourmisView.CurrentChanged += new EventHandler(this.OnCollectionViewCurrentChangedFourmi);

            this._collectionCueilleusesView = CollectionViewSource.GetDefaultView(this._cueilleuses);
            if (this._collectionCueilleusesView == null)
            {
                throw new NullReferenceException("collectionViewCueilleuse");
            }

            this._collectionCueilleusesView.CurrentChanged += new EventHandler(this.OnCollectionViewCurrentChangedCueilleuse);

            this._collectionCombatantesView = CollectionViewSource.GetDefaultView(this._combatantes);
            if (this._collectionCombatantesView == null)
            {
                throw new NullReferenceException("collectionViewCombatante");
            }

            this._collectionCombatantesView.CurrentChanged += new EventHandler(this.OnCollectionViewCurrentChangedCombatante);
        }
        private void OuvrirFichier()
        {
            App.MainVM.stop();
            while (App.MainVM.Runnin)
            {
            }

            OpenFileDialog OFDialog = new OpenFileDialog();

            OFDialog.InitialDirectory = Convert.ToString(Environment.SpecialFolder.MyDocuments);
            OFDialog.DefaultExt       = "xml";
            OFDialog.Filter           = "XML Files|*.xml|All Files|*.*";
            OFDialog.FilterIndex      = 1;
            if (OFDialog.ShowDialog() == true && OFDialog.FileName.Length > 0)
            {
                // CHARGER LE FICHIER ET VERIFIER SA VALIDITE
                XmlDocument Chargement = new XmlDocument();
                Chargement.Load(OFDialog.FileName);
                XmlNode MainVMXML;
                if ((MainVMXML = Chargement.SelectSingleNode("MainVM")) == null)
                {
                    System.Media.SystemSounds.Beep.Play();
                    MessageBox.Show("Fichier incompatible !", "Chargement", MessageBoxButton.OK);
                    return;
                }

                // RECUPERER DATA DE MAINVM
                int    Dim = int.Parse(MainVMXML.SelectSingleNode("Dim").InnerText);
                String TitreApplication = MainVMXML.SelectSingleNode("TitreApplication").InnerText;
                int    VitesseExec      = int.Parse(MainVMXML.SelectSingleNode("VitesseExec").InnerText);
                bool   Runnin           = bool.Parse(MainVMXML.SelectSingleNode("Runnin").InnerText);

                Terrain Terrain = new Terrain(Dim);

                // RECUPERER DATA DE TERRAIN
                XmlNode TerrainXML     = MainVMXML.SelectSingleNode("Terrain");
                int     NbToursTerrain = int.Parse(TerrainXML.SelectSingleNode("NbTours").InnerText);
                XmlNode CasesXML       = TerrainXML.SelectSingleNode("Cases");
                foreach (XmlNode CaseXML in CasesXML.SelectNodes("Case"))
                {
                    CaseAbstrait Case;
                    String       CaseClass           = CaseXML.SelectSingleNode("Class").InnerText;
                    int          CordX               = int.Parse(CaseXML.SelectSingleNode("CordX").InnerText);
                    int          CordY               = int.Parse(CaseXML.SelectSingleNode("CordY").InnerText);
                    int          PheromoneMaison     = int.Parse(CaseXML.SelectSingleNode("PheromoneMaison").InnerText);
                    int          PheromoneNourriture = int.Parse(CaseXML.SelectSingleNode("PheromoneNourriture").InnerText);
                    int          NbToursCase         = int.Parse(CaseXML.SelectSingleNode("NbTours").InnerText);

                    if (CaseClass == "CaseNourriture")
                    {
                        Case = new CaseNourriture(Terrain, CordX, CordY);
                        int        NourriturePoids = int.Parse(CaseXML.SelectSingleNode("Nourriture/Poids").InnerText);
                        Nourriture Nourriture      = new Nourriture(Case, NourriturePoids);
                        ((CaseNourriture)Case).Nourriture = Nourriture;
                    }
                    else if (CaseClass == "CaseFourmiliere")
                    {
                        Case = new CaseFourmiliere(Terrain, CordX, CordY);
                        int         NombreNourritures      = int.Parse(CaseXML.SelectSingleNode("Fourmiliere/NombreNourritures").InnerText);
                        int         NombreToursFourmiliere = int.Parse(CaseXML.SelectSingleNode("Fourmiliere/NombreTours").InnerText);
                        Fourmiliere Fourmiliere            = new Fourmiliere(Case, 0);
                        Fourmiliere.NombreNourritures       = NombreNourritures;
                        Fourmiliere.NombreTours             = NombreToursFourmiliere;
                        ((CaseFourmiliere)Case).Fourmiliere = Fourmiliere;
                    }
                    else if (CaseClass == "CaseNormal")
                    {
                        Case = new CaseNormal(Terrain, CordX, CordY);
                    }
                    else
                    {
                        System.Media.SystemSounds.Beep.Play();
                        MessageBox.Show("Erreur au chargement", "Chargement", MessageBoxButton.OK);
                        return;
                    }
                    Case.PheromoneMaison     = PheromoneMaison;
                    Case.PheromoneNourriture = PheromoneNourriture;
                    Case.NbTours             = NbToursCase;

                    XmlNode FourmisXML = CaseXML.SelectSingleNode("Fourmis");
                    foreach (XmlNode FourmiXML in FourmisXML.SelectNodes("Fourmi"))
                    {
                        int    Vie             = int.Parse(FourmiXML.SelectSingleNode("Vie").InnerText);
                        String StrategieFourmi = FourmiXML.SelectSingleNode("StrategieFourmi").InnerText;
                        Fourmi Fourmi          = new Fourmi(Case);
                        Fourmi.Vie = Vie;
                        if (StrategieFourmi == "StrategieRetourMaison")
                        {
                            Fourmi.StrategieFourmi = new StrategieRetourMaison();
                        }
                        Case.Fourmis.Add(Fourmi);
                    }
                    Terrain.Cases[Case.CordX, Case.CordY] = Case;
                }
                Terrain.NbTours = NbToursTerrain;

                XmlNode StatistiqueXML         = MainVMXML.SelectSingleNode("Statistique");
                int     NombreFourmis          = int.Parse(StatistiqueXML.SelectSingleNode("NombreFourmis").InnerText);
                int     NombreToursStatistique = int.Parse(StatistiqueXML.SelectSingleNode("NombreTours").InnerText);

                Statistique Statistique = new Statistique(Terrain);
                Statistique.NombreFourmis = NombreFourmis;
                Statistique.NombreTours   = NombreToursStatistique;

                App.MainVM.Dim              = Dim;
                App.MainVM.Terrain          = Terrain;
                App.MainVM.TitreApplication = TitreApplication;
                App.MainVM.VitesseExec      = VitesseExec;
                App.MainVM.Statistique      = Statistique;
                DessinePlateau();
                System.Media.SystemSounds.Beep.Play();
                MessageBox.Show("Fichier Chargé !", "Chargement", MessageBoxButton.OK);
            }
        }
Beispiel #6
0
 public App()
 {
     fourmilliereVM = new Fourmiliere(30, 30);
     config         = new Config();
 }