/// <summary> /// Vérification du prochain mouvement de visiteurs et applique l'image approprié /// </summary> public void DeplacementVisiteur() { int direction = rand.Next(1, 5); switch (direction) { case 1: //Droite if (X + 1 < TabAjout.GetLength(0) - 1) { if (VerifDeplacementObstacleDroite(TabAjout)) { if (!VerifAucuneObstacle(X + 1, Y)) { X += 1; Orientation = "DROITE"; } } } break; case 2: //Gauche if (X - 1 > -1) { if (VerifDeplacementObstacleGauche(TabAjout)) { if (!VerifAucuneObstacle(X - 1, Y)) { X -= 1; Orientation = "GAUCHE"; } } } break; case 3: //Haut if (Y - 1 > -1) { if (VerifDeplacementObstacleHaut(TabAjout)) { if (!VerifAucuneObstacle(X, Y - 1)) { Y -= 1; Orientation = "HAUT"; } } } break; case 4: //Bas if (Y + 1 < TabAjout.GetLength(1) - 1) { if (VerifDeplacementObstacleBas(TabAjout)) { if (!VerifAucuneObstacle(X, Y + 1)) { Y += 1; Orientation = "BAS"; } } } break; } }
/// <summary> /// Déplacement du concierge /// </summary> public void DeplacementConcierge() { int direction = rand.Next(1, 5); switch (direction) { case 1: //Droite if (X + 1 < TabAjout.GetLength(0) - 1) { if (TabAjout[X + 1, Y] == asphalte) { if (!VerifAucuneObstacle(X + 1, Y)) { X += 1; Orientation = "DROITE"; } } } break; case 2: //Gauche if (X - 1 > -1) { if (TabAjout[X - 1, Y] == asphalte) { if (!VerifAucuneObstacle(X - 1, Y)) { X -= 1; Orientation = "GAUCHE"; } } } break; case 3: //Haut if (Y - 1 > -1) { if (TabAjout[X, Y - 1] == asphalte) { if (!VerifAucuneObstacle(X, Y - 1)) { Y -= 1; Orientation = "HAUT"; } } } break; case 4: //Bas if (Y + 1 < TabAjout.GetLength(1) - 1) { if (TabAjout[X, Y + 1] == asphalte) { if (!VerifAucuneObstacle(X, Y + 1)) { Y += 1; Orientation = "BAS"; } } } break; } _listeDechet = EnleverDechet(X, Y); }