protected void changerDirection() {		// Method for change the direction
		int tempX = x;						// On met les attributs x et y dans des variables temporaires pour les vérifications 
		int tempY = y; 
		
		switch (direction) {		// Calculate the possible future position
			case NORD  : tempY--;		// Suivant la position on va modifier les attributs X et Y 
					break;
			case EST   : tempX++;		// Bien sur on ne modifie que les variables temporaires en premier lieu 
					break;
			case SUD   : tempY++;
					break;
			case OUEST : tempX--;
					break;				// Break pour fermer le switch sinon tout s'éxécute à la suite 
		}

		if ( donjon.getXY(tempX, tempY).estVide() == false ) {		// We verify if the case is nothing
			
			if ( nbrObstacleRencontrer >= 3 ) {						// We calculate the number of obstacle				
				nbrObstacleRencontrer=0;
				
				if ( direction > 2 ){								// Si c'est le troisiÃ¨me ostacle on fait demie tour
					direction-=2;									// On change la direction 			
					this.NbrDeTourAPasser=2;							// Et on incrémente le nombre de tour à passer lors d'un demi tour 
					}
				else{
					this.NbrDeTourAPasser=2;					// Idem lorsque l'on fais demi tour de l'autre coté 
					direction+=2;
					}				
				
			} else {												// Sinon on compte le nombre d'ostacle
			nbrObstacleRencontrer++;								// On incrémente le nombre d'obstacle à chaque fois 
			direction++;											// On modifie la direction 
			this.NbrDeTourAPasser=1;								// A chaque changement de direction de 90 degré on à un tour à passer 
			}
		}
			if ( direction > OUEST ){								// Si la direction est supÃ©rieur Ã  OUEST on change Ã  NORD
				direction = NORD;									// La direction prend sa nouvelle valeur 
				this.NbrDeTourAPasser=2;								// Et on augmente le nombre de tour
			}
			else if ( direction < NORD ){							/// Sinon on vÃ©irfie aussi qu'il n'est infÃ©rieur Ã  nord
				direction = OUEST;									// On modifie la direction 
				this.NbrDeTourAPasser=2;							// Et on augmente le nombre de tour à passer 
			}
					
	}