@Override
	public ArrayList<Move> generateMovesForThisPiece(Chessboard chessboard) {

		final String positionPiece = chessboard.getPositionPiece(this);
		final int getX = Helper.getXfromString(positionPiece);
		final int getY = Helper.getYfromString(positionPiece);
		int toX = getX, toY = getY;

		// Avance d'une case
		toY += directionMovementY();
		final ArrayList<Move> moves = new ArrayList<Move>();
		Move move = checkThis(toX, toY, chessboard, false);

		// Si aucune piece au nouvelle position du pion
		if (move != null) {
			moves.add(move);

			// Deuxieme deplacement si le pion est toujours à sa position
			// initial
			if ((!Helper.isColorWhite(isColor()) && getY == 6)
					|| (Helper.isColorWhite(isColor()) && getY == 1)) {
				toY += directionMovementY(); // Avance d'une deuxieme case
				move = checkThis(toX, toY, chessboard, false);

				if (move != null) {
					moves.add(move);
				}

			}
		}

		for (int lenght = -1; lenght < 2; lenght++) {
			if (lenght != 0) {
				toX = getX + lenght; // -1 ou 1
				toY = getY + directionMovementY(); // 1 ou 2

				move = checkThis(toX, toY, chessboard, true);

				if (move != null) {
					moves.add(move);
				}
			}
		}

		return moves;
	}