예제 #1
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.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);
        }
예제 #2
0
        protected InterfaceGraphique(Simulateur uneSimulation)
        {
            CommandePlay   = new Commande(play);
            CommandePause  = new Commande(pause);
            CommandeRetour = new Commande(retour);

            simulation = uneSimulation;
        }
예제 #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;
        }
예제 #4
0
 public Parcelle(Simulateur unSimulateur)
 {
     simulateur = unSimulateur;
 }
예제 #5
0
 public Fourmiliere(Simulateur unSimulateur, Parcelle uneParcelle)
 {
     simulateur = unSimulateur;
     parcelle   = uneParcelle;
 }
예제 #6
0
 public InterfaceGraphiqueFourmiliere(Simulateur unSimulateur, int uneLongueurLigne) : base(unSimulateur)
 {
     longueurLigne = uneLongueurLigne;
     Application.Current.Dispatcher.Invoke(CreationDeLaFenetre);
     fenetre.Show();
 }