code: def horizontals(self):
          
          horizontal_shifts = set(izip_longest(map(
              lambda i: i - self.x, range(self.board.length)), [], fillvalue=0))
          horizontal_shifts.discard((0, 0))
          return horizontal_shifts
docs: All horizontal squares from the piece's point of view.
  
          Returns a list of relative movements up to the board's bound.