def inicio(self, posEntreno, numEntrenos, titEntreno, liEntrenos, siTutorActivado=None, jump=False): if hasattr(self, "reiniciando"): if self.reiniciando: return self.reiniciando = True if siTutorActivado is None: siTutorActivado = (VarGen.dgtDispatch is None) and self.configuracion.tutorActivoPorDefecto self.posEntreno = posEntreno self.guardaPosicion(posEntreno) self.numEntrenos = numEntrenos self.titEntreno = titEntreno self.liEntrenos = liEntrenos self.jump = jump self.liHistorico = [self.posEntreno] self.ayudas = 99999 fenInicial = self.liEntrenos[self.posEntreno - 1].strip() self.fenInicial = fenInicial self.rivalPensando = False self.dicEtiquetasPGN = None # Dirigido etiDirigido = "" self.siDirigido = False self.siDirigidoSeguir = None self.siDirigidoVariantes = False siPartidaOriginal = False if "|" in fenInicial: li = fenInicial.split("|") fenInicial = li[0] if fenInicial.endswith(" 0"): fenInicial = fenInicial[:-1] + "1" nli = len(li) if nli >= 2: etiDirigido = li[1] # # Solucion if nli >= 3: solucion = li[2] if solucion: self.dicDirigidoFen = PGN.leeEntDirigido(fenInicial, solucion) self.siDirigido = self.dicDirigidoFen and len(self.dicDirigidoFen) > 0 ## Partida original if nli >= 4: if nli > 4: txt = "|".join(li[3:]) else: txt = li[3] txt = txt.replace("]", "]\n").replace(" [", "[") pgn = PGN.UnPGN() pgn.leeTexto(txt) partida = pgn.partida siEstaFen = False njug = partida.numJugadas() for n in range(njug - 1, -1, -1): jg = partida.jugada(n) if jg.posicion.fen() == fenInicial: siEstaFen = True if n + 1 != njug: partida.liJugadas = partida.liJugadas[:n + 1] partida.ultPosicion = jg.posicion.copia() break if siEstaFen: siPartidaOriginal = True self.partida = partida self.pgn.partida = partida self.dicEtiquetasPGN = pgn.dic # if etiDirigido: # etiDirigido += "<br>" # for k, v in pgn.dic.iteritems(): # if k.upper() != "FEN": # if etiDirigido: # etiDirigido += "<br>" # etiDirigido += "%s: <b>%s</b>"%(k,v) cp = ControlPosicion.ControlPosicion() cp.leeFen(fenInicial) self.fen = fenInicial siBlancas = cp.siBlancas if not siPartidaOriginal: self.partida.reset(cp) self.partida.pendienteApertura = False self.tipoJuego = kJugEntPos self.siJuegaHumano = False self.estado = kJugando self.siJuegaPorMi = True self.siJugamosConBlancas = siBlancas self.siRivalConBlancas = not siBlancas self.liVariantes = [] self.rmRival = None self.siTutorActivado = siTutorActivado self.pantalla.ponActivarTutor(self.siTutorActivado) self.ayudasPGN = 0 liOpciones = [k_mainmenu, k_cambiar, k_reiniciar, k_atras] if self.dicEtiquetasPGN: liOpciones.append(k_pgnInformacion) if self.numEntrenos > 1: liOpciones.append(k_anterior) liOpciones.append(k_siguiente) liOpciones.extend((k_configurar, k_utilidades)) self.liOpcionesToolBar = liOpciones self.pantalla.ponToolBar(liOpciones) self.pantalla.activaJuego(True, False, siAyudas=False) self.pantalla.quitaAyudas(False, False) self.ponMensajero(self.mueveHumano) self.ponPosicion(self.partida.ultPosicion) self.mostrarIndicador(True) self.ponPiezasAbajo(siBlancas) titulo = "<b>%s</b>" % TrListas.dicTraining().get(self.titEntreno, self.titEntreno) if etiDirigido: titulo += "<br>%s" % etiDirigido self.ponRotulo1(titulo) self.ponRotulo2("%d / %d" % (posEntreno, numEntrenos)) self.pgnRefresh(True) QTUtil.xrefreshGUI() self.xrival = self.procesador.creaGestorMotor(self.configuracion.tutor, self.configuracion.tiempoTutor, None) self.siAnalizadoTutor = False self.ponPosicionDGT() if siPartidaOriginal: # self.ponteAlFinal() self.repiteUltimaJugada() self.reiniciando = False self.rivalPensando = False self.siguienteJugada()
def inicio(self, tactica, posSiguiente=None): if hasattr(self, "reiniciando"): if self.reiniciando: return self.reiniciando = True self.tactica = tactica liOrden = self.tactica.listaOrden() self.numPosiciones = self.tactica.numPosiciones() self.posActual = self.tactica.posActual() self.siError = False numEnt = liOrden[self.posActual] self.siPenalizable = True self.puestosPenalizacion = self.tactica.puestosPenalizacion( self.posActual, len(liOrden)) self.pointView = self.tactica.pointView() self.siSaltoAutomatico = self.tactica.siSaltoAutomatico() txtEntreno = self.tactica.unFNS(numEnt) if posSiguiente is None: self.posSiguiente = self.posActual + 1 li = txtEntreno.split("|") fenInicial = li[0] if fenInicial.endswith(" 0"): fenInicial = fenInicial[:-1] + "1" self.fenInicial = fenInicial self.dicEtiquetasPGN = None solucion = None siPartidaOriginal = False nli = len(li) if nli >= 2: etiDirigido = li[1] # # Solucion if nli >= 3: solucion = li[2] if solucion: self.dicDirigidoFen = PGN.leeEntDirigido( fenInicial, solucion) # Partida original if nli >= 4: pgn = PGN.UnPGN() if nli > 4: txt = "|".join(li[3:]) else: txt = li[3] txt = txt.replace("]", "]\n").replace(" [", "[") pgn.leeTexto(txt) partida = pgn.partida siEstaFen = False njug = partida.numJugadas() for n in range(njug - 1, -1, -1): jg = partida.jugada(n) if jg.posicion.fen() == fenInicial: siEstaFen = True if n + 1 != njug: partida.liJugadas = partida.liJugadas[:n + 1] partida.ultPosicion = jg.posicion.copia() break if siEstaFen: siPartidaOriginal = True self.partida = partida self.pgn.partida = partida self.dicEtiquetasPGN = pgn.dic # for k, v in pgn.dic.iteritems(): # if k.upper() != "FEN": # if etiDirigido: # etiDirigido += "<br>" # etiDirigido += "%s: <b>%s</b>"%(k,v) cp = ControlPosicion.ControlPosicion() cp.leeFen(fenInicial) self.fen = fenInicial siBlancas = cp.siBlancas if self.pointView: siBlancas = self.pointView == 1 if not siPartidaOriginal: self.partida.reset(cp) if solucion: tmp_pgn = PGN.UnPGN() tmp_pgn.leeTexto('[FEN "%s"]\n%s' % (fenInicial, solucion)) if tmp_pgn.partida.firstComment: self.partida.setFirstComment(tmp_pgn.partida.firstComment, True) self.partida.pendienteApertura = False self.tipoJuego = kJugEntTac self.siJuegaHumano = False self.siJuegaPorMi = True self.siJugamosConBlancas = siBlancas self.siRivalConBlancas = not siBlancas self.liVariantes = [] self.rmRival = None self.siTutorActivado = False self.pantalla.ponActivarTutor(False) self.ayudasPGN = 0 self.pantalla.activaJuego(True, False, siAyudas=False) self.pantalla.quitaAyudas(True, True) self.ponMensajero(self.mueveHumano) self.ponPosicion(self.partida.ultPosicion) self.mostrarIndicador(True) self.ponPiezasAbajo(siBlancas) # txttact = "%dx%d"%(tactica.numFNS(),len(tactica.JUMPS)+1) # txttact = "(%s)x%d"%(txttact,len(tactica.REPEAT)) self.siShowText = tactica.siShowText() titulo = "<b>%s</b><br>" % (self.tactica.titulo, ) # txttact) self.tituloAmpliado = titulo + etiDirigido if self.siShowText: titulo = self.tituloAmpliado else: self.siShowText = len(etiDirigido) == 0 liOpciones = [k_mainmenu, k_configurar] if not self.siShowText: liOpciones.append(k_showtext) if self.dicEtiquetasPGN: liOpciones.append(k_pgnInformacion) self.pantalla.ponToolBar(liOpciones) self.ponRotulo1(titulo) self.pgnRefresh(True) QTUtil.xrefreshGUI() self.ponPosicionDGT() self.siSeguirJugando = False tiempo = self.configuracion.tiempoTutor if tiempo < 1000 or tiempo > 5000: tiempo = 5000 self.xrival = self.procesador.creaGestorMotor(self.configuracion.tutor, tiempo, None) self.reiniciando = False self.rivalPensando = False if siPartidaOriginal: self.repiteUltimaJugada() self.ponSiguiente() self.estado = kJugando self.siguienteJugada()
def inicio(self, tactica, posSiguiente=None): if hasattr(self, "reiniciando"): if self.reiniciando: return self.reiniciando = True self.tactica = tactica liOrden = self.tactica.listaOrden() self.numPosiciones = self.tactica.numPosiciones() self.posActual = self.tactica.posActual() numEnt = liOrden[self.posActual] self.siPenalizable = True self.puestosPenalizacion = self.tactica.puestosPenalizacion(self.posActual, len(liOrden)) self.pointView = self.tactica.pointView() txtEntreno = self.tactica.unFNS(numEnt) if posSiguiente is None: self.posSiguiente = self.posActual + 1 li = txtEntreno.split("|") fenInicial = li[0] if fenInicial.endswith(" 0"): fenInicial = fenInicial[:-1] + "1" self.fenInicial = fenInicial self.dicEtiquetasPGN = None siPartidaOriginal = False nli = len(li) if nli >= 2: etiDirigido = li[1] # # Solucion if nli >= 3: solucion = li[2] if solucion: self.dicDirigidoFen = PGN.leeEntDirigido(fenInicial, solucion) ## Partida original if nli >= 4: pgn = PGN.UnPGN() if nli > 4: txt = "|".join(li[3:]) else: txt = li[3] txt = txt.replace("]", "]\n").replace(" [", "[") pgn.leeTexto(txt) partida = pgn.partida siEstaFen = False njug = partida.numJugadas() for n in range(njug - 1, -1, -1): jg = partida.jugada(n) if jg.posicion.fen() == fenInicial: siEstaFen = True if n + 1 != njug: partida.liJugadas = partida.liJugadas[:n + 1] partida.ultPosicion = jg.posicion.copia() break if siEstaFen: siPartidaOriginal = True self.partida = partida self.pgn.partida = partida self.dicEtiquetasPGN = pgn.dic # for k, v in pgn.dic.iteritems(): # if k.upper() != "FEN": # if etiDirigido: # etiDirigido += "<br>" # etiDirigido += "%s: <b>%s</b>"%(k,v) cp = ControlPosicion.ControlPosicion() cp.leeFen(fenInicial) self.fen = fenInicial siBlancas = cp.siBlancas if self.pointView: siBlancas = self.pointView == 1 if not siPartidaOriginal: self.partida.reset(cp) self.partida.pendienteApertura = False self.tipoJuego = kJugEntTac self.siJuegaHumano = False self.siJuegaPorMi = True self.siJugamosConBlancas = siBlancas self.siRivalConBlancas = not siBlancas self.liVariantes = [] self.rmRival = None self.siTutorActivado = False self.pantalla.ponActivarTutor(False) self.ayudasPGN = 0 self.pantalla.activaJuego(True, False, siAyudas=False) self.pantalla.quitaAyudas(True, True) self.ponMensajero(self.mueveHumano) self.ponPosicion(self.partida.ultPosicion) self.mostrarIndicador(True) self.ponPiezasAbajo(siBlancas) # txttact = "%dx%d"%(tactica.numFNS(),len(tactica.JUMPS)+1) # txttact = "(%s)x%d"%(txttact,len(tactica.REPEAT)) self.siShowText = tactica.siShowText() titulo = "<b>%s</b><br>" % (self.tactica.titulo,) # txttact) self.tituloAmpliado = titulo + etiDirigido if self.siShowText: titulo = self.tituloAmpliado else: self.siShowText = len(etiDirigido) == 0 liOpciones = [k_mainmenu] if not self.siShowText: liOpciones.append(k_showtext) if self.dicEtiquetasPGN: liOpciones.append(k_pgnInformacion) self.pantalla.ponToolBar(liOpciones) self.ponRotulo1(titulo) self.pgnRefresh(True) QTUtil.xrefreshGUI() self.ponPosicionDGT() self.siSeguirJugando = False self.xrival = self.procesador.creaGestorMotor(self.configuracion.tutor, min(self.configuracion.tiempoTutor, 5), None) self.reiniciando = False self.rivalPensando = False if siPartidaOriginal: self.repiteUltimaJugada() self.ponSiguiente() self.estado = kJugando self.siguienteJugada()
def inicio(self, posEntreno, numEntrenos, titEntreno, liEntrenos, siTutorActivado=None, jump=False): if hasattr(self, "reiniciando"): if self.reiniciando: return self.reiniciando = True if siTutorActivado is None: siTutorActivado = (VarGen.dgtDispatch is None ) and self.configuracion.tutorActivoPorDefecto self.posEntreno = posEntreno self.guardaPosicion(posEntreno) self.numEntrenos = numEntrenos self.titEntreno = titEntreno self.liEntrenos = liEntrenos self.jump = jump self.liHistorico = [self.posEntreno] self.ayudas = 99999 fenInicial = self.liEntrenos[self.posEntreno - 1].strip() self.fenInicial = fenInicial self.rivalPensando = False self.dicEtiquetasPGN = None # Dirigido etiDirigido = "" self.siDirigido = False self.siDirigidoSeguir = None self.siDirigidoVariantes = False siPartidaOriginal = False if "|" in fenInicial: li = fenInicial.split("|") fenInicial = li[0] if fenInicial.endswith(" 0"): fenInicial = fenInicial[:-1] + "1" nli = len(li) if nli >= 2: etiDirigido = li[1] # # Solucion if nli >= 3: solucion = li[2] if solucion: self.dicDirigidoFen = PGN.leeEntDirigido( fenInicial, solucion) self.siDirigido = self.dicDirigidoFen and len( self.dicDirigidoFen) > 0 ## Partida original if nli >= 4: if nli > 4: txt = "|".join(li[3:]) else: txt = li[3] txt = txt.replace("]", "]\n").replace(" [", "[") pgn = PGN.UnPGN() pgn.leeTexto(txt) partida = pgn.partida siEstaFen = False njug = partida.numJugadas() for n in range(njug - 1, -1, -1): jg = partida.jugada(n) if jg.posicion.fen() == fenInicial: siEstaFen = True if n + 1 != njug: partida.liJugadas = partida.liJugadas[:n + 1] partida.ultPosicion = jg.posicion.copia() break if siEstaFen: siPartidaOriginal = True self.partida = partida self.pgn.partida = partida self.dicEtiquetasPGN = pgn.dic # if etiDirigido: # etiDirigido += "<br>" # for k, v in pgn.dic.iteritems(): # if k.upper() != "FEN": # if etiDirigido: # etiDirigido += "<br>" # etiDirigido += "%s: <b>%s</b>"%(k,v) cp = ControlPosicion.ControlPosicion() cp.leeFen(fenInicial) self.fen = fenInicial siBlancas = cp.siBlancas if not siPartidaOriginal: self.partida.reset(cp) self.partida.pendienteApertura = False self.tipoJuego = kJugEntPos self.siJuegaHumano = False self.estado = kJugando self.siJuegaPorMi = True self.siJugamosConBlancas = siBlancas self.siRivalConBlancas = not siBlancas self.liVariantes = [] self.rmRival = None self.siTutorActivado = siTutorActivado self.pantalla.ponActivarTutor(self.siTutorActivado) self.ayudasPGN = 0 liOpciones = [k_mainmenu, k_cambiar, k_reiniciar, k_atras] if self.dicEtiquetasPGN: liOpciones.append(k_pgnInformacion) if self.numEntrenos > 1: liOpciones.append(k_anterior) liOpciones.append(k_siguiente) liOpciones.extend((k_configurar, k_utilidades)) self.liOpcionesToolBar = liOpciones self.pantalla.ponToolBar(liOpciones) self.pantalla.activaJuego(True, False, siAyudas=False) self.pantalla.quitaAyudas(False, False) self.ponMensajero(self.mueveHumano) self.ponPosicion(self.partida.ultPosicion) self.mostrarIndicador(True) self.ponPiezasAbajo(siBlancas) titulo = "<b>%s</b>" % TrListas.dicTraining().get( self.titEntreno, self.titEntreno) if etiDirigido: titulo += "<br>%s" % etiDirigido self.ponRotulo1(titulo) self.ponRotulo2("%d / %d" % (posEntreno, numEntrenos)) self.pgnRefresh(True) QTUtil.xrefreshGUI() self.xrival = self.procesador.creaGestorMotor( self.configuracion.tutor, self.configuracion.tiempoTutor, None) self.siAnalizadoTutor = False self.ponPosicionDGT() if siPartidaOriginal: # self.ponteAlFinal() self.repiteUltimaJugada() self.reiniciando = False self.rivalPensando = False self.siguienteJugada()