public Simulateur CréerSimulateur()
        {
            Simulateur unSimulateur = new Simulateur();

            DonnéesInitialeSimulateurs donnéesXML = DonnéesXML.Réccupérer();

            Random rand = new Random();

            int longueur = donnéesXML.Fourmiliere.Carte.Longeur;
            int largeur  = donnéesXML.Fourmiliere.Carte.Largeur;
            int i;

            Parcelle[,] parcelles = new Parcelle[longueur, largeur];

            for (i = 0; i < longueur; i++)
            {
                for (int j = 0; j < largeur; j++)
                {
                    parcelles[i, j] = new Parcelle(unSimulateur);
                    unSimulateur.AjouterZone(parcelles[i, j]);

                    if (i > 0)
                    {
                        unSimulateur.AjouterAccès(new Tunnel(parcelles[i, j], parcelles[i - 1, j]));
                    }

                    if (j > 0)
                    {
                        unSimulateur.AjouterAccès(new Tunnel(parcelles[i, j], parcelles[i, j - 1]));
                    }
                }
            }

            Parcelle uneParcelleDeDépart = (unSimulateur.Zones[rand.Next(0, unSimulateur.Zones.Count)] as Parcelle);

            uneParcelleDeDépart.AjouterObjet(new Fourmiliere(unSimulateur, uneParcelleDeDépart));

            for (i = 0; i < donnéesXML.Fourmiliere.Fourmis.Nombre; i++)
            {
                unSimulateur.AjouterPersonnage(new Fourmi(donnéesXML.Fourmiliere.Pheromones.Poids));
            }

            i = 0;
            while (i < donnéesXML.Fourmiliere.Objectif.Nombre)
            {
                Parcelle uneParcelle = (unSimulateur.Zones[rand.Next(0, unSimulateur.Zones.Count)] as Parcelle);

                if (uneParcelle.estVide())
                {
                    uneParcelle.AjouterObjet(new Objectif(donnéesXML.Fourmiliere.Pheromones.Poids));
                    i++;
                }
            }

            unSimulateur.Interfaces.Add(new InterfaceGraphiqueFourmiliere(unSimulateur, largeur));
            unSimulateur.Play();

            return(unSimulateur);
        }
Beispiel #2
0
        private void CreationDeLaFenetre()
        {
            if (fenetre == null)
            {
                throw new Exception("Aucune fenêtre instancié.");
            }

            var DonnéesXml = DonnéesXML.Réccupérer();

            grilleDynamique.HorizontalAlignment = HorizontalAlignment.Stretch;
            grilleDynamique.VerticalAlignment   = VerticalAlignment.Stretch;
            grilleDynamique.ShowGridLines       = true;
            grilleDynamique.Background          = new SolidColorBrush(Color.FromArgb(255, 240, 203, 128));

            for (int i = 0; i < DonnéesXml.Fourmiliere.Carte.Largeur; i++)
            {
                grilleDynamique.ColumnDefinitions.Add(new ColumnDefinition());
            }

            for (int i = 0; i < DonnéesXml.Fourmiliere.Carte.Longeur; i++)
            {
                grilleDynamique.RowDefinitions.Add(new RowDefinition());
            }

            // Initialisation grille
            int ligne   = 0;
            int colonne = 0;

            foreach (Parcelle uneCase in simulation.Zones.Cast <Parcelle>())
            {
                TextBlock bookText = new TextBlock();
                bookText.FontSize   = 40;
                bookText.FontWeight = FontWeights.Bold;
                Grid.SetRow(bookText, ligne);
                Grid.SetColumn(bookText, colonne);
                bookText.HorizontalAlignment = HorizontalAlignment.Center;
                bookText.VerticalAlignment   = VerticalAlignment.Center;
                grilleDynamique.Children.Add(bookText);

                colonne++;
                if (colonne >= longueurLigne)
                {
                    colonne = 0;
                    ligne++;
                }
            }

            Refresh();

            fenetre.Content = grilleDynamique;
        }
Beispiel #3
0
        public Simulateur CréerSimulateur()
        {
            Simulateur unSimulateur = new Simulateur();

            DonnéesInitialeSimulateurs donnéesXML = DonnéesXML.Réccupérer();

            Random rand = new Random();

            int longueur = donnéesXML.JeuDeLaVie.Carte.Longeur;
            int largeur = donnéesXML.JeuDeLaVie.Carte.Largeur;

            Case[,] cases = new Case[longueur, largeur];

            for (int i = 0; i < longueur; i++)
            {
                for (int j = 0; j < largeur; j++)
                {
                    cases[i, j] = new Case(new Cellule(rand.Next(0, 1000) % 3 == 0 ? EtatCellule.VIVANTE : EtatCellule.MORTE));
                    unSimulateur.AjouterZone(cases[i, j]);
                    unSimulateur.AjouterPersonnage(cases[i, j].Occupant);

                    if (i > 0)
                    {
                        unSimulateur.AjouterAccès(new Veine(cases[i, j], cases[i - 1, j]));
                    }

                    if (j > 0)
                    {
                        unSimulateur.AjouterAccès(new Veine(cases[i, j], cases[i, j - 1]));
                    }
                }
            }

            unSimulateur.Interfaces.Add(new InterfaceGraphiqueJeuDeLaVie(unSimulateur, largeur));
            unSimulateur.Play();
            return unSimulateur;
        }