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

		int toX = -1, toY = -1;
		final ArrayList<Move> moves = new ArrayList<Move>();

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

		// 4 direction
		for (int direction = 0; direction < 4; direction++)
			// Max 8 moves
		{
			for (int length = 1; length < 9; length++) {

				if (direction == 0) {
					toX = getX + length;
					toY = getY;
				}
				if (direction == 1) {
					toX = getX;
					toY = getY + length;
				}
				if (direction == 2) {
					toX = getX - length;
					toY = getY;
				}
				if (direction == 3) {
					toX = getX;
					toY = getY - length;
				}

				final Move move = checkThis(toX, toY, chessboard);

				// Si déplacement est nul, plus possible de ce déplacer dans
				// cette direction pour la tour
				if (move != null) {
					moves.add(move);
					if (move.isAttack()) {
						break;
					}
				} else {
					break;
				}
			}
		}

		return moves;
	}