Exemple #1
0
 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()
Exemple #2
0
    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)
Exemple #3
0
    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()
Exemple #5
0
    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()
Exemple #6
0
    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)
Exemple #7
0
    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)
Exemple #8
0
 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()
Exemple #9
0
    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)
Exemple #10
0
    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)