def editar(self, numero, siEngineActivo=False):
        import Code.Variantes as Variantes

        gestor = self.owner.wParent.gestor

        siCompetitivo = False
        if hasattr(gestor, "siCompetitivo"):
            if gestor.siCompetitivo:
                siCompetitivo = gestor.estado != kFinJuego

        if siCompetitivo:
            siEngineActivo = False

        fen = self.jg.posicionBase.fen()
        if numero == -1:
            pgn = ""
        else:
            pgn = self.liVariantes[numero].pgnBaseRAW()

        resp = Variantes.editaVariante(gestor.procesador, gestor, fen, pgn, siEngineActivo=siEngineActivo, siCompetitivo=siCompetitivo)
        if resp:
            lineaPGN, pv = resp
            fen = self.jg.posicionBase.fen()

            uno = PGN.UnPGN()
            uno.leeTexto('[FEN "%s"]\n%s' % (fen, lineaPGN))
            if numero == -1:
                self.liVariantes.append(uno.partida)
            else:
                self.liVariantes[numero] = uno.partida
            self.guardar()
            self.mostrar()
예제 #2
0
    def editaVariante(self, linea, siEngineActivo=False):
        import Code.Variantes as Variantes

        gestor = self.wParent.gestor
        pos, jg = gestor.jugadaActiva()
        if jg is None:
            return None
        fen = jg.posicionBase.fen()

        return Variantes.editaVariante(gestor.procesador, gestor, fen, linea, siEngineActivo=siEngineActivo)
예제 #3
0
    def editaVariante(self, linea, siEngineActivo=False):
        import Code.Variantes as Variantes

        gestor = self.wParent.gestor
        pos, jg = gestor.jugadaActiva()
        if jg is None:
            return None
        fen = jg.posicionBase.fen()

        return Variantes.editaVariante(gestor.procesador,
                                       gestor,
                                       fen,
                                       linea,
                                       siEngineActivo=siEngineActivo)
예제 #4
0
    def editaVariante(self, linea, siEngineActivo=False):
        import Code.Variantes as Variantes

        siCompetitivo = False
        if hasattr(self.wParent, "gestor") and hasattr(self.wParent.gestor,
                                                       "siCompetitivo"):
            if self.wParent.gestor.siCompetitivo:
                siCompetitivo = self.wParent.gestor.estado != kFinJuego

        if siCompetitivo:
            siEngineActivo = False

        gestor = self.wParent.gestor
        pos, jg = gestor.jugadaActiva()
        if jg is None:
            return None
        fen = jg.posicionBase.fen()

        return Variantes.editaVariante(gestor.procesador,
                                       gestor,
                                       fen,
                                       linea,
                                       siEngineActivo=siEngineActivo,
                                       siCompetitivo=siCompetitivo)
예제 #5
0
    def editar(self, fila):

        if fila is None:
            nombre = ""
            eco = ""
            pgn = ""
            estandar = True
            titulo = _("New opening")

        else:
            reg = self.lista[fila]

            nombre = reg["NOMBRE"]
            eco = reg["ECO"]
            pgn = reg["PGN"]
            estandar = reg["ESTANDAR"]

            titulo = nombre

        # Datos
        liGen = [(None, None)]
        liGen.append((_("Name") + ":", nombre))
        config = FormLayout.Editbox("ECO", ancho=30, rx="[A-Z, a-z][0-9][0-9]")
        liGen.append((config, eco))
        liGen.append((_("Add to standard list") + ":", estandar))

        # Editamos
        resultado = FormLayout.fedit(liGen,
                                     title=titulo,
                                     parent=self,
                                     anchoMinimo=460,
                                     icon=Iconos.Apertura())
        if resultado is None:
            return

        accion, liResp = resultado
        nombre = liResp[0].strip()
        if not nombre:
            return
        eco = liResp[1].upper()
        estandar = liResp[2]

        fen = ControlPosicion.FEN_INICIAL

        self.procesador.procesador = self.procesador  # ya que editaVariante espera un gestor

        resp = Variantes.editaVariante(self.procesador,
                                       self.procesador,
                                       fen,
                                       pgn,
                                       titulo=nombre,
                                       siBlancasAbajo=True)

        if resp:
            pgn, a1h8 = resp

            reg = {}
            reg["NOMBRE"] = nombre
            reg["ECO"] = eco
            reg["PGN"] = pgn
            reg["A1H8"] = a1h8
            reg["ESTANDAR"] = estandar

            if fila is None:
                self.lista.append(reg)
                self.grid.refresh()
                self.grabar()
            else:
                self.lista[fila] = reg
            self.grid.refresh()
            self.grabar()
예제 #6
0
    def editar(self, fila):

        if fila is None:
            nombre = ""
            eco = ""
            pgn = ""
            estandar = True
            titulo = _("New opening")

        else:
            reg = self.lista[fila]

            nombre = reg["NOMBRE"]
            eco = reg["ECO"]
            pgn = reg["PGN"]
            estandar = reg["ESTANDAR"]

            titulo = nombre

        # Datos
        liGen = [(None, None)]
        liGen.append(( _("Name") + ":", nombre ))
        config = FormLayout.Editbox("ECO", ancho=30, rx="[A-Z, a-z][0-9][0-9]")
        liGen.append((config, eco ))
        liGen.append(( _("Add to standard list") + ":", estandar ))

        # Editamos
        resultado = FormLayout.fedit(liGen, title=titulo, parent=self, anchoMinimo=460, icon=Iconos.Apertura())
        if resultado is None:
            return

        accion, liResp = resultado
        nombre = liResp[0].strip()
        if not nombre:
            return
        eco = liResp[1].upper()
        estandar = liResp[2]

        fen = ControlPosicion.FEN_INICIAL

        self.procesador.procesador = self.procesador  # ya que editaVariante espera un gestor

        resp = Variantes.editaVariante(self.procesador, self.procesador, fen, pgn, titulo=nombre)

        if resp:
            pgn, a1h8 = resp

            reg = {}
            reg["NOMBRE"] = nombre
            reg["ECO"] = eco
            reg["PGN"] = pgn
            reg["A1H8"] = a1h8
            reg["ESTANDAR"] = estandar

            if fila is None:
                self.lista.append(reg)
                self.grid.refresh()
                self.grabar()
            else:
                self.lista[fila] = reg
            self.grid.refresh()
            self.grabar()
예제 #7
0
    def editar(self, fila):

        if fila is None:
            name = ""
            eco = ""
            pgn = ""
            estandar = True
            titulo = _("New opening")

        else:
            reg = self.lista[fila]

            name = reg["NOMBRE"]
            eco = reg["ECO"]
            pgn = reg["PGN"]
            estandar = reg["ESTANDAR"]

            titulo = name

        # Datos
        liGen = [(None, None)]
        liGen.append((_("Name") + ":", name))
        config = FormLayout.Editbox("ECO", ancho=30, rx="[A-Z, a-z][0-9][0-9]")
        liGen.append((config, eco))
        liGen.append((_("Add to standard list") + ":", estandar))

        # Editamos
        resultado = FormLayout.fedit(liGen,
                                     title=titulo,
                                     parent=self,
                                     anchoMinimo=460,
                                     icon=Iconos.Apertura())
        if resultado is None:
            return

        accion, liResp = resultado
        name = liResp[0].strip()
        if not name:
            return
        eco = liResp[1].upper()
        estandar = liResp[2]

        fen = FEN_INITIAL

        self.procesador.procesador = self.procesador  # ya que editaVariante espera un gestor

        if pgn:
            ok, game = Game.pgn_game(pgn)
            if not ok:
                game = Game.Game()
        else:
            game = Game.Game()

        resp = Variantes.editaVariante(self.procesador,
                                       game,
                                       titulo=name,
                                       is_white_bottom=True)

        if resp:
            game = resp

            reg = {}
            reg["NOMBRE"] = name
            reg["ECO"] = eco
            reg["PGN"] = game.pgnBaseRAW()
            reg["A1H8"] = game.pv()
            reg["ESTANDAR"] = estandar

            if fila is None:
                self.lista.append(reg)
                self.grid.refresh()
                self.grabar()
            else:
                self.lista[fila] = reg
            self.grid.refresh()
            self.grabar()