コード例 #1
0
ファイル: Deplacements.cs プロジェクト: IAmWCat/Pacman
 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));
 }
コード例 #2
0
ファイル: Deplacements.cs プロジェクト: IAmWCat/Pacman
        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));
        }
コード例 #3
0
ファイル: Deplacements.cs プロジェクト: IAmWCat/Pacman
        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));
        }
コード例 #4
0
ファイル: Tableau.cs プロジェクト: IAmWCat/Pacman
 /// <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);
 }