def importar(self): if importarGM(self): liC = GM.listaGM() self.cbGM.clear() for tp in liC: self.cbGM.addItem(tp[0], tp[1]) self.cbGM.setCurrentIndex(0)
def __init__(self, wgm, ogm): self.liRegs = ogm.genToSelect() dgm = GM.dicGM() nombre = dgm.get(ogm.gm, ogm.gm) titulo = "%s - %s" % (_("One game"), nombre) icono = Iconos.Uno() extparam = "gm1g" QTVarios.WDialogo.__init__(self, wgm, titulo, icono, extparam) oColumnas = Columnas.ListaColumnas() oColumnas.nueva("NOMBRE", _("Opponent"), 180) oColumnas.nueva("FECHA", _("Date"), 90, siCentrado=True) oColumnas.nueva("ECO", _("ECO"), 40, siCentrado=True) oColumnas.nueva("RESULT", _("Result"), 64, siCentrado=True) self.grid = grid = Grid.Grid(self, oColumnas, siSelecFilas=True) self.grid.coloresAlternados() self.registrarGrid(grid) liAcciones = [ (_("Accept"), Iconos.Aceptar(), "aceptar"), None, (_("Cancel"), Iconos.Cancelar(), "cancelar"), None, ] tb = Controles.TB(self, liAcciones) layout = Colocacion.V().control(tb).control(grid).margen(3) self.setLayout(layout) self.recuperarVideo(anchoDefecto=400) self.partidaElegida = None
def __init__(self, wgm, ogm): self.liRegs = ogm.genToSelect() dgm = GM.dicGM() nombre = dgm.get(ogm.gm, ogm.gm) titulo = "%s - %s" % (_("One game"), nombre) icono = Iconos.Uno() extparam = "gm1g" QTVarios.WDialogo.__init__(self, wgm, titulo, icono, extparam) oColumnas = Columnas.ListaColumnas() oColumnas.nueva("NOMBRE", _("Opponent"), 180) oColumnas.nueva("FECHA", _("Date"), 90, siCentrado=True) oColumnas.nueva("ECO", _("ECO"), 40, siCentrado=True) oColumnas.nueva("RESULT", _("Result"), 64, siCentrado=True) self.grid = grid = Grid.Grid(self, oColumnas, siSelecFilas=True) self.grid.coloresAlternados() self.registrarGrid(grid) liAcciones = [( _("Accept"), Iconos.Aceptar(), "aceptar" ), None, ( _("Cancel"), Iconos.Cancelar(), "cancelar" ), None, ] tb = Controles.TB(self, liAcciones) layout = Colocacion.V().control(tb).control(grid).margen(3) self.setLayout(layout) self.recuperarVideo(anchoDefecto=400) self.partidaElegida = None
def grabaDic(self): rk = Util.Record() rk.gm = self.cbGM.valor() if rk.gm is None: rk.modo = "personal" rk.gm = self.cbPersonal.valor() if rk.gm is None: return False else: rk.modo = "estandar" rk.partidaElegida = None rk.siBlancas = self.rbBlancas.isChecked() rk.siJuez = self.gbJ.isChecked() rk.showevals = self.chbEvals.valor() rk.motor = self.cbJmotor.valor() rk.tiempo = int(self.edJtiempo.textoFloat() * 10) rk.mostrar = self.cbJshow.valor() rk.depth = self.cbJdepth.valor() rk.multiPV = self.cbJmultiPV.valor() rk.jugContrario = self.chContrario.isChecked() rk.jugInicial = self.edJugInicial.valor() if rk.siJuez and rk.tiempo <= 0 and rk.depth == 0: rk.siJuez = False rk.bypassBook = self.cbBooks.valor() rk.apertura = self.bloqueApertura default = "WGM" if self.siWoman else "GM" carpeta = default if rk.modo == "estandar" else self.configuracion.dirPersonalTraining self.ogm = GM.GM(carpeta, rk.gm) self.ogm.colorFilter(rk.siBlancas) if not len(self.ogm): QTUtil2.mensError(self, _("There are no games to play with this color")) return False self.ogm.isErasable = rk.modo == "personal" # para saber si se puede borrar self.record = rk self.record.siWoman = self.siWoman dic = {} for atr in dir(self.record): if not atr.startswith("_"): dic[atr.upper()] = getattr(self.record, atr) dic["APERTURASFAVORITAS"] = self.liAperturasFavoritas Util.guardaDIC(dic, self.configuracion.ficheroGM) return True
def __init__(self, wgm, ogm): self.ogm = ogm self.liRegs = ogm.genToSelect() self.siReverse = False self.claveSort = None dgm = GM.dicGM() nombre = dgm.get(ogm.gm, ogm.gm) titulo = "%s - %s" % (_("One game"), nombre) icono = Iconos.Uno() extparam = "gm1g" super().__init__(parent=wgm, titulo=titulo, icono=icono, extparam=extparam) oColumnas = Columnas.ListaColumnas() oColumnas.nueva("NOMBRE", _("Opponent"), 180) oColumnas.nueva("FECHA", _("Date"), 90, siCentrado=True) oColumnas.nueva("EVENT", _("Event"), 140, siCentrado=True) oColumnas.nueva("ECO", _("ECO"), 40, siCentrado=True) oColumnas.nueva("RESULT", _("Result"), 64, siCentrado=True) self.grid = grid = Grid.Grid(self, oColumnas, siSelecFilas=True, siSeleccionMultiple=True) nAnchoPgn = self.grid.anchoColumnas() + 20 self.grid.setMinimumWidth(nAnchoPgn) self.grid.coloresAlternados() self.registrarGrid(grid) liAcciones = [ (_("Accept"), Iconos.Aceptar(), self.aceptar), None, (_("Cancel"), Iconos.Cancelar(), self.cancelar), None, ] if ogm.isErasable: liAcciones.append((_("Remove"), Iconos.Borrar(), self.remove)) liAcciones.append(None) tb = Controles.TBrutina(self, liAcciones) layout = Colocacion.V().control(tb).control(grid).margen(3) self.setLayout(layout) self.recuperarVideo(anchoDefecto=400) self.partidaElegida = None
def grabaDic(self): rk = Util.Record() rk.gm = self.cbGM.valor() if rk.gm is None: rk.modo = "personal" rk.gm = self.cbPersonal.valor() if rk.gm is None: return False else: rk.modo = "estandar" rk.partidaElegida = None rk.is_white = self.rbBlancas.isChecked() rk.siJuez = self.gbJ.isChecked() rk.showevals = self.chbEvals.valor() rk.engine = self.cbJmotor.valor() rk.vtime = int(self.edJtiempo.textoFloat() * 10) rk.mostrar = self.cbJshow.valor() rk.depth = self.cbJdepth.valor() rk.multiPV = self.cbJmultiPV.valor() rk.jugContrario = self.chContrario.isChecked() rk.jugInicial = self.edJugInicial.valor() if rk.siJuez and rk.vtime <= 0 and rk.depth == 0: rk.siJuez = False rk.bypassBook = self.cbBooks.valor() rk.opening = self.bloqueApertura default = Code.path_resource("GM") carpeta = default if rk.modo == "estandar" else self.configuracion.dirPersonalTraining self.ogm = GM.GM(carpeta, rk.gm) self.ogm.colorFilter(rk.is_white) if not len(self.ogm): QTUtil2.message_error( self, _("There are no games to play with this color")) return False self.ogm.isErasable = rk.modo == "personal" # para saber si se puede borrar self.record = rk dic = {} for atr in dir(self.record): if not atr.startswith("_"): dic[atr.upper()] = getattr(self.record, atr) dic["APERTURASFAVORITAS"] = self.liAperturasFavoritas Util.save_pickle(self.configuracion.file_gms(), dic) return True
def borrarPersonal(self): tgm = self.cbPersonal.valor() if tgm is None: return if not QTUtil2.pregunta(self, _X(_("Delete %1?"), tgm)): return base = os.path.join(self.configuracion.dirPersonalTraining, "%s.gm" % tgm) for x in "wbi": Util.borraFichero(base + x) self.liPersonal = GM.listaGMpersonal(self.configuracion.dirPersonalTraining) li = [(x[0], x[1]) for x in self.liPersonal] li.insert(0, ("-", None)) self.cbPersonal.rehacer(li, li[0][1]) self.compruebaP()
def borrarPersonal(self): tgm = self.cbPersonal.valor() if tgm is None: return if not QTUtil2.pregunta(self, _X(_("Delete %1?"), tgm)): return base = os.path.join(self.configuracion.dirPersonalTraining, "%s.gm" % tgm) for x in "wbi": Util.borraFichero(base + x) self.liPersonal = GM.listaGMpersonal(self.configuracion.dirPersonalTraining) li = [(x[0], x[1] ) for x in self.liPersonal] li.insert(0, ("-", None)) self.cbPersonal.rehacer(li, li[0][1]) self.compruebaP()
def gm(self): liSelec = self.grid.recnosSeleccionados() # Datos liGen = [(None, None)] liGen.append((_("Name") + ":", "")) liGen.append(("<div align=\"right\">" + _( "Only player moves" ) + ":<br>%s</div>" % _( "(You can add multiple aliases separated by ; and wildcards with * )" ), "")) liGen.append((_("Only selected games") + ":", len(liSelec) > 1)) li = [ 1, (0, _("Both sides")), (1, _("Only the winning side")), (2, _("The winning side and both if drawn")) ] liGen.append((_("Which side") + ":", li)) eti = _("Play like a grandmaster") eti = _X(_('Create training to %1'), eti) resultado = FormLayout.fedit(liGen, title=eti, parent=self, anchoMinimo=460, icon=Iconos.GranMaestro()) if not resultado: return accion, liGen = resultado nombre = liGen[0] jugador = liGen[1] siSelec = liGen[2] result = liGen[3] if not nombre: return liJugadores = jugador.upper().split(";") if jugador else None # Se crea el objeto de ejecucion fgm = GM.FabGM(self.gestor.configuracion, nombre, liJugadores) # Se pasan todas las partidas if not siSelec: liSelec = range(self.dbf.reccount()) nregs = len(liSelec) mensaje = _("Game") + " %d/" + str(nregs) tmpBP = QTUtil2.BarraProgreso(self, eti, "", nregs).mostrar() for n, recno in enumerate(liSelec): if tmpBP.siCancelado(): break self.dbf.goto(recno) if n: tmpBP.pon(n) tmpBP.mensaje(mensaje % (n + 1, )) jugadas = self.dbf.leeOtroCampo(n, "PGN") pgn = PGN.UnPGN() pgn.leeTexto(jugadas) fgm.masMadera(pgn, pgn.partida, result) siCancelado = tmpBP.siCancelado() tmpBP.cerrar() if not siCancelado: # Se ejecuta siCreado = fgm.xprocesa() if siCreado: liCreados = [nombre] liNoCreados = None else: liNoCreados = [nombre] liCreados = None mensajeEntrenamientos(self, liCreados, liNoCreados)
def inicio(self, record): self.tipoJuego = kJugGM self.ayudas = 9999 # Para que analice sin problemas self.puntos = 0 self.record = record self.gm = record.gm self.siBlancas = record.siBlancas self.modo = record.modo self.siJuez = record.siJuez self.showevals = record.showevals self.motor = record.motor self.tiempo = record.tiempo self.depth = record.depth self.multiPV = record.multiPV self.mostrar = record.mostrar self.jugContrario = record.jugContrario self.jugInicial = record.jugInicial self.partidaElegida = record.partidaElegida self.bypassBook = record.bypassBook self.apertura = record.apertura self.onBypassBook = True if self.bypassBook else False if self.onBypassBook: self.bypassBook.polyglot() self.onApertura = True if self.apertura else False self.siAnalizando = False if self.siJuez: self.puntos = 0 tutor = self.configuracion.buscaRivalExt(self.motor) t_t = self.tiempo * 100 self.xtutor = self.procesador.creaGestorMotor( tutor, t_t, self.depth) self.xtutor.actMultiPV(self.multiPV) self.analisis = None self.book = Apertura.AperturaPol(999) self.pensando(True) carpeta = "GM" if self.modo == "estandar" else self.configuracion.dirPersonalTraining self.motorGM = GM.GM(carpeta, self.gm) self.motorGM.colorFilter(self.siBlancas) if self.partidaElegida is not None: self.motorGM.ponPartidaElegida(self.partidaElegida) self.siJugamosConBlancas = self.siBlancas self.siRivalConBlancas = not self.siBlancas self.pensando(False) self.pantalla.ponToolBar( (k_mainmenu, k_reiniciar, k_configurar, k_utilidades)) self.pantalla.activaJuego(True, False) self.ponMensajero(self.mueveHumano) self.ponPosicion(self.partida.ultPosicion) self.mostrarIndicador(True) self.quitaAyudas() self.ponPiezasAbajo(self.siBlancas) dic = GM.dicGM() self.nombreGM = dic[ self.gm.lower()] if self.modo == "estandar" else self.gm rotulo1 = _( "Grandmaster" ) + ": <b>%s</b>" if self.modo == "estandar" else "<b>%s</b>" self.ponRotulo1(rotulo1 % self.nombreGM) self.nombreRival = "" self.textoPuntuacion = "" self.ponRotuloSecundario() self.pgnRefresh(True) self.ponCapInfoPorDefecto() self.estado = kJugando self.ponPosicionDGT() self.siguienteJugada()
def inicio(self, record): self.game_type = GT_AGAINST_GM self.ayudas = 9999 # Para que analice sin problemas self.puntos = 0 self.record = record self.gm = record.gm self.is_white = record.is_white self.modo = record.modo self.siJuez = record.siJuez self.showevals = record.showevals self.engine = record.engine self.vtime = record.vtime self.depth = record.depth self.multiPV = record.multiPV self.mostrar = record.mostrar self.jugContrario = record.jugContrario self.jugInicial = record.jugInicial self.partidaElegida = record.partidaElegida self.bypassBook = record.bypassBook self.opening = record.opening self.onBypassBook = True if self.bypassBook else False if self.onBypassBook: self.bypassBook.polyglot() self.onApertura = True if self.opening else False self.siAnalizando = False if self.siJuez: self.puntos = 0 tutor = self.configuracion.buscaRival(self.engine) t_t = self.vtime * 100 self.xtutor = self.procesador.creaGestorMotor(tutor, t_t, self.depth) self.xtutor.actMultiPV(self.multiPV) self.analysis = None self.book = Apertura.AperturaPol(999) self.pensando(True) default = Code.path_resource("GM") carpeta = default if self.modo == "estandar" else self.configuracion.dirPersonalTraining self.motorGM = GM.GM(carpeta, self.gm) self.motorGM.colorFilter(self.is_white) if self.partidaElegida is not None: self.motorGM.ponPartidaElegida(self.partidaElegida) self.is_human_side_white = self.is_white self.is_engine_side_white = not self.is_white self.pensando(False) self.main_window.pon_toolbar((TB_CLOSE, TB_REINIT, TB_CONFIG, TB_UTILITIES)) # self.main_window.pon_toolbar((TB_CLOSE, TB_REINIT, TB_ADJOURN, TB_CONFIG, TB_UTILITIES)) self.main_window.activaJuego(True, False) self.set_dispatcher(self.mueve_humano) self.setposition(self.game.last_position) self.mostrarIndicador(True) self.quitaAyudas() self.ponPiezasAbajo(self.is_white) dic = GM.dic_gm() self.nombreGM = dic[self.gm.lower()] if self.modo == "estandar" else self.gm rot = _("Grandmaster") rotulo1 = rot + ": <b>%s</b>" if self.modo == "estandar" else "<b>%s</b>" self.ponRotulo1(rotulo1 % self.nombreGM) self.nombreRival = "" self.textoPuntuacion = "" self.ponRotuloSecundario() self.pgnRefresh(True) self.ponCapInfoPorDefecto() self.state = ST_PLAYING self.dgt_setposition() self.siguiente_jugada()
def __init__(self, procesador): self.configuracion = procesador.configuracion self.procesador = procesador self.dbHisto = Util.DicSQL(self.configuracion.ficheroGMhisto) self.bloqueApertura = None self.liAperturasFavoritas = [] wParent = procesador.pantalla titulo = _("Play like a grandmaster") icono = Iconos.GranMaestro() extparam = "gm" QTVarios.WDialogo.__init__(self, wParent, titulo, icono, extparam) flb = Controles.TipoLetra(puntos=10) # Toolbar liAcciones = [(_("Accept"), Iconos.Aceptar(), self.aceptar), None, (_("Cancel"), Iconos.Cancelar(), self.cancelar), None, (_("One game"), Iconos.Uno(), self.unJuego), None, (_("Import"), Iconos.ImportarGM(), self.importar) ] tb = Controles.TBrutina(self, liAcciones) # Grandes maestros self.liGM = GM.listaGM() li = [(x[0], x[1]) for x in self.liGM] li.insert(0, ("-", None)) self.cbGM = QTUtil2.comboBoxLB(self, li, li[0][1] if len(self.liGM) == 0 else li[1][1]) self.cbGM.capturaCambiado(self.compruebaGM) hbox = Colocacion.H().relleno().control(self.cbGM).relleno() gbGM = Controles.GB(self, _("Choose a grandmaster"), hbox).ponFuente(flb) # Personales self.liPersonal = GM.listaGMpersonal(self.procesador.configuracion.dirPersonalTraining) if self.liPersonal: li = [(x[0], x[1]) for x in self.liPersonal] li.insert(0, ("-", None)) self.cbPersonal = QTUtil2.comboBoxLB(self, li, li[0][1]) self.cbPersonal.capturaCambiado(self.compruebaP) btBorrar = Controles.PB(self, "", self.borrarPersonal, plano=False).ponIcono(Iconos.Borrar(), tamIcon=16) hbox = Colocacion.H().relleno().control(self.cbPersonal).control(btBorrar).relleno() gbPersonal = Controles.GB(self, _("Personal games"), hbox).ponFuente(flb) # Color self.rbBlancas = Controles.RB(self, _("White"), rutina=self.compruebaColor) self.rbBlancas.activa(True) self.rbNegras = Controles.RB(self, _("Black"), rutina=self.compruebaColor) self.rbNegras.activa(False) # Contrario self.chContrario = Controles.CHB(self, _("Choose the opponent's move, when there are multiple possible answers"), False) # Juez liDepths = [("--", 0)] for x in range(1, 31): liDepths.append((str(x), x)) self.liMotores = self.configuracion.comboMotoresMultiPV10() self.cbJmotor, self.lbJmotor = QTUtil2.comboBoxLB(self, self.liMotores, self.configuracion.tutorInicial, _("Engine")) self.edJtiempo = Controles.ED(self).tipoFloat().ponFloat(1.0).anchoFijo(50) self.lbJtiempo = Controles.LB2P(self, _("Time in seconds")) self.cbJdepth = Controles.CB(self, liDepths, 0).capturaCambiado(self.cambiadoDepth) self.lbJdepth = Controles.LB2P(self, _("Depth")) self.lbJshow = Controles.LB2P(self, _("Show rating")) self.chbEvals = Controles.CHB(self, _("Show all evaluations"), False) liOptions = [(_("All moves"), None), (_("Moves are different"), True), (_("Never"), False)] self.cbJshow = Controles.CB(self, liOptions, True) self.lbJmultiPV = Controles.LB2P(self, _("Number of moves evaluated by engine(MultiPV)")) li = [(_("Default"), "PD"), (_("Maximum"), "MX")] for x in (1, 3, 5, 10, 15, 20, 30, 40, 50, 75, 100, 150, 200): li.append((str(x), str(x))) self.cbJmultiPV = Controles.CB(self, li, "PD") # Inicial self.edJugInicial, lbInicial = QTUtil2.spinBoxLB(self, 1, 1, 99, etiqueta=_("Initial move"), maxTam=40) # Libros fvar = self.configuracion.ficheroBooks self.listaLibros = Books.ListaLibros() self.listaLibros.recuperaVar(fvar) # # Comprobamos que todos esten accesibles self.listaLibros.comprueba() li = [(x.nombre, x) for x in self.listaLibros.lista] li.insert(0, ("--", None)) self.cbBooks, lbBooks = QTUtil2.comboBoxLB(self, li, None, _("Bypass moves in the book")) # Aperturas self.btApertura = Controles.PB(self, " " * 5 + _("Undetermined") + " " * 5, self.aperturasEditar).ponPlano( False) self.btAperturasFavoritas = Controles.PB(self, "", self.aperturasFavoritas).ponIcono(Iconos.Favoritos()) self.btAperturasQuitar = Controles.PB(self, "", self.aperturasQuitar).ponIcono(Iconos.Motor_No()) hbox = Colocacion.H().control(self.btAperturasQuitar).control(self.btApertura).control( self.btAperturasFavoritas).relleno() gbOpening = Controles.GB(self, _("Opening"), hbox) # gbBasic # # Color hbox = Colocacion.H().relleno().control(self.rbBlancas).espacio(10).control(self.rbNegras).relleno() gbColor = Controles.GB(self, _("Play with"), hbox).ponFuente(flb) # Tiempo ly1 = Colocacion.H().control(self.lbJmotor).control(self.cbJmotor).control(self.lbJshow).control( self.cbJshow).relleno() ly2 = Colocacion.H().control(self.lbJtiempo).control(self.edJtiempo) ly2.control(self.lbJdepth).control(self.cbJdepth).espacio(15).control(self.chbEvals).relleno() ly3 = Colocacion.H().control(self.lbJmultiPV).control(self.cbJmultiPV).relleno() ly = Colocacion.V().otro(ly1).otro(ly2).otro(ly3) self.gbJ = Controles.GB(self, _("Adjudicator"), ly).conectar(self.cambiaJuez) # Opciones vlayout = Colocacion.V().control(gbColor) vlayout.espacio(5).control(self.gbJ) vlayout.margen(20) gbBasic = Controles.GB(self, "", vlayout) gbBasic.setFlat(True) # Opciones avanzadas lyInicial = Colocacion.H().control(lbInicial).control(self.edJugInicial).relleno().control(lbBooks).control( self.cbBooks).relleno() vlayout = Colocacion.V().relleno().otro(lyInicial).control(gbOpening) vlayout.espacio(5).control(self.chContrario).margen(20).relleno() gbAdvanced = Controles.GB(self, "", vlayout) gbAdvanced.setFlat(True) # Historico self.liHisto = [] oColumnas = Columnas.ListaColumnas() oColumnas.nueva("FECHA", _("Date"), 80, siCentrado=True) oColumnas.nueva("PACIERTOS", _("Hints"), 90, siCentrado=True) oColumnas.nueva("PUNTOS", _("Points accumulated"), 120, siCentrado=True) oColumnas.nueva("ENGINE", _("Adjudicator"), 100, siCentrado=True) oColumnas.nueva("RESUMEN", _("Game played"), 150) self.grid = grid = Grid.Grid(self, oColumnas, siSelecFilas=True, background=None) self.grid.coloresAlternados() self.registrarGrid(grid) # Tabs self.tab = Controles.Tab().ponPosicion("S") self.tab.nuevaTab(gbBasic, _("Basic")) self.tab.nuevaTab(gbAdvanced, _("Advanced")) self.tab.nuevaTab(self.grid, _("Track record")) # Cabecera lyCab = Colocacion.H().control(gbGM) if self.liPersonal: lyCab.control(gbPersonal) layout = Colocacion.V().control(tb).otro(lyCab).control(self.tab).margen(3) self.setLayout(layout) self.recuperaDic() self.cambiaJuez() self.compruebaGM() self.compruebaP() self.compruebaHisto() self.aperturaMuestra() self.btAperturasFavoritas.hide() self.recuperarVideo(anchoDefecto=450)
def inicio(self, record): self.tipoJuego = kJugGM self.ayudas = 9999 # Para que analice sin problemas self.puntos = 0 self.record = record self.gm = record.gm self.siBlancas = record.siBlancas self.modo = record.modo self.siJuez = record.siJuez self.motor = record.motor self.tiempo = record.tiempo self.depth = record.depth self.multiPV = record.multiPV self.mostrar = record.mostrar self.jugContrario = record.jugContrario self.jugInicial = record.jugInicial self.partidaElegida = record.partidaElegida self.bypassBook = record.bypassBook self.apertura = record.apertura self.onBypassBook = True if self.bypassBook else False if self.onBypassBook: self.bypassBook.polyglot() self.onApertura = True if self.apertura else False self.siAnalizando = False if self.siJuez: self.puntos = 0 tutor = self.configuracion.buscaRivalExt(self.motor) t_t = self.tiempo * 100 self.xtutor = self.procesador.creaGestorMotor(tutor, t_t, self.depth) self.xtutor.actMultiPV(self.multiPV) self.analisis = None self.siCompetitivo = True self.book = Apertura.AperturaPol(999) self.pensando(True) carpeta = "GM" if self.modo == "estandar" else self.configuracion.dirPersonalTraining self.motorGM = GM.GM(carpeta, self.gm) self.motorGM.colorFilter(self.siBlancas) if self.partidaElegida is not None: self.motorGM.ponPartidaElegida(self.partidaElegida) self.siJugamosConBlancas = self.siBlancas self.siRivalConBlancas = not self.siBlancas self.pensando(False) self.pantalla.ponToolBar(( k_mainmenu, k_reiniciar, k_configurar, k_utilidades )) self.pantalla.activaJuego(True, False) self.ponMensajero(self.mueveHumano) self.ponPosicion(self.partida.ultPosicion) self.mostrarIndicador(True) self.quitaAyudas() self.ponPiezasAbajo(self.siBlancas) dic = GM.dicGM() self.nombreGM = dic[self.gm.lower()] if self.modo == "estandar" else self.gm rotulo1 = _("Grandmaster") + ": <b>%s</b>" if self.modo == "estandar" else "<b>%s</b>" self.ponRotulo1(rotulo1 % self.nombreGM) self.nombreRival = "" self.textoPuntuacion = "" self.ponRotuloSecundario() self.pgnRefresh(True) self.ponCapInfoPorDefecto() self.estado = kJugando self.ponPosicionDGT() self.siguienteJugada()
def __init__(self, procesador): self.configuracion = procesador.configuracion self.procesador = procesador self.dbHisto = Util.DicSQL(self.configuracion.ficheroGMhisto) self.bloqueApertura = None self.liAperturasFavoritas = [] wParent = procesador.pantalla titulo = _("Play like a grandmaster") icono = Iconos.GranMaestro() extparam = "gm" QTVarios.WDialogo.__init__(self, wParent, titulo, icono, extparam) flb = Controles.TipoLetra(puntos=10) # Toolbar liAcciones = [( _("Accept"), Iconos.Aceptar(), "aceptar" ), None, ( _("Cancel"), Iconos.Cancelar(), "cancelar" ), None, ( _("One game"), Iconos.Uno(), "unJuego" ), None, ( _("Import"), Iconos.ImportarGM(), "importar" ) ] tb = Controles.TB(self, liAcciones) # Grandes maestros self.liGM = GM.listaGM() li = [(x[0], x[1]) for x in self.liGM] li.insert(0, ("-", None)) self.cbGM = QTUtil2.comboBoxLB(self, li, li[0][1] if len(self.liGM) == 0 else li[1][1]) self.cbGM.capturaCambiado(self.compruebaGM) hbox = Colocacion.H().relleno().control(self.cbGM).relleno() gbGM = Controles.GB(self, _("Choose a grandmaster"), hbox).ponFuente(flb) # Personales self.liPersonal = GM.listaGMpersonal(self.procesador.configuracion.dirPersonalTraining) if self.liPersonal: li = [(x[0], x[1]) for x in self.liPersonal] li.insert(0, ("-", None)) self.cbPersonal = QTUtil2.comboBoxLB(self, li, li[0][1]) self.cbPersonal.capturaCambiado(self.compruebaP) btBorrar = Controles.PB(self, "", self.borrarPersonal, plano=False).ponIcono(Iconos.Borrar(), tamIcon=16) hbox = Colocacion.H().relleno().control(self.cbPersonal).control(btBorrar).relleno() gbPersonal = Controles.GB(self, _("Personal games"), hbox).ponFuente(flb) # Color self.rbBlancas = Controles.RB(self, _("White"), rutina=self.compruebaColor) self.rbBlancas.activa(True) self.rbNegras = Controles.RB(self, _("Black"), rutina=self.compruebaColor) self.rbNegras.activa(False) # Contrario self.chContrario = Controles.CHB(self, _("Choose the opponent's move, when there are multiple possible answers"), False) # Juez liDepths = [("--", 0)] for x in range(1, 31): liDepths.append((str(x), x)) self.liMotores = self.configuracion.comboMotoresMultiPV10() self.cbJmotor, self.lbJmotor = QTUtil2.comboBoxLB(self, self.liMotores, self.configuracion.tutorInicial, _("Engine")) self.edJtiempo = Controles.ED(self).tipoFloat().ponFloat(1.0).anchoFijo(50) self.lbJtiempo = Controles.LB2P(self, _("Time in seconds")) self.cbJdepth = Controles.CB(self, liDepths, 0).capturaCambiado(self.cambiadoDepth) self.lbJdepth = Controles.LB2P(self, _("Depth")) self.lbJshow = Controles.LB2P(self, _("Show rating")) liOptions = [( _("All moves"), None ), ( _("Moves are different"), True ), ( _("Never"), False )] self.cbJshow = Controles.CB(self, liOptions, True) self.lbJmultiPV = Controles.LB2P(self, _("Number of moves evaluated by engine(MultiPV)")) li = [(_("Default"), "PD"), ( _("Maximum"), "MX")] for x in ( 1, 3, 5, 10, 15, 20, 30, 40, 50, 75, 100, 150, 200 ): li.append((str(x), str(x))) self.cbJmultiPV = Controles.CB(self, li, "PD") # Inicial self.edJugInicial, lbInicial = QTUtil2.spinBoxLB(self, 1, 1, 99, etiqueta=_("Initial move"), maxTam=40) # Libros fvar = self.configuracion.ficheroBooks self.listaLibros = Books.ListaLibros() self.listaLibros.recuperaVar(fvar) # # Comprobamos que todos esten accesibles self.listaLibros.comprueba() li = [(x.nombre, x) for x in self.listaLibros.lista] li.insert(0, ("--", None)) self.cbBooks, lbBooks = QTUtil2.comboBoxLB(self, li, None, _("Bypass moves in the book")) # Aperturas self.btApertura = Controles.PB(self, " " * 5 + _("Undetermined") + " " * 5, self.aperturasEditar).ponPlano( False) self.btAperturasFavoritas = Controles.PB(self, "", self.aperturasFavoritas).ponIcono(Iconos.Favoritos()) self.btAperturasQuitar = Controles.PB(self, "", self.aperturasQuitar).ponIcono(Iconos.Motor_No()) hbox = Colocacion.H().control(self.btAperturasQuitar).control(self.btApertura).control( self.btAperturasFavoritas).relleno() gbOpening = Controles.GB(self, _("Opening"), hbox) # gbBasic # # Color hbox = Colocacion.H().relleno().control(self.rbBlancas).espacio(10).control(self.rbNegras).relleno() gbColor = Controles.GB(self, _("Play with"), hbox).ponFuente(flb) ## Tiempo ly1 = Colocacion.H().control(self.lbJmotor).control(self.cbJmotor).control(self.lbJshow).control( self.cbJshow).relleno() ly2 = Colocacion.H().control(self.lbJtiempo).control(self.edJtiempo) ly2.control(self.lbJdepth).control(self.cbJdepth).relleno() ly3 = Colocacion.H().control(self.lbJmultiPV).control(self.cbJmultiPV).relleno() ly = Colocacion.V().otro(ly1).otro(ly2).otro(ly3) self.gbJ = Controles.GB(self, _("Adjudicator"), ly).conectar(self.cambiaJuez) ## Opciones vlayout = Colocacion.V().control(gbColor) vlayout.espacio(5).control(self.gbJ) vlayout.margen(20) gbBasic = Controles.GB(self, "", vlayout) gbBasic.setFlat(True) ## Opciones avanzadas lyInicial = Colocacion.H().control(lbInicial).control(self.edJugInicial).relleno().control(lbBooks).control( self.cbBooks).relleno() vlayout = Colocacion.V().relleno().otro(lyInicial).control(gbOpening) vlayout.espacio(5).control(self.chContrario).margen(20).relleno() gbAdvanced = Controles.GB(self, "", vlayout) gbAdvanced.setFlat(True) # Historico self.liHisto = [] oColumnas = Columnas.ListaColumnas() oColumnas.nueva("FECHA", _("Date"), 80, siCentrado=True) oColumnas.nueva("PACIERTOS", _("Hints"), 90, siCentrado=True) oColumnas.nueva("PUNTOS", _("Points accumulated"), 120, siCentrado=True) oColumnas.nueva("ENGINE", _("Adjudicator"), 100, siCentrado=True) oColumnas.nueva("RESUMEN", _("Game played"), 150) self.grid = grid = Grid.Grid(self, oColumnas, siSelecFilas=True, background=None) self.grid.coloresAlternados() self.registrarGrid(grid) # Tabs self.tab = Controles.Tab().ponPosicion("S") self.tab.nuevaTab(gbBasic, _("Basic")) self.tab.nuevaTab(gbAdvanced, _("Advanced")) self.tab.nuevaTab(self.grid, _("Track record")) # Cabecera lyCab = Colocacion.H().control(gbGM) if self.liPersonal: lyCab.control(gbPersonal) layout = Colocacion.V().control(tb).otro(lyCab).control(self.tab).margen(3) self.setLayout(layout) self.recuperaDic() self.cambiaJuez() self.compruebaGM() self.compruebaP() self.compruebaHisto() self.aperturaMuestra() self.btAperturasFavoritas.hide() self.recuperarVideo(anchoDefecto=450)