def ent_otro(self): pos = DatosNueva.numEntrenamiento(self.pantalla, self.titEntreno, self.numEntrenos, pos=self.posEntreno) if pos is not None: self.posEntreno = pos self.reiniciar()
def competicion(self): opciones = DatosNueva.datos(self.pantalla, self.configuracion, self) if opciones: self.tipoJuego = kJugNueva categoria, nivel, siBlancas, puntos = opciones self.gestor = GestorCompeticion.GestorCompeticion(self) self.gestor.inicio(categoria, nivel, siBlancas, puntos)
def competicion(self): opciones = DatosNueva.datos(self.pantalla, self.configuracion, self) if opciones: self.tipoJuego = kJugNueva categoria, nivel, siBlancas, puntos = opciones self.gestor = GestorNueva.GestorNueva(self) self.gestor.inicio(categoria, nivel, siBlancas, puntos)
def cambiar(self): if self.posSiguiente >= 0: pos = DatosNueva.numEntrenamiento(self.pantalla, self.tactica.tituloAmpliado(), self.numPosiciones, pos=self.posSiguiente) if pos is not None: self.posSiguiente = pos - 1 self.tactica.ponPosActual(self.posSiguiente) self.ent_siguiente()
def jugar(self, numero=None): if self.estado == kJugando: self.estado = kFinJuego self.desactivaTodas() if numero is None: pos = self.pgn.primeroSinHacer() + 1 numero = DatosNueva.numEntrenamiento(self.pantalla, _("Find all moves"), pos, etiqueta=_("Level"), pos=pos, mensAdicional="<b>" + _( "Movements must be indicated in the following order: King, Queen, Rook, Bishop, Knight and Pawn.") + "</b>") if numero is None: return numero -= 1 fen = self.pgn.dame(numero) self.numero = numero cp = ControlPosicion.ControlPosicion() cp.leeFen(fen) self.siJugamosConBlancas = self.siBlancas = cp.siBlancas if self.siBlancas: siP = self.siJugador else: siP = not self.siJugador self.ponPiezasAbajo(siP) self.ponPosicion(cp) self.cp = cp self.refresh() self.ml.ponFen(fen) self.liMovs = self.ml.dameMovimientos() # Creamos un avariable para controlar que se mueven en orden d = {} fchs = "KQRBNP" if not cp.siBlancas: fchs = fchs.lower() for k in fchs: d[k] = "" for mov in self.liMovs: mov.pon_a1h8() mov.siElegido = False pz = mov.pz d[pz] += pz self.ordenPZ = "" for k in fchs: self.ordenPZ += d[k] self.errores = 0 self.iniTiempo = time.time() self.pendientes = len(self.liMovs) self.estado = kJugando self.tablero.quitaFlechas() mens = "" if cp.enroques: if ("K" if cp.siBlancas else "k" ) in cp.enroques: mens = "O-O" if ("Q" if cp.siBlancas else "q" ) in cp.enroques: if mens: mens += " + " mens += "O-O-O" if mens: mens = _("Castling moves possible") + ": " + mens if cp.alPaso != "-": mens += " " + _("En passant") + ": " + cp.alPaso self.pantalla.ponRotulo1(mens) self.nivel = numero self.siBlancas = cp.siBlancas self.ponRotulo2n() self.pantalla.ponToolBar(( k_abandonar, )) self.pantalla.base.pgn.goto(numero, 0) self.activaColor(self.siBlancas)
def lanza(self, siFavoritos=True): self.comprueba() liFavoritos = None if siFavoritos: liFav = self.procesador.configuracion.liFavoritos if liFav: li = [] for elem in liFav: if elem in self.dicMenu: li.append(self.dicMenu[elem]) liFavoritos = li if liFavoritos: menu = self.menuFavoritos(liFavoritos) else: menu = self.menu resp = menu.lanza() if resp: if type(resp) == str: if resp == "menu_global": self.lanza(False) elif resp == "gm": self.entrenaGM() elif resp.startswith("mate"): self.jugarMate(int(resp[-1])) elif resp == "bmt": self.bmt() elif resp == "polyglot": self.entrenaBooks() elif resp.startswith("resistance"): self.resistance(resp[10:]) elif resp in ["j60_rival", "j60_jugador"]: self.jugar60(resp == "j60_jugador") elif resp == "aperturas": self.aperturas() elif resp == "dailytest": self.dailyTest() elif resp == "potencia": self.potencia() elif resp == "visualiza": self.visualiza() elif resp.startswith("tactica|"): nada, tipo, nombre, carpeta, ini = resp.split("|") self.tacticas(tipo, nombre, carpeta, ini) elif resp.startswith("remtactica|"): nada, carpeta, nombre = resp.split("|") self.tacticaRemove(carpeta, nombre) elif resp.startswith("puente_"): self.puente(int(resp[7:])) elif resp.startswith("horses_"): test = int(resp[7]) icl, icn, tit = self.horsesDef[test] icon = VarGen.todasPiezas.icono(icl, icn) self.horses(test, tit, icon) elif resp.startswith("ep_"): um = self.procesador.unMomento() entreno = resp[3:].replace("\\", "/") if "/" in entreno: dicTraining = TrListas.dicTraining() titentreno = "" for x in entreno[:-4].split("/")[1:]: titentreno += dicTraining.get(x, x) + "/" titentreno = titentreno[:-1] with Util.OpenCodec(entreno) as f: todo = f.read().strip() liEntrenamientos = todo.split("\n") nPosiciones = len(liEntrenamientos) um.final() if nPosiciones == 0: return elif nPosiciones == 1: pos = 1 jump = False else: db = Util.DicSQL(self.configuracion.ficheroTrainings) posUltimo = db[entreno] if posUltimo is None: posUltimo = 1 resp = DatosNueva.numPosicion(self.procesador.pantalla, titentreno, nPosiciones, posUltimo) if resp is None: return pos, tipo, jump = resp db.close() if tipo.startswith("r"): if tipo == "rk": random.seed(pos) random.shuffle(liEntrenamientos) self.procesador.entrenaPos(pos, nPosiciones, titentreno, liEntrenamientos, entreno, jump) elif resp == "learnPGN": self.learnPGN() elif resp == "playPGN": self.playPGN() elif resp == "lucaselo": self.procesador.lucaselo(False) elif resp == "micelo": self.procesador.micelo(False) elif resp.startswith("fics"): self.procesador.ficselo(False, int(resp[4:])) elif resp.startswith("fide"): self.procesador.fideelo(False, int(resp[4:])) elif resp.startswith("map_"): nada, mapa = resp.split("_") self.procesador.trainingMap(mapa) elif resp == "transsiberian": self.procesador.showRoute() elif resp == "everest": self.everest() elif resp.startswith("tol_"): self.turn_on_lights(resp[4:]) elif resp == "washing_machine": self.washing_machine() else: if resp <= -100: self.menu = None # ya que puede cambiar y la etiqueta es diferente mem = Memoria.Memoria(self.procesador) mem.lanza(abs(resp) - 100)
def jugar(self, numero=None): if self.estado == kJugando: self.estado = kFinJuego self.desactivaTodas() if numero is None: pos = self.pgn.primeroSinHacer() + 1 numero = DatosNueva.numEntrenamiento( self.pantalla, _("Find all moves"), pos, etiqueta=_("Level"), pos=pos, mensAdicional="<b>" + _("Movements must be indicated in the following order: King, Queen, Rook, Bishop, Knight and Pawn." ) + "</b>") if numero is None: return numero -= 1 fen = self.pgn.dame(numero) self.numero = numero cp = ControlPosicion.ControlPosicion() cp.leeFen(fen) self.siJugamosConBlancas = self.siBlancas = cp.siBlancas if self.siBlancas: siP = self.siJugador else: siP = not self.siJugador self.ponPiezasAbajo(siP) self.ponPosicion(cp) self.cp = cp self.refresh() LCEngine.setFen(fen) self.liMovs = LCEngine.getExMoves() # Creamos un avariable para controlar que se mueven en orden d = {} fchs = "KQRBNP" if not cp.siBlancas: fchs = fchs.lower() for k in fchs: d[k] = "" for mov in self.liMovs: mov.siElegido = False pz = mov.pieza() d[pz] += pz self.ordenPZ = "" for k in fchs: self.ordenPZ += d[k] self.errores = 0 self.iniTiempo = time.time() self.pendientes = len(self.liMovs) self.estado = kJugando self.tablero.quitaFlechas() mens = "" if cp.enroques: if ("K" if cp.siBlancas else "k") in cp.enroques: mens = "O-O" if ("Q" if cp.siBlancas else "q") in cp.enroques: if mens: mens += " + " mens += "O-O-O" if mens: mens = _("Castling moves possible") + ": " + mens if cp.alPaso != "-": mens += " " + _("En passant") + ": " + cp.alPaso self.pantalla.ponRotulo1(mens) self.nivel = numero self.siBlancas = cp.siBlancas self.ponRotulo2n() self.pantalla.ponToolBar((k_abandonar, )) self.pantalla.base.pgn.goto(numero, 0) self.activaColor(self.siBlancas)
def lanza(self, siFavoritos=True): self.comprueba() liFavoritos = None if siFavoritos: liFav = self.procesador.configuracion.liFavoritos if liFav: li = [] for elem in liFav: if elem in self.dicMenu: li.append(self.dicMenu[elem]) liFavoritos = li if liFavoritos: menu = self.menuFavoritos(liFavoritos) else: menu = self.menu resp = menu.lanza() if resp: siStr = type(resp) == type("") if siStr: if resp == "menu_global": self.lanza(False) elif resp == "gm": self.entrenaGM() elif resp.startswith("mate"): self.jugarMate(int(resp[-1])) elif resp == "bmt": self.bmt() elif resp == "polyglot": self.entrenaBooks() elif resp.startswith("boxing"): self.boxing(resp[6:]) elif resp in ["j60_rival", "j60_jugador"]: self.jugar60(resp == "j60_jugador") elif resp == "aperturas": self.aperturas() elif resp == "dailytest": self.dailyTest() elif resp == "potencia": self.potencia() elif resp == "visualiza": self.visualiza() elif resp.startswith("tactica|"): nada, tipo, nombre, carpeta, ini = resp.split("|") self.tacticas(tipo, nombre, carpeta, ini) elif resp.startswith("remtactica|"): nada, carpeta, nombre = resp.split("|") self.tacticaRemove(carpeta, nombre) elif resp.startswith("puente_"): self.puente(int(resp[7:])) elif resp.startswith("horses_"): test = int(resp[7]) icl, icn, tit = self.horsesDef[test] icon = VarGen.todasPiezas.icono(icl, icn) self.horses(test, tit, icon) elif resp.startswith("ep_"): um = self.procesador.unMomento() entreno = resp[3:].replace("\\", "/") if "/" in entreno: dicTraining = TrListas.dicTraining() titentreno = "" for x in entreno[:-4].split("/")[1:]: titentreno += dicTraining.get(x, x) + "/" titentreno = titentreno[:-1] f = PGNreader.openCodec(entreno) todo = f.read().strip() f.close() liEntrenamientos = todo.split("\n") nPosiciones = len(liEntrenamientos) um.final() if nPosiciones == 0: return elif nPosiciones == 1: pos = 1 jump = False else: db = Util.DicSQL(self.configuracion.ficheroTrainings) posUltimo = db[entreno] if posUltimo is None: posUltimo = 1 resp = DatosNueva.numPosicion(self.procesador.pantalla, titentreno, nPosiciones, posUltimo) if resp is None: return pos, tipo, jump = resp db.close() if tipo.startswith( "r" ): if tipo == "rk": random.seed(pos) random.shuffle(liEntrenamientos) self.procesador.entrenaPos(pos, nPosiciones, titentreno, liEntrenamientos, entreno, jump) elif resp == "learnPGN": self.learnPGN() elif resp == "lucaselo": self.procesador.lucaselo(False) elif resp == "micelo": self.procesador.micelo(False) elif resp.startswith("fics"): self.procesador.ficselo(False, int(resp[4:])) elif resp.startswith("fide"): self.procesador.fideelo(False, int(resp[4:])) elif resp.startswith("map_"): nada, mapa = resp.split("_") self.procesador.trainingMap(mapa) else: if resp <= -100: self.menu = None # ya que puede cambiar y la etiqueta es diferente mem = Memoria.Memoria(self.procesador) mem.lanza(abs(resp) - 100)