def create_menu_basic(self, menu, xopcion):
        menu.separador()
        menu_basic = menu.submenu(_("Basics"), Iconos.Training_Basic())

        menu2 = menu_basic.submenu(_("Check your memory on a chessboard"),
                                   Iconos.Memoria())

        mem = Memory.Memoria(self.procesador)
        categorias = CompetitionWithTutor.Categorias()

        for x in range(6):
            cat = categorias.number(x)
            txt = cat.name()

            nm = mem.nivel(x)
            if nm >= 0:
                txt += " %s %d" % (_("Level"), nm + 1)

            xopcion(menu2,
                    -100 - x,
                    txt,
                    cat.icono(),
                    is_disabled=not mem.is_active(x))

        menu_basic.separador()

        menu2 = menu_basic.submenu(_("Find all moves"), Iconos.FindAllMoves())
        xopcion(menu2, "find_all_moves_rival", _("Opponent"),
                Iconos.PuntoNaranja())
        xopcion(menu2, "find_all_moves_player", _("Player"),
                Iconos.PuntoAzul())

        menu_basic.separador()
        self.horsesDef = hd = {
            1: ("N", "Alpha", _("Basic test")),
            2: ("p", "Fantasy", _("Four pawns test")),
            3: ("Q", "Pirat", _("Jonathan Levitt test")),
            4: ("n", "Spatial", _("Basic test") + ": a1"),
            5: ("N", "Cburnett", _("Basic test") + ": e4"),
        }
        menu2 = menu_basic.submenu(_("Becoming a knight tamer"),
                                   Iconos.Knight())
        vicon = Code.todasPiezas.icono
        icl, icn, tit = hd[1]
        menu3 = menu2.submenu(tit, vicon(icl, icn))
        xopcion(menu3, "horses_1", tit, vicon(icl, icn))
        menu3.separador()
        icl, icn, tit = hd[4]
        xopcion(menu3, "horses_4", tit, vicon(icl, icn))
        menu3.separador()
        icl, icn, tit = hd[5]
        xopcion(menu3, "horses_5", tit, vicon(icl, icn))
        menu2.separador()
        icl, icn, tit = hd[2]
        xopcion(menu2, "horses_2", tit, vicon(icl, icn))
        menu2.separador()
        icl, icn, tit = hd[3]
        xopcion(menu2, "horses_3", tit, vicon(icl, icn))

        menu_basic.separador()
        menu2 = menu_basic.submenu(_("Moves between two positions"),
                                   Iconos.Puente())
        rp = QTVarios.rondoPuntos()
        for x in range(1, 11):
            xopcion(menu2, "puente_%d" % x, "%s %d" % (_("Level"), x),
                    rp.otro())

        menu_basic.separador()
        xopcion(menu_basic, "visualiza", _("The board at a glance"),
                Iconos.Gafas())

        menu_basic.separador()
        menu2 = menu_basic.submenu(_("Coordinates"), Iconos.Coordinates())
        xopcion(menu2, "coordinates_basic", _("Basic"), Iconos.West())
        menu2.separador()
        xopcion(menu2, "coordinates_blocks", _("By blocks"), Iconos.Blocks())

        menu_basic.separador()
        xopcion(menu_basic, "anotar", _("Writing down moves of a game"),
                Iconos.Write())
Beispiel #2
0
    def creaMenu(self):
        dicMenu = {}
        menu = QTVarios.LCMenu(self.parent)

        talpha = Controles.TipoLetra("Chess Alpha 2",
                                     self.configuracion.x_menu_points + 4)

        def xopcion(menu, key, texto, icono, is_disabled=False):
            if "KP" in texto:
                k2 = texto.index("K", 2)
                texto = texto[:k2] + texto[k2:].lower()
                menu.opcion(key, texto, icono, is_disabled, tipoLetra=talpha)
            else:
                menu.opcion(key, texto, icono, is_disabled)
            dicMenu[key] = (self.menu_run, texto, icono, is_disabled)

        # Posiciones de entrenamiento --------------------------------------------------------------------------
        self.menuFNS(menu, _("Training positions"), xopcion)
        menu.separador()

        # GM ---------------------------------------------------------------------------------------------------
        xopcion(menu, "gm", _("Play like a GrandMaster"), Iconos.GranMaestro())
        menu.separador()

        # Mate --------------------------------------------------------------------------------------------------
        menu1 = menu.submenu(_("Training mates"), Iconos.Mate())
        for mate in range(1, 8):
            xopcion(menu1, "mate%d" % mate, _X(_("Mate in %1"), str(mate)),
                    Iconos.PuntoAzul())
            menu1.separador()
        menu.separador()

        # BMT -------------------------------------------------------------------------------------------
        xopcion(menu, "bmt", _("Find best move"), Iconos.BMT())
        menu.separador()

        # Resistencia ------------------------------------------------------------------------------------------
        menu1 = menu.submenu(_("Resistance Test"), Iconos.Resistencia())
        nico = Util.Rondo(Iconos.Verde(), Iconos.Azul(), Iconos.Amarillo(),
                          Iconos.Naranja())
        xopcion(menu1, "resistance", _("Normal"), nico.otro())
        xopcion(menu1, "resistancec", _("Blindfold chess"), nico.otro())
        xopcion(menu1, "resistancep1", _("Hide only our pieces"), nico.otro())
        xopcion(menu1, "resistancep2", _("Hide only opponent pieces"),
                nico.otro())
        menu.separador()

        # DailyTest ------------------------------------------------------------------------------------------------
        xopcion(menu, "dailytest", _("Your daily test"), Iconos.DailyTest())
        menu.separador()

        # Tacticas ---------------------------------------------------------------------------------------------
        menu1 = menu.submenu(_("Learn tactics by repetition"),
                             Iconos.Tacticas())
        nico = Util.Rondo(Iconos.Amarillo(), Iconos.Naranja(), Iconos.Verde(),
                          Iconos.Azul(), Iconos.Magenta())
        dicTraining = TrListas.dicTraining()

        def trTraining(txt):
            return dicTraining.get(txt, txt)

        def menu_tacticas(submenu, tipo, carpeta_base, lista):
            if os.path.isdir(carpeta_base):
                for entry in os.scandir(carpeta_base):
                    if entry.is_dir():
                        carpeta = entry.path
                        ini = os.path.join(carpeta, "Config.ini")
                        if os.path.isfile(ini):
                            name = entry.name
                            xopcion(
                                submenu,
                                "tactica|%s|%s|%s|%s" %
                                (tipo, name, carpeta, ini),
                                trTraining(name),
                                nico.otro(),
                            )
                            menu1.separador()
                            lista.append((carpeta, name))
                        else:
                            submenu1 = submenu.submenu(entry.name, nico.otro())
                            menu_tacticas(submenu1, tipo, carpeta, lista)
            return lista

        menu_tacticas(menu1, TACTICS_BASIC, Code.path_resource("Tactics"), [])
        lista = []
        carpetaTacticasP = os.path.join(self.configuracion.dirPersonalTraining,
                                        "Tactics")
        if os.path.isdir(carpetaTacticasP):
            submenu1 = menu1.submenu(_("Personal tactics"), nico.otro())
            lista = menu_tacticas(submenu1, TACTICS_PERSONAL, carpetaTacticasP,
                                  lista)
            if lista:
                ico = Iconos.Delete()
                menub = menu1.submenu(_("Remove"), ico)
                for carpeta, name in lista:
                    xopcion(menub, "remtactica|%s|%s" % (carpeta, name),
                            trTraining(name), ico)

        menu.separador()

        # Longs ----------------------------------------------------------------------------------------
        menu1 = menu.submenu(_("Long-term trainings"), Iconos.Longhaul())
        # Maps
        menu2 = menu1.submenu(_("Training on a map"), Iconos.Maps())
        xopcion(menu2, "map_Africa", _("Africa map"), Iconos.Africa())
        menu2.separador()
        xopcion(menu2, "map_WorldMap", _("World map"), Iconos.WorldMap())
        # Rail
        menu1.separador()
        xopcion(menu1, "transsiberian", _("Transsiberian Railway"),
                Iconos.Train())
        # Everest
        menu1.separador()
        xopcion(menu1, "everest", _("Expeditions to the Everest"),
                Iconos.Trekking())
        # TOL
        menu1.separador()
        menu2 = menu1.submenu(_("Turn on the lights"), Iconos.TOL())
        menu.separador()
        menu3 = menu2.submenu(_("Memory mode"), Iconos.TOL())
        xopcion(menu3, "tol_uned_easy",
                "%s (%s)" % (_("UNED chess school"), _("Initial")),
                Iconos.Uned())
        menu3.separador()
        xopcion(menu3, "tol_uned",
                "%s (%s)" % (_("UNED chess school"), _("Complete")),
                Iconos.Uned())
        menu3.separador()
        xopcion(menu3, "tol_uwe_easy",
                "%s (%s)" % (_("Uwe Auerswald"), _("Initial")), Iconos.Uwe())
        menu3.separador()
        xopcion(menu3, "tol_uwe",
                "%s (%s)" % (_("Uwe Auerswald"), _("Complete")), Iconos.Uwe())
        menu2.separador()
        menu3 = menu2.submenu(_("Calculation mode"), Iconos.Calculo())
        xopcion(menu3, "tol_uned_easy_calc",
                "%s (%s)" % (_("UNED chess school"), _("Initial")),
                Iconos.Uned())
        menu3.separador()
        xopcion(menu3, "tol_uned_calc",
                "%s (%s)" % (_("UNED chess school"), _("Complete")),
                Iconos.Uned())
        menu3.separador()
        xopcion(menu3, "tol_uwe_easy_calc",
                "%s (%s)" % (_("Uwe Auerswald"), _("Initial")), Iconos.Uwe())
        menu3.separador()
        xopcion(menu3, "tol_uwe_calc",
                "%s (%s)" % (_("Uwe Auerswald"), _("Complete")), Iconos.Uwe())
        # Washing
        menu2.separador()
        xopcion(menu2, "tol_oneline", _("In one line"), Iconos.TOLline())
        menu1.separador()
        xopcion(menu1, "washing_machine", _("The Washing Machine"),
                Iconos.WashingMachine())

        # Cebras ---------------------------------------------------------------------------------------------------
        menu.separador()
        # menu1 = menu.submenu(_("Resources for zebras"), Iconos.Cebra())
        menu2 = menu.submenu(_("Check your memory on a chessboard"),
                             Iconos.Memoria())

        mem = Memoria.Memoria(self.procesador)
        categorias = CompetitionWithTutor.Categorias()

        for x in range(6):
            cat = categorias.number(x)
            txt = cat.name()

            nm = mem.nivel(x)
            if nm >= 0:
                txt += " %s %d" % (_("Level"), nm + 1)

            xopcion(menu2,
                    -100 - x,
                    txt,
                    cat.icono(),
                    is_disabled=not mem.is_active(x))

        menu.separador()

        menu2 = menu.submenu(_("Find all moves"), Iconos.FindAllMoves())
        xopcion(menu2, "find_all_moves_rival", _("Opponent"),
                Iconos.PuntoNaranja())
        xopcion(menu2, "find_all_moves_player", _("Player"),
                Iconos.PuntoAzul())

        menu.separador()
        self.horsesDef = hd = {
            1: ("N", "Alpha", _("Basic test")),
            2: ("p", "Fantasy", _("Four pawns test")),
            3: ("Q", "Pirat", _("Jonathan Levitt test")),
            4: ("n", "Spatial", _("Basic test") + ": a1"),
            5: ("N", "Cburnett", _("Basic test") + ": e4"),
        }
        menu2 = menu.submenu(_("Becoming a knight tamer"), Iconos.Knight())
        vicon = Code.todasPiezas.icono
        icl, icn, tit = hd[1]
        menu3 = menu2.submenu(tit, vicon(icl, icn))
        xopcion(menu3, "horses_1", tit, vicon(icl, icn))
        menu3.separador()
        icl, icn, tit = hd[4]
        xopcion(menu3, "horses_4", tit, vicon(icl, icn))
        menu3.separador()
        icl, icn, tit = hd[5]
        xopcion(menu3, "horses_5", tit, vicon(icl, icn))
        menu2.separador()
        icl, icn, tit = hd[2]
        xopcion(menu2, "horses_2", tit, vicon(icl, icn))
        menu2.separador()
        icl, icn, tit = hd[3]
        xopcion(menu2, "horses_3", tit, vicon(icl, icn))

        menu.separador()
        menu2 = menu.submenu(_("Moves between two positions"), Iconos.Puente())
        rp = QTVarios.rondoPuntos()
        for x in range(1, 11):
            xopcion(menu2, "puente_%d" % x, "%s %d" % (_("Level"), x),
                    rp.otro())

        menu.separador()
        xopcion(menu, "potencia", _("Determine your calculating power"),
                Iconos.Potencia())

        menu.separador()
        menu2 = menu.submenu(_("Learn a game"), Iconos.School())
        xopcion(menu2, "learnPGN", _("Memorizing their moves"),
                Iconos.LearnGame())
        menu2.separador()
        xopcion(menu2, "playGame", _("Playing against"), Iconos.Law())

        menu.separador()
        xopcion(menu, "visualiza", _("The board at a glance"), Iconos.Gafas())

        menu.separador()
        menu2 = menu.submenu(_("Coordinates"), Iconos.Coordinates())
        xopcion(menu2, "coordinates_basic", _("Basic"), Iconos.West())
        menu2.separador()
        xopcion(menu2, "coordinates_blocks", _("By blocks"), Iconos.Blocks())

        menu.separador()
        xopcion(menu, "anotar", _("Writing down moves of a game"),
                Iconos.Write())

        menu.separador()
        xopcion(menu, "captures", _("Captures and threats in a game"),
                Iconos.Captures())

        menu.separador()
        xopcion(menu, "counts", _("Count moves"), Iconos.Count())

        menu.separador()
        xopcion(menu, "15mate", _("Mate in 1½"), Iconos.Mate15())

        menu.separador()
        xopcion(menu, "endings_gtb", _("Endings with Gaviota Tablebases"),
                Iconos.Finales())

        return menu, dicMenu