parameters: (self, siBlunder, fen, mrm, posAct, clpartida, txtPartida)
docstring: Se graba una posicion en un entrenamiento BMT
          @param siBlunder: si es blunder o brilliancie
          @param fen: posicion
          @param mrm: multirespuesta del motor
          @param posAct: posicion de la posicion elegida en mrm
          @param clpartida: clave de la partida
          @param txtPartida: la partida completa en texto
docstring_summary: Se graba una posicion en un entrenamiento BMT
docstring_tokens: Se graba una posicion en un entrenamiento BMT
function: def grabaBMT(self, siBlunder, fen, mrm, posAct, clpartida, txtPartida):
          """
          Se graba una posicion en un entrenamiento BMT
          @param siBlunder: si es blunder o brilliancie
          @param fen: posicion
          @param mrm: multirespuesta del motor
          @param posAct: posicion de la posicion elegida en mrm
          @param clpartida: clave de la partida
          @param txtPartida: la partida completa en texto
          """
  
          previa = 999999999
          nprevia = -1
          tniv = 0
          partidaBMT = Partida.Partida()
          cp = partidaBMT.iniPosicion
          cp.leeFen(fen)
  
          if len(mrm.liMultiPV) > 16:
              mrmBMT = copy.deepcopy(mrm)
              if posAct > 15:
                  mrmBMT.liMultiPV[15] = mrmBMT.liMultiPV[posAct]
                  posAct = 15
              mrmBMT.liMultiPV = mrmBMT.liMultiPV[:16]
          else:
              mrmBMT = mrm
  
          for n, rm in enumerate(mrmBMT.liMultiPV):
              pts = rm.puntosABS()
              if pts != previa:
                  previa = pts
                  nprevia += 1
              tniv += nprevia
              rm.nivelBMT = nprevia
              rm.siElegida = False
              rm.siPrimero = n == posAct
              partidaBMT.reset(cp)
              partidaBMT.leerPV(rm.pv)
              rm.txtPartida = partidaBMT.guardaEnTexto()
  
          bmt_uno = BMT.BMT_Uno(fen, mrmBMT, tniv, clpartida)
  
          bmt_lista = self.bmt_listaBlunders if siBlunder else self.bmt_listaBrilliancies
          bmt_lista.nuevo(bmt_uno)
          bmt_lista.compruebaPartida(clpartida, txtPartida)
function_tokens: def grabaBMT ( self , siBlunder , fen , mrm , posAct , clpartida , txtPartida ) : previa = 999999999 nprevia = - 1 tniv = 0 partidaBMT = Partida . Partida ( ) cp = partidaBMT . iniPosicion cp . leeFen ( fen ) if len ( mrm . liMultiPV ) > 16 : mrmBMT = copy . deepcopy ( mrm ) if posAct > 15 : mrmBMT . liMultiPV [ 15 ] = mrmBMT . liMultiPV [ posAct ] posAct = 15 mrmBMT . liMultiPV = mrmBMT . liMultiPV [ : 16 ] else : mrmBMT = mrm for n , rm in enumerate ( mrmBMT . liMultiPV ) : pts = rm . puntosABS ( ) if pts != previa : previa = pts nprevia += 1 tniv += nprevia rm . nivelBMT = nprevia rm . siElegida = False rm . siPrimero = n == posAct partidaBMT . reset ( cp ) partidaBMT . leerPV ( rm . pv ) rm . txtPartida = partidaBMT . guardaEnTexto ( ) bmt_uno = BMT . BMT_Uno ( fen , mrmBMT , tniv , clpartida ) bmt_lista = self . bmt_listaBlunders if siBlunder else self . bmt_listaBrilliancies bmt_lista . nuevo ( bmt_uno ) bmt_lista . compruebaPartida ( clpartida , txtPartida )