Esempio n. 1
0
        /// <summary>
        /// Obtient point de déplacement
        /// </summary>
        /// <param name="p_déplacement">le déplacement à faire</param>
        /// <returns>Le point deplacement</returns>
        public static Point DéplacementEnPoint(Déplacements p_déplacement)
        {
            Point Déplacement = new Point(0, 0);

            switch (p_déplacement)
            {
            case Déplacements.Bas:
                Déplacement.X = 0;
                Déplacement.Y = 1;
                break;

            case Déplacements.Droite:
                Déplacement.X = 1;
                Déplacement.Y = 0;
                break;

            case Déplacements.Gauche:
                Déplacement.X = -1;
                Déplacement.Y = 0;
                break;

            case Déplacements.Haut:
                Déplacement.X = 0;
                Déplacement.Y = -1;
                break;

            default:
                Déplacement.X = 0;
                Déplacement.Y = 0;
                break;
            }
            return(Déplacement);
        }
Esempio n. 2
0
 public Point Deplacement(Point p_positionActuelle)
 {
     if (PacMan.Instance.premierMouvement)
     {
         return(p_positionActuelle);
     }
     return(UtilDéplacement.DéplacementEnPoint(dernierDeplacement = Tableau.Instance.getProchainMouvementsPourSeRendre(PacMan.Instance.getDernierePosition(), p_positionActuelle, dernierDeplacement)));
 }
Esempio n. 3
0
 public Point Deplacement(Point p_positionActuelle)
 {
     if (Tableau.Instance.estDisponible(p_positionActuelle, PacMan.Instance.GetDéplacements()) &&
         UtilDéplacement.EstDansMilieuCase(p_positionActuelle) && PacMan.Instance.GetDéplacements() != Déplacements.Null)
     {
         dernierDeplacement = PacMan.Instance.GetDéplacements();
         return(UtilDéplacement.DéplacementEnPoint(dernierDeplacement));
     }
     if (Tableau.Instance.estDisponible(p_positionActuelle, dernierDeplacement))
     {
         return(UtilDéplacement.DéplacementEnPoint(dernierDeplacement));
     }
     return(new Point(0, 0));
 }
Esempio n. 4
0
        public Point Deplacement(Point p_positionActuelle)
        {
            if (PacMan.Instance.premierMouvement)
            {
                return(p_positionActuelle);
            }
            if (Tableau.Instance.m_nombrePastilles != ancienPastille)
            {
                nombre = new Random(Tableau.Instance.m_nombrePastilles);
            }
            ancienPastille = Tableau.Instance.m_nombrePastilles;
            int          chiffre = (nombre.Next(0, 200) % 4 + 1);
            Déplacements deplacementDepart;

            switch (chiffre)
            {
            case 1:
                deplacementDepart = Déplacements.Bas;
                break;

            case 2:
                deplacementDepart = Déplacements.Droite;
                break;

            case 3:
                deplacementDepart = Déplacements.Gauche;
                break;

            default:
                deplacementDepart = Déplacements.Haut;
                break;
            }
            if (Tableau.Instance.estDisponible(p_positionActuelle, deplacementDepart) && UtilDéplacement.EstDansMilieuCase(p_positionActuelle) &&
                UtilDéplacement.DéplacementEnPoint(deplacementDepart).X * -1 != UtilDéplacement.DéplacementEnPoint(dernierDeplacement).X)
            {
                dernierDeplacement = deplacementDepart;
                return(UtilDéplacement.DéplacementEnPoint(deplacementDepart));
            }
            if (Tableau.Instance.estDisponible(p_positionActuelle, dernierDeplacement))
            {
                return(UtilDéplacement.DéplacementEnPoint(dernierDeplacement));
            }

            return(new Point(0, 0));
        }
Esempio n. 5
0
        /// <summary>
        /// Dessine Pacman
        /// </summary>
        public void draw()
        {
            PImage image = choisirImage(m_dernierDeplacement);

            if (Tableau.Instance.estDisponible(PositionActuelle, m_prochainDéplacement) && m_prochainDéplacement != m_dernierDeplacement)
            {
                if (UtilDéplacement.DéplacementEnPoint(m_dernierDeplacement).X * -1 == UtilDéplacement.DéplacementEnPoint(m_prochainDéplacement).X &&
                    UtilDéplacement.DéplacementEnPoint(m_dernierDeplacement).Y * -1 == UtilDéplacement.DéplacementEnPoint(m_prochainDéplacement).Y)
                {
                    m_dernierDeplacement = m_prochainDéplacement;
                    DernièrePosition     = PositionActuelle;
                    PositionActuelle     = effectuerDeplacement();
                }
                else
                {
                    if ((PositionActuelle.X - 10) % 21 == 0 && (PositionActuelle.Y - 10) % 21 == 0)
                    {
                        m_dernierDeplacement = m_prochainDéplacement;
                        DernièrePosition     = PositionActuelle;
                        PositionActuelle     = effectuerDeplacement();
                    }
                    if (Tableau.Instance.estDisponible(PositionActuelle, m_dernierDeplacement))
                    {
                        DernièrePosition = PositionActuelle;
                        PositionActuelle = effectuerDeplacement();
                    }
                }
            }
            else
            {
                if (Tableau.Instance.estDisponible(PositionActuelle, m_dernierDeplacement))
                {
                    DernièrePosition = PositionActuelle;
                    PositionActuelle = effectuerDeplacement();
                }
            }
            ImageMode(CENTER);
            Image(image, PositionActuelle.X, PositionActuelle.Y, 18, 18);
            if (Tableau.Instance.estPacmanMort(PositionActuelle))
            {
                Jeu.Instance.perdreVie();
            }
        }
Esempio n. 6
0
        public Point Deplacement(Point p_positionActuelle)
        {
            Déplacements deplacementDepart = Déplacements.Droite;

            switch (PacMan.Instance.GetDéplacements())
            {
            case Déplacements.Null:
                deplacementDepart = Déplacements.Null;
                break;

            case Déplacements.Haut:
                deplacementDepart = Déplacements.Bas;
                break;

            case Déplacements.Bas:
                deplacementDepart = Déplacements.Haut;
                break;

            case Déplacements.Gauche:
                deplacementDepart = Déplacements.Droite;
                break;

            case Déplacements.Droite:
                deplacementDepart = Déplacements.Gauche;
                break;

            default:
                deplacementDepart = Déplacements.Null;
                break;
            }
            if (Tableau.Instance.estDisponible(p_positionActuelle, deplacementDepart) && UtilDéplacement.EstDansMilieuCase(p_positionActuelle) &&
                PacMan.Instance.GetDéplacements() != Déplacements.Null)
            {
                dernierDeplacement = deplacementDepart;
                return(UtilDéplacement.DéplacementEnPoint(deplacementDepart));
            }
            if (Tableau.Instance.estDisponible(p_positionActuelle, dernierDeplacement))
            {
                return(UtilDéplacement.DéplacementEnPoint(dernierDeplacement));
            }

            return(new Point(0, 0));
        }
Esempio n. 7
0
        /// <summary>
        /// Obtient si une position est disponible
        /// </summary>
        /// <param name="p_position">position</param>
        /// <param name="p_deplacement">déplacement</param>
        /// <returns>oui ou non</returns>
        public bool estDisponible(Point p_position, Déplacements p_deplacement)
        {
            Point deplacement = UtilDéplacement.DéplacementEnPoint(p_deplacement);

            if (p_position.X + deplacement.X <= 13 || p_position.X + deplacement.X >= 390 ||
                p_position.Y + deplacement.Y <= 13 || p_position.Y + deplacement.Y >= 390)
            {
                return(false);
            }
            if (m_tableau[(p_position.X + (deplacement.X * 11)) / 21][(p_position.Y + deplacement.Y * 11) / 21] != 0 &&
                m_tableau[(p_position.X + deplacement.X * 11) / 21][(p_position.Y + deplacement.Y * 11) / 21] != 3)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Esempio n. 8
0
        /// <summary>
        /// Obtient la bonne image de pacman selon son déplacement
        /// </summary>
        /// <param name="p_déplacement">le déplacement de Pacman</param>
        /// <returns>l'image de pacman</returns>
        private PImage choisirImage(Déplacements p_déplacement)
        {
            if (cptDessinateur++ % 20 < 10)
            {
                switch (p_déplacement)
                {
                case Déplacements.Bas:
                    return(pacmanDOWN1);

                case Déplacements.Haut:
                    return(pacmanUP1);

                case Déplacements.Gauche:
                    return(pacmanRIGHT1);

                case Déplacements.Droite:
                    return(pacmanLEFT1);

                default:
                    return(pacmanLEFT1);
                }
            }
            switch (p_déplacement)
            {
            case Déplacements.Bas:
                return(pacmanDOWN2);

            case Déplacements.Haut:
                return(pacmanUP2);

            case Déplacements.Gauche:
                return(pacmanRIGHT2);

            case Déplacements.Droite:
                return(pacmanLEFT2);

            default:
                return(pacmanLEFT2);
            }
        }
Esempio n. 9
0
 /// <summary>
 /// Modifie le prochain déplacement
 /// </summary>
 /// <param name="p_deplacement">le prochain déplacement</param>
 public void setProchainDéplacement(Déplacements p_deplacement)
 {
     m_prochainDéplacement = p_deplacement;
 }
Esempio n. 10
0
 /// <summary>
 /// Méthode qui renvoit le prochain point à aller pour se rendre à une position donnée
 /// </summary>
 /// <param name="p_destination">destination</param>
 /// <param name="p_depart">départ</param>
 /// <returns>la position du prochain mouvement</returns>
 public Déplacements getProchainMouvementsPourSeRendre(Point p_destination, Point p_depart, Déplacements p_dernierDéplacement)
 {
     if (p_destination.X < p_depart.X && estDisponible(p_depart, Déplacements.Gauche) && UtilDéplacement.EstDansMilieuCase(p_depart))
     {
         return(Déplacements.Gauche);
     }
     if (p_destination.X > p_depart.X && estDisponible(p_depart, Déplacements.Droite) && UtilDéplacement.EstDansMilieuCase(p_depart))
     {
         return(Déplacements.Droite);
     }
     if (p_destination.Y < p_depart.Y && estDisponible(p_depart, Déplacements.Haut) && UtilDéplacement.EstDansMilieuCase(p_depart))
     {
         return(Déplacements.Haut);
     }
     if (p_destination.Y > p_depart.Y && estDisponible(p_depart, Déplacements.Bas) && UtilDéplacement.EstDansMilieuCase(p_depart))
     {
         return(Déplacements.Bas);
     }
     if (estDisponible(p_depart, p_dernierDéplacement))
     {
         return(p_dernierDéplacement);
     }
     return(Déplacements.Null);
 }