public Boolean updatePosition()
	{
		Boolean retour = true;

		// Choix de la nouvelle position
		Integer[] mvt = model.move(new Neighborhood(this));

		// Definition des variables pour la nouvelle position
		Integer[] nextPos = new Integer[3];
		nextPos[0] = line + mvt[0];
		nextPos[1] = colonne + mvt[1];
		nextPos[2] = id;

		// On verifie si la case est libre
		if(!controlleur.isOccupied(nextPos))
		{
			line += mvt[0];
			colonne += mvt[1];

			// Si la prochaine case n'est pas dans le systeme
			if( line < 0 || line > getGrid().getNbLines() - 1 || 
					colonne < 0 || colonne > getGrid().getNbColumns() - 1 )
			{
				retour = false;
			}
			else
			{
				// Si la personne ne s'est pas deplacee en diagonale, on augmente la distance
				if(Math.abs(mvt[0] + mvt[1]) == 1)
				{					
					//System.out.println("Depla. ligne - " + distance);
					distance = distance + 1;
				}
				// Si elle deplacee en diagonale, on change l'operation
				else if(mvt[0] != 0 && mvt[1] != 0)
				{
					//System.out.println("Depla. diag - " + distance);
					distance = distance + 1 + diagonalLength;
				}
			}
		}

		return retour;

	}