text: from string import ascii_lowercase
  from parametros import simbolo_piezas, nombre_piezas_fen
  
  
  class Tablero:
  
      def __init__(self):
          self.casillas = {}
          self.crear_casillas()
  
      def crear_casillas(self):
          for ancho in range(8):
              for alto in range(8):
                  self.casillas[ancho, alto] = Casilla(ancho, alto)
  
      def importar_posicion_FEN(self, posicion: str):
          info_general = posicion.split(' ')
          info_tablero = info_general[0].split('/')
          for alto in range(8):
              fila = list(info_tablero[7 - alto])
              for ancho in range(8):
                  if fila[0].isnumeric():
                      salto = int(fila[0])
                      if salto == 1:
                          fila = fila[1:]
                          continue
                      else:
                          fila[0] = str(salto - 1)
                          continue
                  pieza = fila[0]
                  fila = fila[1:]
  
                  if pieza.lower() == nombre_piezas_fen['peon']:
                      self.casillas[ancho, alto].pieza = Peon(pieza.isupper())
                  elif pieza.lower() == nombre_piezas_fen['caballo']:
                      self.casillas[ancho, alto].pieza = Caballo(pieza.isupper())
                  elif pieza.lower() == nombre_piezas_fen['alfil']:
                      self.casillas[ancho, alto].pieza = Alfil(pieza.isupper())
                  elif pieza.lower() == nombre_piezas_fen['torre']:
                      self.casillas[ancho, alto].pieza = Torre(pieza.isupper())
                  elif pieza.lower() == nombre_piezas_fen['dama']:
                      self.casillas[ancho, alto].pieza = Dama(pieza.isupper())
                  elif pieza.lower() == nombre_piezas_fen['rey']:
                      self.casillas[ancho, alto].pieza = Rey(pieza.isupper())
  
      def __str__(self) -> str:
          texto = '  ╔═══════════════════════════════╗\n'
          for alto in range(7, -1, -1):
              linea = []
              for ancho in range(8):
                  linea.append(self.casillas[ancho, alto].__str__())
              texto += f'{alto + 1} ║' + '│'.join(linea) + '║\n'
              if alto != 0:
                  texto += '  ║───┼───┼───┼───┼───┼───┼───┼───║\n'
          texto += '  ╚═══════════════════════════════╝\n'
          texto += '    a   b   c   d   e   f   g   h'
          return texto
  
  
  class Casilla:
  
      def __init__(self, ancho: int, alto: int):
          self.x = ancho
          self.y = alto
          self.nombre = str(ascii_lowercase[ancho] + str(alto + 1))
          self.es_blanca = (ancho + alto) % 2 == 1
          self.pieza = None
  
      def __str__(self) -> str:
          if self.pieza is not None:
              return ' ' + str(self.pieza) + ' '
          else:
              return '   '
  
  
  class Pieza:
  
      def __init__(self, es_blanca: bool, tipo: str):
          self.es_blanca = es_blanca
          self.tipo = tipo
  
      def __str__(self) -> str:
          if self.es_blanca:
              return simbolo_piezas['blancas'][self.tipo]
          else:
              return simbolo_piezas['negras'][self.tipo]
  
  
  class Peon(Pieza):
  
      def __init__(self, es_blanca: bool):
          super().__init__(es_blanca, 'peon')
  
  
  class Alfil(Pieza):
  
      def __init__(self, es_blanca: bool):
          super().__init__(es_blanca, 'alfil')
  
  
  class Torre(Pieza):
  
      def __init__(self, es_blanca: bool):
          super().__init__(es_blanca, 'torre')
  
  
  class Caballo(Pieza):
  
      def __init__(self, es_blanca: bool):
          super().__init__(es_blanca, 'caballo')
  
  
  class Dama(Pieza):
  
      def __init__(self, es_blanca: bool):
          super().__init__(es_blanca, 'dama')
  
  
  class Rey(Pieza):
  
      def __init__(self, es_blanca: bool):
          super().__init__(es_blanca, 'rey')
  
  if __name__ == '__main__':
      x = Tablero()
      x.importar_posicion_FEN(
          'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1')
      print(x)
  