Example #1
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.configuration = self.procesador.configuration

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

        # Board
        config_board = self.configuration.config_board("POTENCIA", 48)

        self.min_min = min_min
        self.min_max = min_max

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

        self.board = Board.BoardEstatico(self, config_board)
        self.board.crea()
        self.board.ponerPiezasAbajo(cp.is_white)
        self.board.set_position(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, "").align_center()

        self.liwm = []
        conj_piezas = self.board.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.board).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
Example #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.configuration = self.procesador.configuration

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

        nivel = len(liMV)

        # Boards
        config_board = self.configuration.config_board("PUENTE", 32)

        cpIni = Position.Position()
        cpIni.read_fen(fenIni)
        is_white = cpIni.is_white
        self.boardIni = Board.BoardEstatico(self, config_board)
        self.boardIni.crea()
        self.boardIni.ponerPiezasAbajo(is_white)
        self.boardIni.set_position(cpIni)

        cpFin = Position.Position()
        cpFin.read_fen(fenFin)
        self.boardFin = Board.BoardEstatico(self, config_board)
        self.boardFin.crea()
        self.boardFin.ponerPiezasAbajo(is_white)  # esta bien
        self.boardFin.set_position(cpFin)

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

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

        # Movimientos
        self.liwm = []
        conj_piezas = self.boardIni.piezas
        ly = Colocacion.V().margen(4).relleno()
        for i in range(nivel):
            wm = WEdMove(self, conj_piezas, is_white)
            self.liwm.append(wm)
            is_white = not is_white
            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(),
                                            icon_size=32).ponFuente(f)
        self.btSeguir = (Controles.PB(self,
                                      _("Continue"),
                                      self.seguir,
                                      plano=False).ponIcono(
                                          Iconos.Pelicula_Seguir(),
                                          icon_size=32).ponFuente(f))
        self.btTerminar = Controles.PB(self,
                                       _("Close"),
                                       self.terminar,
                                       plano=False).ponIcono(
                                           Iconos.MainMenu(),
                                           icon_size=32).ponFuente(f)
        self.btCancelar = Controles.PB(self,
                                       _("Cancel"),
                                       self.terminar,
                                       plano=False).ponIcono(
                                           Iconos.Cancelar(),
                                           icon_size=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.boardIni).otro(lyC).control(
            self.boardFin).relleno()

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

        self.setLayout(ly)

        self.restore_video()
        self.adjustSize()

        # Tiempo
        self.time_base = time.time()

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

        self.liwm[0].activa()

        self.ultimaCelda = None
Example #3
0
    def __init__(self, owner, db_mate15, mate15):

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

        self.configuration = Code.configuration
        self.mate15 = mate15
        self.db_mate15 = db_mate15

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

        self.board = Board.BoardEstatico(self, conf_board)
        self.board.crea()

        # Rotulo informacion
        self.lb_info = Controles.LB(self, "[%d] %s" % (self.mate15.pos + 1, self.mate15.info))
        self.lb_info.ponTipoLetra(puntos=self.configuration.x_pgn_fontpoints).align_center().set_wrap()
        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(), icon_size=20)

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

        # Movimientos
        self.li_lb_wm = []
        ly = Colocacion.G().margen(4)
        for row 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, row, 0)
            ly.columnaVacia(1, 20)
            ly.control(wm, row, 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),
            (_("Restart"), Iconos.Reset(), self.restart),
            (_("Continue"), Iconos.Pelicula_Seguir(), self.seguir),
        )
        self.tb = QTVarios.LCTB(self, li_acciones, style=QtCore.Qt.ToolButtonTextBesideIcon, icon_size=32)
        self.show_tb(self.terminar, self.begin)

        ly_left = Colocacion.V().control(self.tb).control(self.board)

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

        ly_center = Colocacion.H().otro(ly_left).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
Example #4
0
    def __init__(self, owner, game, nivel, white, black, siClock):

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

        self.owner = owner
        self.procesador = owner.procesador
        self.configuration = self.procesador.configuration
        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)

        # Boards
        config_board = self.configuration.config_board("LEARNPGN", 48)

        self.boardIni = Board.Board(self, config_board)
        self.boardIni.crea()
        self.boardIni.set_dispatcher(self.player_has_moved, None)
        self.lbIni = Controles.LB(
            self).align_center().set_foreground_backgound(
                "#076C9F", "#EFEFEF").anchoMinimo(self.boardIni.ancho)
        lyIni = Colocacion.V().control(self.boardIni).control(self.lbIni)

        self.boardFin = Board.BoardEstatico(self, config_board)
        self.boardFin.crea()
        self.lbFin = Controles.LB(
            self).align_center().set_foreground_backgound(
                "#076C9F", "#EFEFEF").anchoMinimo(self.boardFin.ancho)
        lyFin = Colocacion.V().control(self.boardFin).control(self.lbFin)

        # Rotulo vtime
        f = Controles.TipoLetra(puntos=30, peso=75)
        self.lbReloj = (Controles.LB(
            self,
            "00:00").ponFuente(f).align_center().set_foreground_backgound(
                "#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).set_wrap().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()

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

        self.reset()