Exemplo n.º 1
0
 def copiar(self):
     reg = self.grid.recno()
     if reg >= 0:
         nombreBase = self.lista[reg][0][:-4]
         torneoBase = Torneo.Torneo(nombreBase)
         n = 1
         while True:
             nombre = nombreBase + "-%d" % n
             torneo = Torneo.Torneo(nombre)
             if os.path.isfile(torneo.fichero()):
                 n += 1
             else:
                 shutil.copy(torneoBase.fichero(), torneo.fichero())
                 self.lista = self.leeTorneos()
                 self.grid.refresh()
                 return
Exemplo n.º 2
0
 def modificar(self):
     n = self.grid.recno()
     if n >= 0:
         nombre = self.lista[n][0][:-4]
         torneo = Torneo.Torneo(nombre)
         torneo.leer()
         self.trabajar(torneo)
Exemplo n.º 3
0
    def inicio(self, nombre_torneo, liNumGames):
        self.tipoJuego = kJugMvM

        self.torneo = Torneo.Torneo(nombre_torneo)
        self.torneo.leer()
        self.torneo.st_filtro = set(liNumGames)
        self.pantalla.ponActivarTutor(False)
        self.ponPiezasAbajo(True)
        self.mostrarIndicador(True)
        self.siTerminar = False
        self.siPausa = False
        self.pantalla.ponToolBar((k_cancelar, k_peliculaPausa, k_forceEnd))
        self.colorJugando = True
        self.ponCapPorDefecto()

        self.wresult = PantallaTorneos.WResult(self.pantalla, self)
        self.wresult.show()

        numGames = len(liNumGames)
        for ng in range(numGames):
            gm = self.torneo._liGames[liNumGames[ng]]
            self.siguienteJuego(gm, liNumGames[ng], ng, numGames)
            self.procesador.pararMotores()
            if self.siTerminar:
                break
            if self.wresult:
                self.wresult.refresh()

        if self.wresult:
            self.wresult.terminar()
Exemplo n.º 4
0
 def borrar(self):
     n = self.grid.recno()
     if n >= 0:
         nombre = self.lista[n][0][:-4]
         if QTUtil2.pregunta(self, _X(_("Delete %1?"), nombre)):
             torneo = Torneo.Torneo(nombre)
             os.remove(torneo.fichero())
             self.lista = self.leeTorneos()
             self.grid.refresh()
Exemplo n.º 5
0
 def crear(self):
     torneo = Torneo.Torneo()
     self.trabajar(torneo)
Exemplo n.º 6
0
    def __init__(self, wParent, nombre_torneo):

        um = QTUtil2.unMomento(wParent)
        torneo = self.torneo = Torneo.Torneo(nombre_torneo)
        torneo.leer()
        um.final()

        titulo = _("Competition")
        icono = Iconos.Torneos()
        extparam = "untorneo_v1"
        QTVarios.WDialogo.__init__(self, wParent, titulo, icono, extparam)

        self.configuracion = VarGen.configuracion

        # Datos

        self.liEnActual = []
        self.xjugar = None
        self.liResult = None

        # Toolbar
        liAcciones = ((_("Save") + "+" + _("Quit"), Iconos.MainMenu(), self.terminar), None,
                      (_("Cancel"), Iconos.Cancelar(), self.cancelar), None,
                      (_("Play"), Iconos.Empezar(), self.gmJugar), None,
                      )
        tb = QTVarios.LCTB(self, liAcciones)

        # Tabs
        self.tab = tab = Controles.Tab()

        # Tab-configuracion --------------------------------------------------
        w = QtGui.QWidget()
        # # Nombre
        lbNombre = Controles.LB(self, _("Name") + ": ")
        self.edNombre = Controles.ED(w, torneo.nombre())
        # # Resign
        lbResign = Controles.LB(self, _("Minimum points to assign winner") + ": ")
        self.sbResign = Controles.SB(self, torneo.resign(), 60, 100000)
        # Draw-plys
        lbDrawMinPly = Controles.LB(self, _("Minimum moves to assign draw") + ": ")
        self.sbDrawMinPly = Controles.SB(self, torneo.drawMinPly(), 20, 1000)
        # Draw-puntos
        lbDrawRange = Controles.LB(self, _("Maximum points to assign draw") + ": ")
        self.sbDrawRange = Controles.SB(self, torneo.drawRange(), 0, 50)

        lbBook = Controles.LB(self, _("Opening book") + ": ")
        fvar = self.configuracion.ficheroBooks
        self.listaLibros = Books.ListaLibros()
        self.listaLibros.recuperaVar(fvar)
        # Comprobamos que todos esten accesibles
        self.listaLibros.comprueba()
        li = [(x.nombre, x.path) for x in self.listaLibros.lista]
        li.insert(0, ("* " + _("None"), "-"))
        self.cbBooks = Controles.CB(self, li, torneo.book())
        btNuevoBook = Controles.PB(self, "", self.nuevoBook, plano=False).ponIcono(Iconos.Nuevo(), tamIcon=16)
        lyBook = Colocacion.H().control(self.cbBooks).control(btNuevoBook).relleno()

        lbBookDepth = Controles.LB(self, _("Max depth of book (0=Maximum)") + ": ")
        self.sbBookDepth = Controles.SB(self, torneo.bookDepth(), 0, 200)

        # Posicion inicial
        lbFEN = Controles.LB(self, _("Initial position") + ": ")
        self.fen = torneo.fen()
        self.btPosicion = Controles.PB(self, " " * 5 + _("Change") + " " * 5, self.posicionEditar).ponPlano(False)
        self.btPosicionQuitar = Controles.PB(self, "", self.posicionQuitar).ponIcono(Iconos.Motor_No())
        self.btPosicionPegar = Controles.PB(self, "", self.posicionPegar).ponIcono(Iconos.Pegar16()).ponToolTip(
                _("Paste FEN position"))
        lyFEN = Colocacion.H().control(self.btPosicionQuitar).control(self.btPosicion).control(
                self.btPosicionPegar).relleno()

        # Norman Pollock
        lbNorman = Controles.LB(self, '%s(<a href="https://komodochess.com/pub/40H-pgn-utilities">?</a>): ' %
                                _("Initial position from Norman Pollock openings database"))
        self.chbNorman = Controles.CHB(self, " ", self.torneo.norman())

        # Layout
        layout = Colocacion.G()
        layout.controld(lbNombre, 0, 0).control(self.edNombre, 0, 1)
        layout.controld(lbResign, 1, 0).control(self.sbResign, 1, 1)
        layout.controld(lbDrawMinPly, 2, 0).control(self.sbDrawMinPly, 2, 1)
        layout.controld(lbDrawRange, 3, 0).control(self.sbDrawRange, 3, 1)
        layout.controld(lbBook, 4, 0).otro(lyBook, 4, 1)
        layout.controld(lbBookDepth, 5, 0).control(self.sbBookDepth, 5, 1)
        layout.controld(lbFEN, 6, 0).otro(lyFEN, 6, 1)
        layout.controld(lbNorman, 7, 0).control(self.chbNorman, 7, 1)
        layoutV = Colocacion.V().relleno().otro(layout).relleno()
        layoutH = Colocacion.H().relleno().otro(layoutV).relleno()

        # Creamos
        w.setLayout(layoutH)
        tab.nuevaTab(w, _("Configuration"))

        # Tab-engines --------------------------------------------------
        self.splitterEngines = QtGui.QSplitter(self)
        self.registrarSplitter(self.splitterEngines, "engines")
        # TB
        liAcciones = [(_("New"), Iconos.TutorialesCrear(), self.enNuevo), None,
                      (_("Modify"), Iconos.Modificar(), self.enModificar), None,
                      (_("Remove"), Iconos.Borrar(), self.enBorrar), None,
                      (_("Copy"), Iconos.Copiar(), self.enCopiar), None,
                      (_("Import"), Iconos.MasDoc(), self.enImportar), None,
                      ]
        tbEnA = QTVarios.LCTB(self, liAcciones, tamIcon=24)

        # Grid engine
        oColumnas = Columnas.ListaColumnas()
        oColumnas.nueva("ALIAS", _("Alias"), 209)
        self.gridEnginesAlias = Grid.Grid(self, oColumnas, siSelecFilas=True, xid="EA", siSeleccionMultiple=True)
        self.registrarGrid(self.gridEnginesAlias)

        w = QtGui.QWidget()
        ly = Colocacion.V().control(self.gridEnginesAlias).margen(0)
        w.setLayout(ly)
        self.splitterEngines.addWidget(w)

        oColumnas = Columnas.ListaColumnas()
        oColumnas.nueva("CAMPO", _("Label"), 200, siDerecha=True)
        oColumnas.nueva("VALOR", _("Value"), 286)
        self.gridEnginesValores = Grid.Grid(self, oColumnas, siSelecFilas=False, xid="EV")
        self.registrarGrid(self.gridEnginesValores)

        w = QtGui.QWidget()
        ly = Colocacion.V().control(self.gridEnginesValores).margen(0)
        w.setLayout(ly)
        self.splitterEngines.addWidget(w)

        self.splitterEngines.setSizes([250, 520])  # por defecto

        w = QtGui.QWidget()
        ly = Colocacion.V().control(tbEnA).control(self.splitterEngines)
        w.setLayout(ly)
        tab.nuevaTab(w, _("Engines"))

        # Creamos

        # Tab-games --------------------------------------------------
        w = QtGui.QWidget()
        # TB
        liAcciones = [(_("New"), Iconos.TutorialesCrear(), self.gmCrear), None,
                      (_("Remove"), Iconos.Borrar(), self.gmBorrar), None,
                      (_("Show"), Iconos.PGN(), self.gmMostrar), None,
                      (_("Save") + "(%s)" % _("PGN"), Iconos.GrabarComo(), self.gmGuardar), None,
                      ]
        tbEnG = QTVarios.LCTB(self, liAcciones, tamIcon=24)
        # Grid engine
        oColumnas = Columnas.ListaColumnas()
        oColumnas.nueva("WHITE", _("White"), 190, siCentrado=True)
        oColumnas.nueva("BLACK", _("Black"), 190, siCentrado=True)
        oColumnas.nueva("RESULT", _("Result"), 190, siCentrado=True)
        oColumnas.nueva("TIEMPO", _("Time"), 170, siCentrado=True)
        self.gridGames = Grid.Grid(self, oColumnas, siSelecFilas=True, xid="G", siSeleccionMultiple=True)
        self.registrarGrid(self.gridGames)
        # Layout
        layout = Colocacion.V().control(tbEnG).control(self.gridGames)

        # Creamos
        w.setLayout(layout)
        tab.nuevaTab(w, _("Games"))

        # Tab-resultado --------------------------------------------------
        w = QtGui.QWidget()

        # Grid
        oColumnas = Columnas.ListaColumnas()
        oColumnas.nueva("NUMERO", _("N."), 35, siCentrado=True)
        oColumnas.nueva("MOTOR", _("Engine"), 190, siCentrado=True)
        oColumnas.nueva("GANADOS", _("Wins"), 120, siCentrado=True)
        oColumnas.nueva("TABLAS", _("Draws"), 120, siCentrado=True)
        oColumnas.nueva("PERDIDOS", _("Losses"), 120, siCentrado=True)
        oColumnas.nueva("PUNTOS", _("Points"), 120, siCentrado=True)
        self.gridResult = Grid.Grid(self, oColumnas, siSelecFilas=True, xid="R")
        self.registrarGrid(self.gridResult)
        # Layout
        layout = Colocacion.V().control(self.gridResult)

        # Creamos
        w.setLayout(layout)
        tab.nuevaTab(w, _("Result"))

        # Layout
        layout = Colocacion.V().control(tb).control(tab).margen(8)
        self.setLayout(layout)

        self.recuperarVideo(siTam=True, anchoDefecto=800, altoDefecto=430)

        self.gridEnginesAlias.gotop()

        self.edNombre.setFocus()

        self.muestraPosicion()