def __init__(self, owner, partida, nivel, white, black, siClock):

        QTVarios.WDialogo.__init__(self, owner, owner.rotulo(), Iconos.PGN(),
                                   "learnpuente")

        self.owner = owner
        self.procesador = owner.procesador
        self.configuracion = self.procesador.configuracion
        self.partida = partida
        self.nivel = nivel
        self.white = white
        self.black = black
        self.siClock = siClock

        self.repTiempo = 3000
        self.repWorking = False

        # Tool bar
        self.tb = Controles.TB(self, [])

        self.ponToolbar(self.INICIO)

        # Tableros
        confTablero = self.configuracion.confTablero("LEARNPGN", 48)

        self.tableroIni = Tablero.Tablero(self, confTablero)
        self.tableroIni.crea()
        self.tableroIni.ponMensajero(self.mueveHumano, None)
        self.lbIni = Controles.LB(self).alinCentrado().ponColorFondoN(
            "#076C9F", "#EFEFEF").anchoMinimo(self.tableroIni.ancho)
        lyIni = Colocacion.V().control(self.tableroIni).control(self.lbIni)

        self.tableroFin = Tablero.TableroEstatico(self, confTablero)
        self.tableroFin.crea()
        self.lbFin = Controles.LB(self).alinCentrado().ponColorFondoN(
            "#076C9F", "#EFEFEF").anchoMinimo(self.tableroFin.ancho)
        lyFin = Colocacion.V().control(self.tableroFin).control(self.lbFin)

        # Rotulo tiempo
        f = Controles.TipoLetra(puntos=30, peso=75)
        self.lbReloj = Controles.LB(
            self, "00:00").ponFuente(f).alinCentrado().ponColorFondoN(
                "#076C9F", "#EFEFEF").anchoMinimo(200)
        self.lbReloj.setFrameStyle(QtGui.QFrame.Box | QtGui.QFrame.Raised)

        # Movimientos
        flb = Controles.TipoLetra(puntos=11)
        self.lbInfo = Controles.LB(self).anchoFijo(200).ponWrap().ponFuente(
            flb)

        # Layout
        lyC = Colocacion.V().control(self.lbReloj).control(
            self.lbInfo).relleno()
        lyTM = Colocacion.H().otro(lyIni).otro(lyC).otro(lyFin).relleno()

        ly = Colocacion.V().control(self.tb).otro(lyTM).relleno().margen(3)

        self.setLayout(ly)

        self.recuperarVideo()
        self.adjustSize()

        if siClock:
            self.timer = QtCore.QTimer(self)
            self.connect(self.timer, QtCore.SIGNAL("timeout()"),
                         self.ajustaReloj)
            self.timer.start(500)
        else:
            self.lbReloj.hide()

        self.reset()
Exemplo n.º 2
0
    def __init__(self, owner, fenIni, fenFin, liMV, info):

        QTVarios.WDialogo.__init__(self, owner, _("Moves between two positions"), Iconos.Puente(), "puente")

        self.owner = owner
        self.historico = owner.historico
        self.procesador = owner.procesador
        self.configuracion = self.procesador.configuracion

        self.liMV = liMV
        self.fenIni = fenIni
        self.fenFin = fenFin

        nivel = len(liMV)

        # Tableros
        confTablero = self.configuracion.confTablero("PUENTE", 32)

        cpIni = ControlPosicion.ControlPosicion()
        cpIni.leeFen(fenIni)
        siBlancas = cpIni.siBlancas
        self.tableroIni = Tablero.TableroEstatico(self, confTablero)
        self.tableroIni.crea()
        self.tableroIni.ponerPiezasAbajo(siBlancas)
        self.tableroIni.ponPosicion(cpIni)

        cpFin = ControlPosicion.ControlPosicion()
        cpFin.leeFen(fenFin)
        self.tableroFin = Tablero.TableroEstatico(self, confTablero)
        self.tableroFin.crea()
        self.tableroFin.ponerPiezasAbajo(siBlancas)  # esta bien
        self.tableroFin.ponPosicion(cpFin)

        # Rotulo informacion
        self.lbInformacion = Controles.LB(self, self.textoLBInformacion(info, cpIni)).alinCentrado()

        # Rotulo tiempo
        self.lbTiempo = Controles.LB(self, "").alinCentrado()

        # Movimientos
        self.liwm = []
        conj_piezas = self.tableroIni.piezas
        ly = Colocacion.V().margen(4).relleno()
        for i in range(nivel):
            wm = WEdMove(self, conj_piezas, siBlancas)
            self.liwm.append(wm)
            siBlancas = not siBlancas
            ly.control(wm)
        ly.relleno()
        gbMovs = Controles.GB(self, _("Next moves"), ly).ponFuente(Controles.TipoLetra(puntos=10, peso=75))

        # Botones
        f = Controles.TipoLetra(puntos=12, peso=75)
        self.btComprobar = Controles.PB(self, _("Check"), self.comprobar, plano=False).ponIcono(Iconos.Check(),
                                                                                                tamIcon=32).ponFuente(f)
        self.btSeguir = Controles.PB(self, _("Continue"), self.seguir, plano=False).ponIcono(Iconos.Pelicula_Seguir(),
                                                                                             tamIcon=32).ponFuente(f)
        self.btTerminar = Controles.PB(self, _("Close"), self.terminar, plano=False).ponIcono(Iconos.MainMenu(),
                                                                                              tamIcon=32).ponFuente(f)
        self.btCancelar = Controles.PB(self, _("Cancel"), self.terminar, plano=False).ponIcono(Iconos.Cancelar(),
                                                                                               tamIcon=32).ponFuente(f)

        # Layout
        lyC = Colocacion.V().control(self.btCancelar).control(self.btTerminar).relleno().control(gbMovs).relleno(
                1).control(self.btComprobar).control(self.btSeguir).relleno()
        lyTM = Colocacion.H().control(self.tableroIni).otro(lyC).control(self.tableroFin).relleno()

        ly = Colocacion.V().otro(lyTM).controlc(self.lbInformacion).controlc(self.lbTiempo).relleno().margen(3)

        self.setLayout(ly)

        self.recuperarVideo()
        self.adjustSize()

        # Tiempo
        self.baseTiempo = time.time()

        self.btSeguir.hide()
        self.btTerminar.hide()

        self.liwm[0].activa()

        self.ultimaCelda = None
Exemplo n.º 3
0
    def __init__(self,
                 owner,
                 motor,
                 segundos,
                 min_min,
                 min_max,
                 linea=None,
                 ref=None):

        super().__init__(parent=owner,
                         titulo=_("Determine your calculating power"),
                         icono=Iconos.Potencia(),
                         extparam="potencia")

        self.partida, self.dicPGN, info, self.jugadaInicial, self.linea = lee_1_linea_mfn(
            linea) if linea else lee_linea_mfn()
        self.fen = self.partida.jugada(self.jugadaInicial).posicion.fen()
        self.ref = ref

        self.historico = owner.historico
        self.procesador = owner.procesador
        self.configuracion = self.procesador.configuracion

        if motor.startswith("*"):
            motor = motor[1:]
        confMotor = self.configuracion.buscaTutor(motor, "stockfish")
        self.xtutor = self.procesador.creaGestorMotor(confMotor,
                                                      segundos * 1000, None)
        self.xtutor.maximizaMultiPV()

        # Tablero
        confTablero = self.configuracion.confTablero("POTENCIA", 48)

        self.min_min = min_min
        self.min_max = min_max

        cp = self.partida.jugada(self.jugadaInicial).posicion

        self.tablero = Tablero.TableroEstatico(self, confTablero)
        self.tablero.crea()
        self.tablero.ponerPiezasAbajo(cp.siBlancas)
        self.tablero.ponPosicion(cp)

        # Rotulo informacion
        self.lbInformacion = self.creaLBInformacion(info, cp)

        # Consultar la partida
        self.btConsultar = Controles.PB(self,
                                        _("Show game"),
                                        self.consultar,
                                        plano=False)

        # Rotulo tiempo
        self.lbTiempo = Controles.LB(self, "").alinCentrado()

        self.liwm = []
        conj_piezas = self.tablero.piezas
        siBlancas = cp.siBlancas
        for i in range(12):
            wm = WBlqMove(self, conj_piezas, siBlancas, i)
            self.liwm.append(wm)
            siBlancas = not siBlancas

        # Tool bar
        liAcciones = (
            (_("Close"), Iconos.MainMenu(), self.terminar),
            (_("Cancel"), Iconos.Cancelar(), self.cancelar),
            (_("Check"), Iconos.Check(), self.comprobar),
        )
        self.tb = Controles.TBrutina(self, liAcciones)

        # Layout
        lyInfo = Colocacion.H().relleno().control(self.lbInformacion).control(
            self.btConsultar).relleno()
        lyT = Colocacion.V().relleno().control(
            self.tablero).otro(lyInfo).controlc(self.lbTiempo).relleno()

        lyV = Colocacion.V()
        for wm in self.liwm:
            lyV.control(wm)
        lyV.relleno()
        f = Controles.TipoLetra(puntos=10, peso=75)
        self.gbMovs = Controles.GB(self, _("Next moves"), lyV).ponFuente(f)

        lyTV = Colocacion.H().otro(lyT).control(self.gbMovs).relleno()

        ly = Colocacion.V().control(self.tb).otro(lyTV).relleno()

        self.setLayout(ly)

        self.recuperarVideo()
        self.adjustSize()

        liTB = [self.cancelar]

        # Tiempo
        self.timer = None
        if min_min or min_max:
            self.baseTiempo = time.time()
            if min_min:
                self.gbMovs.hide()
                self.iniciaReloj(self.pensandoHastaMin)
            else:
                liTB.insert(0, self.comprobar)
                self.iniciaReloj(self.pensandoHastaMax)

        self.ponToolBar(liTB)

        self.liwm[0].activa()

        self.btConsultar.hide()

        self.ultimaCelda = None
Exemplo n.º 4
0
    def __init__(self, owner, engine, segundos, min_min, min_max, linea=None, ref=None):

        super(WPotencia, self).__init__(owner, _("Determine your calculating power"), Iconos.Potencia(), "potencia")

        self.game, self.dicPGN, info, self.jugadaInicial, self.linea = (
            lee_1_linea_mfn(linea) if linea else lee_linea_mfn()
        )
        self.fen = self.game.move(self.jugadaInicial).position.fen()
        self.ref = ref

        self.historico = owner.historico
        self.procesador = owner.procesador
        self.configuracion = self.procesador.configuracion

        if engine.startswith("*"):
            engine = engine[1:]
        confMotor = self.configuracion.buscaTutor(engine)
        self.xtutor = self.procesador.creaGestorMotor(confMotor, segundos * 1000, None)
        self.xtutor.maximizaMultiPV()

        # Tablero
        config_board = self.configuracion.config_board("POTENCIA", 48)

        self.min_min = min_min
        self.min_max = min_max

        cp = self.game.move(self.jugadaInicial).position

        self.tablero = Tablero.TableroEstatico(self, config_board)
        self.tablero.crea()
        self.tablero.ponerPiezasAbajo(cp.is_white)
        self.tablero.setposition(cp)

        # Rotulo informacion
        self.lbInformacion = self.creaLBInformacion(info, cp)

        # Consultar la game
        self.btConsultar = Controles.PB(self, _("Show game"), self.consultar, plano=False)

        # Rotulo vtime
        self.lbTiempo = Controles.LB(self, "").alinCentrado()

        self.liwm = []
        conj_piezas = self.tablero.piezas
        is_white = cp.is_white
        for i in range(12):
            wm = WBlqMove(self, conj_piezas, is_white, i)
            self.liwm.append(wm)
            is_white = not is_white

        # Tool bar
        li_acciones = (
            (_("Close"), Iconos.MainMenu(), self.terminar),
            (_("Cancel"), Iconos.Cancelar(), self.cancelar),
            (_("Check"), Iconos.Check(), self.comprobar),
        )
        self.tb = Controles.TBrutina(self, li_acciones)

        # Layout
        lyInfo = Colocacion.H().relleno().control(self.lbInformacion).control(self.btConsultar).relleno()
        lyT = Colocacion.V().relleno().control(self.tablero).otro(lyInfo).controlc(self.lbTiempo).relleno()

        lyV = Colocacion.V()
        for wm in self.liwm:
            lyV.control(wm)
        lyV.relleno()
        f = Controles.TipoLetra(puntos=10, peso=75)
        self.gbMovs = Controles.GB(self, _("Next moves"), lyV).ponFuente(f)

        lyTV = Colocacion.H().otro(lyT).control(self.gbMovs).relleno()

        ly = Colocacion.V().control(self.tb).otro(lyTV).relleno()

        self.setLayout(ly)

        self.restore_video()
        self.adjustSize()

        liTB = [self.cancelar]

        # Tiempo
        self.timer = None
        if min_min or min_max:
            self.time_base = time.time()
            if min_min:
                self.gbMovs.hide()
                self.start_clock(self.pensandoHastaMin)
            else:
                liTB.insert(0, self.comprobar)
                self.start_clock(self.pensandoHastaMax)

        self.pon_toolbar(liTB)

        self.liwm[0].activa()

        self.btConsultar.hide()

        self.ultimaCelda = None
Exemplo n.º 5
0
    def __init__(self, owner, db_mate15, mate15):

        QTVarios.WDialogo.__init__(self, owner, _("Mate in 1½"),
                                   Iconos.Mate15(), "runmate15")

        self.configuracion = Code.configuracion
        self.mate15 = mate15
        self.db_mate15 = db_mate15

        conf_board = self.configuracion.config_board("RUNMATE15", 64)

        self.board = Tablero.TableroEstatico(self, conf_board)
        self.board.crea()

        # Rotulo informacion
        self.lb_info = Controles.LB(
            self,
            "[%d] %s" % (self.mate15.pos + 1, self.mate15.info)).ponTipoLetra(
                puntos=self.configuracion.x_pgn_fontpoints).alinCentrado()
        self.lb_info.setStyleSheet(
            "QWidget { background-color: #1f497d; color: #FFFFFF;padding: 16px; }"
        )

        self.lb_first_move = Controles.LB(self).ponTipoLetra(puntos=12,
                                                             peso=500)

        self.bt_check = Controles.PB(self, _("Check"), self.check,
                                     False).ponIcono(Iconos.Check(),
                                                     tamIcon=20)

        self.lb_result = Controles.LB(self).ponTipoLetra(puntos=12, peso=500)

        # Movimientos
        self.li_lb_wm = []
        ly = Colocacion.G().margen(4)
        for fila in range(10):
            lb = Controles.LB(self).ponTipoLetra(puntos=12, peso=500)
            wm = WRunCommon.WEdMove(self)
            self.li_lb_wm.append((lb, wm))
            ly.controld(lb, fila, 0)
            ly.columnaVacia(1, 20)
            ly.control(wm, fila, 2)
            lb.hide()
            wm.hide()
        ly.filaVacia(10, 20)
        ly.controlc(self.bt_check, 11, 0, numColumnas=3)
        ly.controlc(self.lb_result, 12, 0, numColumnas=3)
        self.gb = Controles.GB(self, _("Next moves and their solutions"),
                               ly).ponFuente(
                                   Controles.TipoLetra(puntos=10, peso=75))
        self.gb.hide()

        li_acciones = (
            (_("Close"), Iconos.MainMenu(), self.terminar),
            None,
            (_("Begin"), Iconos.Empezar(), self.begin),
            (_("Continue"), Iconos.Pelicula_Seguir(), self.seguir),
        )
        self.tb = QTVarios.LCTB(self,
                                li_acciones,
                                style=QtCore.Qt.ToolButtonTextBesideIcon,
                                tamIcon=32)
        self.show_tb(self.terminar, self.begin)

        ly_right = Colocacion.V().control(self.tb).\
            controlc(self.lb_info).espacio(40).\
            controlc(self.lb_first_move).espacio(20).\
            control(self.gb).relleno()

        ly_center = Colocacion.H().control(self.board).otro(ly_right).margen(3)

        self.setLayout(ly_center)

        self.restore_video()
        self.adjustSize()

        self.gb.setDisabled(True)

        self.li_lb_wm[0][1].activa()

        self.ultimaCelda = None
Exemplo n.º 6
0
    def __init__(self, owner, game, nivel, white, black, siClock):

        QTVarios.WDialogo.__init__(self, owner, owner.rotulo(), Iconos.PGN(),
                                   "learnpuente")

        self.owner = owner
        self.procesador = owner.procesador
        self.configuracion = self.procesador.configuracion
        self.game = game
        self.nivel = nivel
        self.white = white
        self.black = black
        self.siClock = siClock

        self.repTiempo = 3000
        self.repWorking = False

        # Tool bar
        self.tb = Controles.TBrutina(self, [])

        self.pon_toolbar(self.INICIO)

        # Tableros
        config_board = self.configuracion.config_board("LEARNPGN", 48)

        self.tableroIni = Tablero.Tablero(self, config_board)
        self.tableroIni.crea()
        self.tableroIni.set_dispatcher(self.mueve_humano, None)
        self.lbIni = (Controles.LB(self).alinCentrado().ponColorFondoN(
            "#076C9F", "#EFEFEF").anchoMinimo(self.tableroIni.ancho))
        lyIni = Colocacion.V().control(self.tableroIni).control(self.lbIni)

        self.tableroFin = Tablero.TableroEstatico(self, config_board)
        self.tableroFin.crea()
        self.lbFin = (Controles.LB(self).alinCentrado().ponColorFondoN(
            "#076C9F", "#EFEFEF").anchoMinimo(self.tableroFin.ancho))
        lyFin = Colocacion.V().control(self.tableroFin).control(self.lbFin)

        # Rotulo vtime
        f = Controles.TipoLetra(puntos=30, peso=75)
        self.lbReloj = (Controles.LB(
            self, "00:00").ponFuente(f).alinCentrado().ponColorFondoN(
                "#076C9F", "#EFEFEF").anchoMinimo(200))
        self.lbReloj.setFrameStyle(QtWidgets.QFrame.Box
                                   | QtWidgets.QFrame.Raised)

        # Movimientos
        flb = Controles.TipoLetra(puntos=11)
        self.lbInfo = Controles.LB(self).anchoFijo(200).ponWrap().ponFuente(
            flb)

        # Layout
        lyC = Colocacion.V().control(self.lbReloj).control(
            self.lbInfo).relleno()
        lyTM = Colocacion.H().otro(lyIni).otro(lyC).otro(lyFin).relleno()

        ly = Colocacion.V().control(self.tb).otro(lyTM).relleno().margen(3)

        self.setLayout(ly)

        self.restore_video()
        self.adjustSize()

        if siClock:
            QtCore.QTimer.singleShot(500, self.ajustaReloj)
        else:
            self.lbReloj.hide()

        self.reset()