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)); }
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)); }
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)); }
/// <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); }