In [64]:
import collections

given = """
6
##########
####  ####
##### ####
  ########
    ######
##  ######
##   ##
#### ..
#### ..
#### ..
----------
9
######### 
####
#     ###.
#     ##
##########
##########
######.
######....
######....
###
----------
3
#########
########..
########..
###
##########
##########
#########
#####...#
###     #
### .   #
----------
5
. #######
    #####.
    #####.
### #####
##########
##########
##########
####......
####......
####....
----------
1
#
#########.
#########.
#####
#####
#######
#######...
#######...
#######...
#######.
----------
10
#######
#######...
###
###
#########.
#######
######....
######....
########..
####
----------
4
#####..
#####.....
#####  #..

##########
#######.
##########
##########
##########
     ####
----------
7
##
######...#
######  ..
    ###...
#######...
#######..
######....
##    ....
########..
  ######. 
----------
2
##    ####
######  ##
######  ##
###     ##
#####...##
#####.
#####...##
   ##
.....####.
.    ####
----------
8
#####   ##
####### ##
##########
###  ## ##
##      ##
##     ###
#####  ###
 ####
 ####  ...
     #
""".strip()


Floor = collections.namedtuple('Floor', ['n', 'rows'])
MAP_ORIGINAL = {
  ' ': ' ',
  '#': '█',
  '.': '░',
}
MAP_INVERTED = {
  ' ': '█',
  '#': ' ',
  '.': '░',
}
MAP = MAP_INVERTED


def process(blocks):
  result = []
  for block in blocks:
    lines = block.split('\n')
    assert len(lines) == 11, lines
    n = '%2d' % int(lines[0])
    rows = lines[1:]
    result.append(Floor(n, rows))
  return result

floors = process(given.split('\n----------\n'))

In [65]:
def get(x, y, z):
  row = floors[z].rows[y]
  if x >= len(row):
    return MAP[' ']
  return MAP[row[x]]

In [66]:
for x in reversed(range(10)):
  print('Slice:', x, '_' * 16)
  for z in range(10):
    row = [floors[z].n, ': ']
    for y in reversed(range(10)):  
      row.append(get(x, y, z)*2)
    print(''.join(row))


Slice: 9 ________________
 6: ████████            
 9: ██░░░░██    ██░░████
 3: ████████    ██░░░░██
 5: ██░░░░      ██░░░░██
 1: ██░░░░░░██████░░░░██
10: ██░░░░░░██░░████░░██
 4: ██      ██  ██░░░░██
 7: ██░░░░░░██░░░░░░  ██
 2: ██░░██  ██          
 8: ██░░██              
Slice: 8 ________________
 6: ████████            
 9: ██░░░░██    ██  ██  
 3:             ██░░░░  
 5: ██░░░░              
 1: ██░░░░░░██████    ██
10: ██░░░░░░██  ████░░██
 4:         ██  ██░░░░██
 7: ░░░░░░░░░░░░░░░░░░██
 2:     ██  ██          
 8: ██░░██              
Slice: 7 ________________
 6: ████████            
 9: ██░░░░██        ██  
 3: ████░░      ██      
 5: ░░░░░░              
 1: ░░░░░░░░██████    ██
10: ██  ░░░░██  ████░░██
 4:         ░░  ██  ░░██
 7:     ░░░░░░░░░░██░░██
 2:     ██░░██░░██████  
 8: ██░░██    ████  ████
Slice: 6 ________________
 6: ░░░░░░              
 9: ██░░░░░░        ██  
 3: ████░░      ██      
 5: ░░░░░░              
 1:           ████    ██
10: ██  ░░░░    ████    
 4:             ████░░░░
 7:     ░░░░      ██░░██
 2:     ██░░██░░██████  
 8: ████████████      ██
Slice: 5 ________________
 6: ░░░░░░        ████  
 9: ██          ██████  
 3: ████░░      ██      
 5: ░░░░░░              
 1:           ████    ██
10: ██          ████    
 4:             ████░░░░
 7:     ██            ██
 2:     ██░░░░░░██    ██
 8:   ██████████      ██
Slice: 4 ________________
 6: ████████        ██  
 9: ██          ██████  
 3: ░░██        ██      
 5: ░░░░░░              
 1:                   ██
10: ██          ████    
 4: ██          ██      
 7:     ██            ██
 2: ██░░        ██    ██
 8: ██      ██████      
Slice: 3 ________________
 6:       ██████        
 9: ██          ████    
 3: ████        ██      
 5:             ██████  
 1:                   ██
10:             ████    
 4: ██          ██      
 7:     ██      ██    ██
 2: ██░░        ██    ██
 8: ██      ██████      
Slice: 2 ________________
 6:       ██████        
 9:             ████    
 3:                     
 5:               ████  
 1:                   ██
10:                     
 4: ██          ██      
 7:     ██      ██    ██
 2: ██░░██            ██
 8: ██      ████        
Slice: 1 ________________
 6:           ████      
 9:             ████    
 3:                     
 5:               ██████
 1:                   ██
10:                     
 4: ██          ██      
 7: ██          ██      
 2: ██░░██              
 8: ██                  
Slice: 0 ________________
 6:           ████      
 9:                     
 3:                     
 5:               ████░░
 1:                     
10:                     
 4: ██          ██      
 7: ██          ██      
 2: ░░░░██              
 8: ██████              

In [67]:
for y in reversed(range(10)):
  print('Slice:', x)
  for z in range(10):
    row = [floors[z].n, ': ']
    for x in range(10):
      row.append(get(x, y, z)*2)
    print(''.join(row))


Slice: 0
 6:         ██░░░░██████
 9:       ██████████████
 3:       ██░░██████  ██
 5:         ░░░░░░░░████
 1:               ░░████
10:         ████████████
 4: ██████████        ██
 7: ████            ░░██
 2: ░░████████        ██
 8: ██████████  ████████
Slice: 9
 6:         ██░░░░██████
 9:             ░░░░░░░░
 3:       ██████████  ██
 5:         ░░░░░░░░░░░░
 1:               ░░░░░░
10:                 ░░░░
 4:                     
 7:                 ░░░░
 2: ░░░░░░░░░░        ░░
 8: ██        ████░░░░░░
Slice: 9
 6:         ██░░░░██████
 9:             ░░░░░░░░
 3:           ░░░░░░  ██
 5:         ░░░░░░░░░░░░
 1:               ░░░░░░
10:             ░░░░░░░░
 4:                     
 7:     ████████░░░░░░░░
 2: ██████    ██████████
 8: ██        ██████████
Slice: 9
 6:     ██████    ██████
 9:             ░░██████
 3:                   ██
 5:                     
 1:               ░░░░░░
10:             ░░░░░░░░
 4:                     
 7:             ░░░░░░░░
 2:           ░░░░░░    
 8:           ████      
Slice: 9
 6:     ████            
 9:                     
 3:                     
 5:                     
 1:               ██████
10:               ██████
 4:               ░░████
 7:               ░░░░██
 2:           ░░████████
 8:     ██████████      
Slice: 9
 6: ████████            
 9:                     
 3:                     
 5:                     
 1:           ██████████
10:                   ░░
 4:                     
 7:               ░░░░░░
 2:           ░░░░░░    
 8:     ████████████    
Slice: 9
 6: ████                
 9:   ██████████    ████
 3:       ██████████████
 5:       ██          ██
 1:           ██████████
10:       ██████████████
 4: ████████████████████
 7: ████████      ░░░░░░
 2:       ██████████    
 8:       ████    ██    
Slice: 9
 6:           ██        
 9:   ██████████      ░░
 3:                 ░░░░
 5: ████████          ░░
 1:                   ░░
10:       ██████████████
 4:           ████  ░░░░
 7:             ████░░░░
 2:             ████    
 8:                     
Slice: 9
 6:         ████        
 9:         ████████████
 3:                 ░░░░
 5: ████████          ░░
 1:                   ░░
10:               ░░░░░░
 4:           ░░░░░░░░░░
 7:             ░░░░░░  
 2:             ████    
 8:               ██    
Slice: 9
 6:                     
 9:                   ██
 3:                   ██
 5: ░░██              ██
 1:   ██████████████████
10:               ██████
 4:           ░░░░██████
 7:     ████████████████
 2:     ████████        
 8:           ██████    

In [68]:
for z in range(10):
  row = [floors[z].n, ': ']
  for y in reversed(range(10)):
    visited = False
    for x in reversed(range(10)):
      v = get(x, y, z)
      if v == MAP[' ']:
        visited = True
        break
    if visited:
      row.append(MAP[' '] * 2)
    else:
      row.append(MAP['#'] * 2)
  print(''.join(row))


 6: ██████████████████  
 9: ██    ██    ████████
 3: ████████    ██    ██
 5: ██          ████████
 1: ██      ██████    ██
10: ██      ██  ████  ██
 4: ██      ██  ████  ██
 7: ██  ██  ██  ████  ██
 2: ██  ██  ██  ████████
 8: ██████████████  ████

In [ ]: