def inicio(self, route): GestorRoutes.inicio(self, route) ending = self.route.get_ending() if "|" in ending: self.is_guided = True self.t4 = None self.fen, label, pv = ending.split("|") self.liPV = pv.split(" ") self.posPV = 0 else: self.is_guided = False self.t4 = LibChess.T4() self.fen = ending + " - - 0 1" self.rivalPensando = False cp = ControlPosicion.ControlPosicion() cp.leeFen(self.fen) siBlancas = cp.siBlancas self.partida.reset(cp) self.partida.pendienteApertura = False self.warnings = 0 self.max_warnings = 5 self.siJuegaHumano = False self.estado = kJugando self.siJugamosConBlancas = siBlancas self.siRivalConBlancas = not siBlancas self.pantalla.ponActivarTutor(False) self.quitaAyudas(True) self.ayudasPGN = 0 liOpciones = [k_mainmenu, k_ayuda] self.pantalla.ponToolBar(liOpciones) self.pantalla.activaJuego(True, False, siAyudas=False) self.pantalla.quitaAyudas(True) self.ponMensajero(self.mueveHumano) self.ponPosicion(self.partida.ultPosicion) self.mostrarIndicador(True) self.ponPiezasAbajo(siBlancas) self.ponWarnings() self.pgnRefresh(True) QTUtil.xrefreshGUI() self.ponPosicionDGT() if self.is_guided: self.ponRotulo1("<b>%s</b>" % label) self.siguienteJugada()
def mueveTutor(self, siInicio=False, nSaltar=0, siFinal=False, siBase=False): if nSaltar: pos = self.posTutor + nSaltar if 0 <= pos < self.maxTutor: self.posTutor = pos else: return elif siInicio or siBase: self.posTutor = 0 elif siFinal: self.posTutor = self.maxTutor - 1 if self.partidaTutor.numJugadas(): jg = self.partidaTutor.jugada(self.posTutor) if siBase: self.w.tableroT.ponPosicion(jg.posicionBase) else: self.w.tableroT.ponPosicion(jg.posicion) self.w.tableroT.ponFlechaSC(jg.desde, jg.hasta) self.w.tableroT.escena.update() self.w.update() QTUtil.xrefreshGUI()
def inicio(self, dbwashing, washing, engine): self.dbwashing = dbwashing self.washing = washing self.engine = engine self.dbwashing.addGame() self.tipoJuego = kJugWashingReplay self.timekeeper = Util.Timekeeper() self.siJuegaHumano = False 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.mostrarIndicador(True) self.partidaObj = self.dbwashing.restoreGame(self.engine) self.numJugadasObj = self.partidaObj.numJugadas() self.posJugadaObj = 0 liOpciones = [k_mainmenu] self.pantalla.ponToolBar(liOpciones) self.errores = 0 self.book = Apertura.AperturaPol(999, elo=engine.elo) siBlancas = self.engine.color self.siJugamosConBlancas = siBlancas self.siRivalConBlancas = not siBlancas self.ponPosicion(self.partida.ultPosicion) self.ponPiezasAbajo(siBlancas) self.ponRotulo1( "%s: %s\n%s: %s" % (_("Rival"), self.engine.nombre, _("Task"), self.engine.lbState())) self.pgnRefresh(True) self.partida.pendienteApertura = True QTUtil.xrefreshGUI() self.ponPosicionDGT() self.estado = kJugando self.siguienteJugada()
def next_line_run(self): liOpciones = [k_mainmenu, k_ayuda, k_reiniciar] self.pantalla.ponToolBar(liOpciones) self.next_line() QTUtil.xrefreshGUI() self.ponPosicionDGT() self.estado = kJugando self.siguienteJugada()
def inicio(self, route): GestorRoutes.inicio(self, route) line = route.get_line() opening = line.opening siBlancas = opening.is_white if opening.is_white is not None else random.choice( [True, False]) self.liPVopening = opening.pv.split(" ") self.posOpening = 0 self.is_opening = len(opening.pv) > 0 self.book = Books.Libro("P", VarGen.tbookI, VarGen.tbookI, True) self.book.polyglot() self.engine = GR_Engine(self.procesador, line.engine) self.must_win = route.must_win() self.rivalPensando = False self.siJuegaHumano = False self.estado = kJugando self.siJugamosConBlancas = siBlancas self.siRivalConBlancas = not siBlancas self.pantalla.ponActivarTutor(False) self.ayudasPGN = 0 liOpciones = [k_mainmenu, k_configurar, k_reiniciar] self.pantalla.ponToolBar(liOpciones) self.pantalla.activaJuego(True, False, siAyudas=False) self.pantalla.quitaAyudas(True) self.ponRotulo1(self.engine.label) if self.must_win: self.ponRotulo2(_("You must win to pass this game")) self.ponMensajero(self.mueveHumano) self.ponPosicion(self.partida.ultPosicion) self.mostrarIndicador(True) self.ponPiezasAbajo(siBlancas) self.pgnRefresh(True) QTUtil.xrefreshGUI() self.ponPosicionDGT() self.siguienteJugada()
def inicio(self, route): GestorRoutes.inicio(self, route) tactica = self.route.get_tactic() self.dicFen, self.nDicMoves = PGN.leeEntDirigidoBaseM2( tactica.fen, tactica.pgn) self.rivalPensando = False cp = ControlPosicion.ControlPosicion() cp.leeFen(tactica.fen) self.fen = tactica.fen siBlancas = cp.siBlancas self.partida.reset(cp) self.partida.pendienteApertura = False self.siJuegaHumano = False self.estado = kJugando self.siJugamosConBlancas = siBlancas self.siRivalConBlancas = not siBlancas self.pantalla.ponActivarTutor(False) self.ayudasPGN = 0 liOpciones = [k_mainmenu, k_ayuda] self.pantalla.ponToolBar(liOpciones) self.pantalla.activaJuego(True, False, siAyudas=False) self.pantalla.quitaAyudas(True) self.ponMensajero(self.mueveHumano) self.ponPosicion(self.partida.ultPosicion) self.mostrarIndicador(True) self.ponPiezasAbajo(siBlancas) self.ponRotulo1("<b>%s</b>" % tactica.label) self.ponRotulo2(route.mens_tactic(False)) self.pgnRefresh(True) QTUtil.xrefreshGUI() self.ponPosicionDGT() self.siguienteJugada()
def movimientosPiezas(self, liMovs): """ Hace los movimientos de piezas en el tablero """ for movim in liMovs: if movim[0] == "b": self.w.tablero.borraPieza(movim[1]) elif movim[0] == "m": self.w.tablero.muevePieza(movim[1], movim[2]) elif movim[0] == "c": self.w.tablero.cambiaPieza(movim[1], movim[2]) self.w.tablero.desactivaTodas() self.w.tablero.escena.update() self.w.update() QTUtil.xrefreshGUI()
def mueveTutor(self, siInicio=False, nSaltar=0, siFinal=False, siBase=False): if nSaltar: pos = self.posTutor + nSaltar if 0 <= pos < self.maxTutor: self.posTutor = pos else: return elif siInicio or siBase: self.posTutor = 0 elif siFinal: self.posTutor = self.maxTutor - 1 if self.partidaTutor.numJugadas(): jg = self.partidaTutor.liJugadas[self.posTutor] if siBase: self.w.tableroT.ponPosicion(jg.posicionBase) else: self.w.tableroT.ponPosicion(jg.posicion) self.w.tableroT.ponFlechaSC(jg.desde, jg.hasta) self.w.tableroT.escena.update() self.w.update() QTUtil.xrefreshGUI()
def next_line(self): self.line = self.dbwashing.next_tactic(self.engine) self.num_lines = self.engine.numTactics() if not self.line: return liOpciones = [k_mainmenu, k_ayuda] self.pantalla.ponToolBar(liOpciones) self.num_move = -1 self.ayudas = 0 self.errores = 0 self.time_used = 0.0 cp = ControlPosicion.ControlPosicion() cp.leeFen(self.line.fen) self.partida.reset(cp) siBlancas = cp.siBlancas self.siJugamosConBlancas = siBlancas self.siRivalConBlancas = not siBlancas self.ponPosicion(self.partida.ultPosicion) self.ponPiezasAbajo(siBlancas) r1 = self.line.label self.ponRotulo1(r1) r2 = "<b>%s: %d</b>" % (_("Pending"), self.num_lines) self.ponRotulo2(r2) self.pgnRefresh(True) self.partida.pendienteApertura = False QTUtil.xrefreshGUI() self.ponPosicionDGT() self.estado = kJugando self.siguienteJugada()
def refresh(self): self.update() QTUtil.xrefreshGUI()
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() 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.dicDirigidoFenM2 = PGN.leeEntDirigidoM2( 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.items(): # 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 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, workmap): self.workmap = workmap self.ayudas = 0 fenInicial = workmap.fenAim() self.rivalPensando = False self.dicEtiquetasPGN = None etiqueta = "" if "|" in fenInicial: li = fenInicial.split("|") fenInicial = li[0] if fenInicial.endswith(" 0"): fenInicial = fenInicial[:-1] + "1" nli = len(li) if nli >= 2: etiqueta = li[1] cp = ControlPosicion.ControlPosicion() cp.leeFen(fenInicial) self.fen = fenInicial siBlancas = cp.siBlancas self.partida.reset(cp) self.partida.pendienteApertura = False self.tipoJuego = kJugWorldMap self.siJuegaHumano = False self.estado = kJugando self.siJuegaPorMi = False self.siJugamosConBlancas = siBlancas self.siRivalConBlancas = not siBlancas self.rmRival = None self.siTutorActivado = False self.pantalla.ponActivarTutor(False) self.ayudasPGN = 0 liOpciones = [k_mainmenu, k_reiniciar, k_configurar, k_utilidades] self.pantalla.ponToolBar(liOpciones) 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) self.ponRotulo1(etiqueta) self.ponRotulo2(workmap.nameAim()) self.pgnRefresh(True) QTUtil.xrefreshGUI() self.xrival = self.procesador.creaGestorMotor( self.configuracion.tutor, self.configuracion.tiempoTutor, None) self.siAnalizadoTutor = False self.ponPosicionDGT() self.reiniciando = False self.rivalPensando = False 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.dicDirigidoFenM2 = PGN.leeEntDirigidoM2( fenInicial, solucion) self.siDirigido = len(self.dicDirigidoFenM2) > 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) liOpciones.extend((k_configurar, k_utilidades)) if self.numEntrenos > 1: liOpciones.extend((k_anterior, k_siguiente)) 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() if self.xrival is None: self.xrival = self.procesador.creaGestorMotor( self.configuracion.tutor, self.configuracion.tiempoTutor, self.configuracion.depthTutor) self.siAnalizadoTutor = False self.ponPosicionDGT() if siPartidaOriginal: # self.ponteAlFinal() self.repiteUltimaJugada() self.reiniciando = False self.rivalPensando = False self.siguienteJugada()
def inicio(self, workmap): self.workmap = workmap self.ayudas = 0 fenInicial = workmap.fenAim() self.rivalPensando = False self.dicEtiquetasPGN = None etiqueta = "" if "|" in fenInicial: li = fenInicial.split("|") fenInicial = li[0] if fenInicial.endswith(" 0"): fenInicial = fenInicial[:-1] + "1" nli = len(li) if nli >= 2: etiqueta = li[1] cp = ControlPosicion.ControlPosicion() cp.leeFen(fenInicial) self.fen = fenInicial siBlancas = cp.siBlancas self.partida.reset(cp) self.partida.pendienteApertura = False self.tipoJuego = kJugWorldMap self.siJuegaHumano = False self.estado = kJugando self.siJuegaPorMi = False self.siJugamosConBlancas = siBlancas self.siRivalConBlancas = not siBlancas self.rmRival = None self.siTutorActivado = False self.pantalla.ponActivarTutor(False) self.ayudasPGN = 0 liOpciones = [k_mainmenu, k_reiniciar, k_configurar, k_utilidades] self.pantalla.ponToolBar(liOpciones) 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) self.ponRotulo1(etiqueta) self.ponRotulo2( workmap.nameAim() ) self.pgnRefresh(True) QTUtil.xrefreshGUI() self.xrival = self.procesador.creaGestorMotor(self.configuracion.tutor, self.configuracion.tiempoTutor, None) self.siAnalizadoTutor = False self.ponPosicionDGT() 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() 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()