public override PersonnageAbstrait creerPersonnage(string nom, int typeFourmi, ZoneAbstraite zoneFourmiliere, EnvironnementAbstrait env)
        {
            id++;
            switch (typeFourmi)
            {
            case (int)FourmiliereConstante.typeFourmie.fourmiOuvriere:
            {
                FourmiOuvriere f = new FourmiOuvriere(nom, zoneFourmiliere, id, env);
                env.ZoneAbstraiteList[zoneFourmiliere.coordonnes.x].zoneAbstraiteList[zoneFourmiliere.coordonnes.y].AjoutePersonnage(f);
                return(f);
            }

            case (int)FourmiliereConstante.typeFourmie.fourmiGuerriere:
            {
                FourmiGuerriere f = new FourmiGuerriere(nom, zoneFourmiliere, id, env);
                env.ZoneAbstraiteList[zoneFourmiliere.coordonnes.x].zoneAbstraiteList[zoneFourmiliere.coordonnes.y].AjoutePersonnage(f);
                return(f);
            }

            case (int)FourmiliereConstante.typeFourmie.oeufFourmiOuvriere:
            {
                Oeuf f = new Oeuf(nom, zoneFourmiliere, id, (int)FourmiliereConstante.typeFourmie.fourmiOuvriere);
                env.ZoneAbstraiteList[zoneFourmiliere.coordonnes.x].zoneAbstraiteList[zoneFourmiliere.coordonnes.y].AjoutePersonnage(f);
                return(f);
            }

            case (int)FourmiliereConstante.typeFourmie.oeufFourmiGuerriere:
            {
                Oeuf f = new Oeuf(nom, zoneFourmiliere, id, (int)FourmiliereConstante.typeFourmie.fourmiGuerriere);
                env.ZoneAbstraiteList[zoneFourmiliere.coordonnes.x].zoneAbstraiteList[zoneFourmiliere.coordonnes.y].AjoutePersonnage(f);
                return(f);
            }

            case (int)FourmiliereConstante.typeFourmie.oeufFourmiChaman:
            {
                Oeuf f = new Oeuf(nom, zoneFourmiliere, id, (int)FourmiliereConstante.typeFourmie.fourmiChaman);
                env.ZoneAbstraiteList[zoneFourmiliere.coordonnes.x].zoneAbstraiteList[zoneFourmiliere.coordonnes.y].AjoutePersonnage(f);
                return(f);
            }

            case (int)FourmiliereConstante.typeFourmie.fourmiReine:
            {
                FourmiReine f = new FourmiReine(nom, zoneFourmiliere, id, env);
                zoneFourmiliere.AjoutePersonnage(f);
                env.ZoneAbstraiteList[zoneFourmiliere.coordonnes.x].zoneAbstraiteList[zoneFourmiliere.coordonnes.y].AjoutePersonnage(f);
                return(f);
            }

            case (int)FourmiliereConstante.typeFourmie.fourmiChaman:
            {
                FourmiChaman f = new FourmiChaman(nom, zoneFourmiliere, id, env);
                env.ZoneAbstraiteList[zoneFourmiliere.coordonnes.x].zoneAbstraiteList[zoneFourmiliere.coordonnes.y].AjoutePersonnage(f);
                return(f);
            }

            default:
                return(null);
            }
        }
        public override void DeplacerPersonnage(PersonnageAbstrait personnage, ZoneAbstraite zoneSource, ZoneAbstraite zoneDestination)
        {
            //On retire le personnage de l'emplacement ou il se trouve
            zoneSource.RetirePersonnage(personnage);

            //On ajoute le personnage a sa nouvelle zone
            zoneDestination.AjoutePersonnage(personnage);
        }