public ArrayList<Case> determinerPersonnageDansUneZoneSpherique(
			Personnage lanceur, Position posDepart, int portee) {

		int calculDeplacement = 0;
		calculDeplacement = Math.abs(posDepart.obtenirX()
				- this.retournerPositionPersonnageEnX(lanceur));
		calculDeplacement += Math.abs(posDepart.obtenirY()
				- this.retournerPositionPersonnageEnY(lanceur));

		ArrayList<Case> liste = new ArrayList<Case>();
		int modifX = 0;
		int modifY = 0;
		int arretX = 0;

		if (this.portee + 1 >= calculDeplacement) {
			for (int j = -portee; j <= portee; j++) {
				int axeY = (posDepart.obtenirY() - portee + modifY);
				for (int axeX = (posDepart.obtenirX() - modifX); axeX <= (posDepart
						.obtenirX() + portee - arretX); axeX++) {
					if (!(axeX < 0
							|| axeX >= this.partie.obtenirCarte()
									.obtenirTailleEnX() || axeY < 0 || axeY >= this.partie
							.obtenirCarte().obtenirTailleEnY()))
						liste.add(this.partie.obtenirCarte().obtenirCarte()[axeX][axeY]);
					axeY++;
				}
				int parite = j % 2;
				if (parite == 0) {
					modifY++;
					arretX++;
				} else {
					modifX++;
				}
			}
		}
		return liste;
	}