예제 #1
0
        public void init()
        {
            environnementFourmiliere = fabriqueFourmiliere.creerEnvironnement();
            ZoneAbstraite zoneFourmiliere = environnementFourmiliere.ZoneAbstraiteList[FourmiliereConstante.fourmiliere.x].zoneAbstraiteList[FourmiliereConstante.fourmiliere.y];

            environnementFourmiliere.fourmiliere = (Fourmiliere)fabriqueFourmiliere.creerObjet("Fourmiliere1", 3, zoneFourmiliere, environnementFourmiliere);
        }
예제 #2
0
        public List <PersonnageAbstrait> ListeFourmiAlentours(EnvironnementAbstrait env)
        {
            ZoneAbstraite             z           = env.ZoneAbstraiteList[coordonnes.x].zoneAbstraiteList[coordonnes.y];
            List <PersonnageAbstrait> listeFourmi = new List <PersonnageAbstrait>();

            if (this.AccesAbstraitList[(int)FourmiliereConstante.direction.droite] != null &&
                this.AccesAbstraitList[(int)FourmiliereConstante.direction.droite].accesAbstrait.getFin(env).containsFourmi(env))
            {
                listeFourmi.Add(this.AccesAbstraitList[(int)FourmiliereConstante.direction.droite].accesAbstrait.getFin(env).getFourmi(env));
            }
            if (this.AccesAbstraitList[(int)FourmiliereConstante.direction.gauche] != null &&
                this.AccesAbstraitList[(int)FourmiliereConstante.direction.gauche].accesAbstrait.getFin(env).containsFourmi(env))
            {
                listeFourmi.Add(this.AccesAbstraitList[(int)FourmiliereConstante.direction.gauche].accesAbstrait.getFin(env).getFourmi(env));
            }
            if (this.AccesAbstraitList[(int)FourmiliereConstante.direction.haut] != null &&
                this.AccesAbstraitList[(int)FourmiliereConstante.direction.haut].accesAbstrait.getFin(env).containsFourmi(env))
            {
                listeFourmi.Add(this.AccesAbstraitList[(int)FourmiliereConstante.direction.haut].accesAbstrait.getFin(env).getFourmi(env));
            }
            if (this.AccesAbstraitList[(int)FourmiliereConstante.direction.bas] != null &&
                this.AccesAbstraitList[(int)FourmiliereConstante.direction.bas].accesAbstrait.getFin(env).containsFourmi(env))
            {
                listeFourmi.Add(this.AccesAbstraitList[(int)FourmiliereConstante.direction.bas].accesAbstrait.getFin(env).getFourmi(env));
            }
            Console.WriteLine("NOMBRE FOURMI AUTOUR DU CHAMAN : " + listeFourmi.Count);
            return(listeFourmi);
        }
예제 #3
0
 public static void loadObject(EnvironnementAbstrait env)
 {
     foreach (ObjetAbstrait o in env.ObjetsList)
     {
         env.ZoneAbstraiteList[o.position.coordonnes.x].zoneAbstraiteList[o.position.coordonnes.y].ObjetsList.Add(o);
         o.position = env.ZoneAbstraiteList[o.position.coordonnes.x].zoneAbstraiteList[o.position.coordonnes.y];
     }
 }
예제 #4
0
 public static void loadPersonnage(EnvironnementAbstrait env)
 {
     foreach (PersonnageAbstrait p in env.PersonnagesList)
     {
         env.ZoneAbstraiteList[p.position.coordonnes.x].zoneAbstraiteList[p.position.coordonnes.y].PersonnagesList.Add(p);
         p.position = env.ZoneAbstraiteList[p.position.coordonnes.x].zoneAbstraiteList[p.position.coordonnes.y];
     }
 }
예제 #5
0
        public void charger()
        {
            StreamReader streamReader = new StreamReader("sauvegarde.xml");
            List <EnvironnementAbstrait> environnementList = new List <EnvironnementAbstrait>();

            environnementList.Add(environnementFourmiliere);
            environnementFourmiliere = XmlLoader.loadEnvironnement(streamReader)[0];
            streamReader.Close();
        }
예제 #6
0
        public PersonnageAbstrait getFourmi(EnvironnementAbstrait env)
        {
            ZoneAbstraite z = env.ZoneAbstraiteList[coordonnes.x].zoneAbstraiteList[coordonnes.y];

            if (z.containsFourmi(env))
            {
                return(z.PersonnagesList[0]);
            }
            return(null);
        }
예제 #7
0
 public void notifierObservateur(EnvironnementAbstrait env)
 {
     this.listObservateur = new List <IObservateur>();
     foreach (Fourmi f in env.PersonnagesList)
     {
         this.listObservateur.Add(f);
     }
     foreach (IObservateur personnage in this.listObservateur)
     {
         personnage.actualiser(etatPluie, env);
     }
 }
예제 #8
0
        public bool containsFourmi(EnvironnementAbstrait env)
        {
            ZoneAbstraite z = env.ZoneAbstraiteList[coordonnes.x].zoneAbstraiteList[coordonnes.y];

            if (!z.ZoneBloquee() && z != null)
            {
                if (z.PersonnagesList.Count > 0)
                {
                    return(true);
                }
            }
            return(false);
        }
예제 #9
0
 public Nourriture getNourriture(EnvironnementAbstrait env)
 {
     if (this.containsObjet(typeof(Nourriture), env))
     {
         for (int i = 0; i < ObjetsList.Count; i++)
         {
             if (ObjetsList[i].GetType() == typeof(Nourriture))
             {
                 return((Nourriture)ObjetsList[i]);
             }
         }
     }
     return(null);
 }
예제 #10
0
        public bool TousAccesBloque(EnvironnementAbstrait env)
        {
            bool zonesBloquees = true;

            foreach (PaireDirection p in this.AccesAbstraitList)
            {
                if (p != null)
                {
                    if (!p.accesAbstrait.getFin(env).ZoneBloquee())
                    {
                        zonesBloquees = false;
                    }
                }
            }
            return(zonesBloquees);
        }
예제 #11
0
        public Boolean containsObjet(Type type, EnvironnementAbstrait env)
        {
            ZoneAbstraite z = env.ZoneAbstraiteList[coordonnes.x].zoneAbstraiteList[coordonnes.y];

            for (int i = 0; i < z.ObjetsList.Count; i++)
            {
                if (z.ObjetsList[i].GetType() == type)
                {
                    return(true);
                }
            }
            for (int i = 0; i < z.PersonnagesList.Count; i++)
            {
                if (z.PersonnagesList[i].GetType() == type)
                {
                    return(true);
                }
            }

            return(false);
        }
예제 #12
0
 public abstract List <Evenement> executer(PersonnageAbstrait personnage, EnvironnementAbstrait env);
예제 #13
0
 public ZoneAbstraite getFin(EnvironnementAbstrait env)
 {
     return(env.ZoneAbstraiteList[fin.x].zoneAbstraiteList[fin.y]);
 }
예제 #14
0
 public ZoneAbstraite getDebut(EnvironnementAbstrait env)
 {
     return(env.ZoneAbstraiteList[debut.x].zoneAbstraiteList[debut.y]);
 }