示例#1
0
    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()
示例#2
0
 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()
示例#3
0
    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()
示例#5
0
    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()
示例#6
0
    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()
示例#7
0
    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()
示例#8
0
    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()
示例#9
0
 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()
示例#10
0
    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()
示例#11
0
 def refresh(self):
     self.update()
     QTUtil.xrefreshGUI()
示例#12
0
    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()
示例#13
0
    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()
示例#14
0
    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()
示例#15
0
    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()
示例#16
0
    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()
示例#17
0
 def refresh(self):
     self.update()
     QTUtil.xrefreshGUI()
示例#18
0
    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()