示例#1
0
        //-----------------------------------------------------------------------------
        public string SeDeplacer(PlateauDeJeu plateau)
        {
            if (seDeplacer != null)
            {
                //Position p = new Position(1,1);
                List <ZoneAbstraite> voisins = plateau.GetNeighbourZones(this.position);
                Random rdm   = new Random(DateTime.Now.Millisecond + this.PointsDeVie + this.position.X);
                bool   found = false;
                int    i     = 0;

                if (voisins.Find((c) => c.Walkable == true) == null)
                {
                    return("Je suis trop fatigué pour me déplacer");
                }

                while (!found)
                {
                    i = rdm.Next(0, voisins.Count - 1);
                    if (voisins[i].Walkable)
                    {
                        found = true;
                    }
                }
                //TODO: mettre une fonction avec dijkstra (Valérie)
                return(seDeplacer.SeDeplacer(this, voisins[i].point));
            }
            return("Je suis trop fatigué pour me déplacer");
        }
示例#2
0
        public override PlateauDeJeu CreerPlateau()
        {
            PlateauDeJeu plateau = new PlateauDeJeu(MapType.labyrinthe);
            //creer adjacent et case
            Zone     actuelle = null;
            Zone     ancienne = null;
            Acces    lien     = null;
            Position p        = null;
            int      h        = 0;
            int      j        = 0;

            for (int i = 0; i < Parametres.nbCases; i++)
            {
                if (h >= Parametres.nbColonne)
                {
                    h = 0;
                    j++;
                }
                p        = new Position(h, j);
                actuelle = (Zone)CreerZone("Zone " + i, p, i);
                plateau.AjoutZone((ZoneAbstraite)actuelle);
                if (ancienne != null)
                {
                    lien = (Acces)CreerAcces((ZoneAbstraite)actuelle, (ZoneAbstraite)ancienne);
                    plateau.AjoutAcces((AccesAbstrait)lien);
                }
                ancienne = actuelle;
                h++;
            }

            List <ZoneAbstraite> liste = plateau.zones;
            ZoneAbstraite        za;

            foreach (Zone z in liste)
            {
                if (z.point.Y != 0)
                {
                    za = (ZoneAbstraite)plateau.GetZone(new Position(z.point.X, z.point.Y - 1));
                    if (za != null)
                    {
                        lien = (Acces)CreerAcces((ZoneAbstraite)z, za);
                        plateau.AjoutAcces((AccesAbstrait)lien);
                    }
                    za = null;
                }
                if (z.point.Y != Parametres.nbColonne - 1)
                {
                    za = (ZoneAbstraite)plateau.GetZone(new Position(z.point.X, z.point.Y + 1));
                    if (za != null)
                    {
                        lien = (Acces)CreerAcces((ZoneAbstraite)z, za);
                        plateau.AjoutAcces((AccesAbstrait)lien);
                    }
                    za = null;
                }
            }

            return(plateau);
        }
        public override PlateauDeJeu CreerPlateau()
        {
            PlateauDeJeu plateau = new PlateauDeJeu(MapType.labyrinthe);
            //creer adjacent et case
            Zone actuelle = null;
            Zone ancienne = null;
            Acces lien = null;
            Position p = null;
            int h = 0;
            int j = 0;
            for (int i = 0; i < Parametres.nbCases; i++)
            {
                if (h >= Parametres.nbColonne)
                {
                    h = 0;
                    j++;
                }
                p = new Position(h, j);
                actuelle = (Zone)CreerZone("Zone " + i, p, i);
                plateau.AjoutZone((ZoneAbstraite)actuelle);
                if (ancienne != null)
                {
                    lien = (Acces)CreerAcces((ZoneAbstraite)actuelle, (ZoneAbstraite)ancienne);
                    plateau.AjoutAcces((AccesAbstrait)lien);
                }
                ancienne = actuelle;
                h++;
            }

            List<ZoneAbstraite> liste = plateau.zones;
            ZoneAbstraite za;
            foreach (Zone z in liste)
            {
                if (z.point.Y != 0)
                {
                    za = (ZoneAbstraite)plateau.GetZone(new Position(z.point.X, z.point.Y - 1));
                    if (za != null)
                    {
                        lien = (Acces)CreerAcces((ZoneAbstraite)z, za);
                        plateau.AjoutAcces((AccesAbstrait)lien);
                    }
                    za = null;
                }
                if (z.point.Y != Parametres.nbColonne - 1)
                {
                    za =(ZoneAbstraite)plateau.GetZone(new Position(z.point.X, z.point.Y + 1));
                    if (za != null)
                    {
                        lien = (Acces)CreerAcces((ZoneAbstraite)z, za);
                        plateau.AjoutAcces((AccesAbstrait)lien);
                    }
                    za = null;
                }
            }

            return plateau;
        }
        public ConfigurationGame(string nomR, string nomV, List<Personnage> joueursR, List<Personnage> joueursV, 
            List<string> queteR, List<string> queteV, MapType map)
        {
            equipeRouge = new Equipe(nomR, joueursR, queteR);
            equipeVerte = new Equipe(nomV, joueursV, queteV);

            if (map == MapType.standard)
            {
                FabriquePlateauDeJeu f = new FabriquePlateauDeJeu();
                plateau = f.CreerPlateau();
            }
            else if ( map == MapType.labyrinthe)
            {
                FabriqueLabyrinthe f = new FabriqueLabyrinthe();
                plateau = f.CreerPlateau();
            }
            else
            {
                FabriqueEtage f = new FabriqueEtage();
                plateau = f.CreerPlateau();
            }
        }
        public ConfigurationGame(string nomR, string nomV, List <Personnage> joueursR, List <Personnage> joueursV,
                                 List <string> queteR, List <string> queteV, MapType map)
        {
            equipeRouge = new Equipe(nomR, joueursR, queteR);
            equipeVerte = new Equipe(nomV, joueursV, queteV);

            if (map == MapType.standard)
            {
                FabriquePlateauDeJeu f = new FabriquePlateauDeJeu();
                plateau = f.CreerPlateau();
            }
            else if (map == MapType.labyrinthe)
            {
                FabriqueLabyrinthe f = new FabriqueLabyrinthe();
                plateau = f.CreerPlateau();
            }
            else
            {
                FabriqueEtage f = new FabriqueEtage();
                plateau = f.CreerPlateau();
            }
        }
        public override PlateauDeJeu CreerPlateau()
        {
            PlateauDeJeu plateau = new PlateauDeJeu(MapType.labyrinthe);
            //creer adjacent et case
            Case actuelle = null;
            Case ancienne = null;
            Adjacent lien = null;
            Position p = null;
            int h = 0;
            int j = 0;
            for (int i = 0; i < Parametres.nbCases; i++)
            {
                if (h >= Parametres.nbColonne)
                {
                    h = 0;
                    j++;
                }
                p = new Position(h, j);
                actuelle = (Case)CreerZone("Zone " + i, p, i);
                plateau.AjoutZone((ZoneAbstraite)actuelle);
                if (ancienne != null)
                {
                    lien = (Adjacent)CreerAcces((ZoneAbstraite)actuelle, (ZoneAbstraite)ancienne);
                    plateau.AjoutAcces((AccesAbstrait)lien);
                }
                ancienne = actuelle;
                h++;
            }

            List<ZoneAbstraite> liste = plateau.zones;
            ZoneAbstraite za;
            foreach (Case z in liste)
            {
                if (z.point.Y != 0)
                {
                    za = (ZoneAbstraite)plateau.GetZone(new Position(z.point.X, z.point.Y - 1));
                    if (za != null)
                    {
                        lien = (Adjacent)CreerAcces((ZoneAbstraite)z, za);
                        plateau.AjoutAcces((AccesAbstrait)lien);
                    }
                    za = null;
                }
                if (z.point.Y != Parametres.nbColonne - 1)
                {
                    za = (ZoneAbstraite)plateau.GetZone(new Position(z.point.X, z.point.Y + 1));
                    if (za != null)
                    {
                        lien = (Adjacent)CreerAcces((ZoneAbstraite)z, za);
                        plateau.AjoutAcces((AccesAbstrait)lien);
                    }
                    za = null;
                }
            }
            Random rdm = new Random(DateTime.Now.Millisecond);
            for (int i = 0; i < 10; i++)
            {
                plateau.zones[rdm.Next(0, Parametres.nbCases)].Walkable = false;
            }
            return plateau;
        }
示例#7
0
        public override PlateauDeJeu CreerPlateau()
        {
            PlateauDeJeu plateau = new PlateauDeJeu(MapType.labyrinthe);
            //creer adjacent et case
            Case     actuelle = null;
            Case     ancienne = null;
            Adjacent lien     = null;
            Position p        = null;
            int      h        = 0;
            int      j        = 0;

            for (int i = 0; i < Parametres.nbCases; i++)
            {
                if (h >= Parametres.nbColonne)
                {
                    h = 0;
                    j++;
                }
                p        = new Position(h, j);
                actuelle = (Case)CreerZone("Zone " + i, p, i);
                plateau.AjoutZone((ZoneAbstraite)actuelle);
                if (ancienne != null)
                {
                    lien = (Adjacent)CreerAcces((ZoneAbstraite)actuelle, (ZoneAbstraite)ancienne);
                    plateau.AjoutAcces((AccesAbstrait)lien);
                }
                ancienne = actuelle;
                h++;
            }

            List <ZoneAbstraite> liste = plateau.zones;
            ZoneAbstraite        za;

            foreach (Case z in liste)
            {
                if (z.point.Y != 0)
                {
                    za = (ZoneAbstraite)plateau.GetZone(new Position(z.point.X, z.point.Y - 1));
                    if (za != null)
                    {
                        lien = (Adjacent)CreerAcces((ZoneAbstraite)z, za);
                        plateau.AjoutAcces((AccesAbstrait)lien);
                    }
                    za = null;
                }
                if (z.point.Y != Parametres.nbColonne - 1)
                {
                    za = (ZoneAbstraite)plateau.GetZone(new Position(z.point.X, z.point.Y + 1));
                    if (za != null)
                    {
                        lien = (Adjacent)CreerAcces((ZoneAbstraite)z, za);
                        plateau.AjoutAcces((AccesAbstrait)lien);
                    }
                    za = null;
                }
            }
            Random rdm = new Random(DateTime.Now.Millisecond);

            for (int i = 0; i < 10; i++)
            {
                plateau.zones[rdm.Next(0, Parametres.nbCases)].Walkable = false;
            }
            return(plateau);
        }
示例#8
0
        //-----------------------------------------------------------------------------
        public string SeDeplacer(PlateauDeJeu plateau)
        {
            if (seDeplacer != null)
            {
                //Position p = new Position(1,1);
                List<ZoneAbstraite> voisins = plateau.GetNeighbourZones(this.position);
                Random rdm = new Random(DateTime.Now.Millisecond + this.PointsDeVie + this.position.X);
                bool found = false;
                int i = 0;

                if (voisins.Find((c) => c.Walkable == true) == null)
                    return "Je suis trop fatigué pour me déplacer";

                while (!found)
                {
                    i = rdm.Next(0, voisins.Count - 1);
                    if (voisins[i].Walkable)
                        found = true;
                }
                //TODO: mettre une fonction avec dijkstra (Valérie)
                return seDeplacer.SeDeplacer(this, voisins[i].point);
            }
            return "Je suis trop fatigué pour me déplacer";
        }