public static List <Slog> GenerateSlogs(bool isGlasFirst, bool IsGlasSecond)
        {
            List <Slog> slogsList = new List <Slog>();

            List <char> glassSymbols   = SymbolInfo.GetBaseCollectionSymbols(true);
            List <char> soglassSymbols = SymbolInfo.GetBaseCollectionSymbols(false);

            List <char> firstList  = (isGlasFirst ? glassSymbols : soglassSymbols);
            List <char> secondList = (isGlasFirst ? (IsGlasSecond ? glassSymbols : soglassSymbols) : glassSymbols);

            for (int i = 0; i < firstList.Count; i++)
            {
                char ic = firstList[i];
                for (int y = 0; y < secondList.Count; y++)
                {
                    char yc = secondList[y];
                    if (ic != yc)
                    {
                        if (ic == 'й')
                        {
                            continue;
                        }
                        if (yc == 'й' && !isGlasFirst)
                        {
                            continue;
                        }
                        Slog slg = new Slog(String.Format("{0}{1}", ic, yc));
                        slogsList.Add(slg);
                    }
                }
            }

            return(slogsList);
        }
        public static List <Slog> ConcatLists(List <Slog> slogListSource, List <Slog> slogListDest)
        {
            List <Slog> slogList = new List <Slog>();

            for (int i = 0; i < slogListSource.Count; i++)
            {
                Slog slg = slogListSource[i];
                slogListDest.Add(slg);
            }

            return(slogList);
        }
Exemple #3
0
        List <string> GetListElements()
        {
            List <string> list = new List <string>();

            currentListMobs = new List <MultiLineObject>();
            Category cat = GetSelectedCategory();

            switch (Settings.Read_Mode)
            {
            case ReadMode.Slova:
                //вывод слов
                //заполнить список с нефильтрованными словами из выбранной категории
                if (Categories_CB.SelectedIndex != 0)
                {
                    if (cat != null)
                    {
                        if (!AddSlovaByRasskazy_CB.Checked)
                        {
                            if (Mix_CB.Checked)    //если включена перемешка - выполним рандомное перемешивание
                            {
                                Settings.MixElementsEnabled = Mix_CB.Checked;
                                cat.SlovaNonFiltered        = Lib.Randomize_ListOfSlovo(cat.SlovaNonFiltered);
                                Mix_CB.Checked = false;
                            }
                            else
                            {
                                Settings.MixElementsEnabled = Mix_CB.Checked;
                            }

                            SetCountLibObject(cat.SlovaNonFiltered.Count, Color.Green, SlovsCount_LBL);
                            foreach (Slovo sl in cat.SlovaNonFiltered)
                            {
                                if (sl.OriginalText.Length <= Settings.BukvFilter)
                                {
                                    list.Add(sl.GetText());
                                }
                            }
                        }
                        else
                        {
                            if (Mix_CB.Checked)    //если включена перемешка - выполним рандомное перемешивание
                            {
                                Settings.MixElementsEnabled = Mix_CB.Checked;
                                cat.SlovaByRasskazy         = Lib.Randomize_ListOfSlovo(cat.SlovaByRasskazy);
                                Mix_CB.Checked = false;
                            }
                            else
                            {
                                Settings.MixElementsEnabled = Mix_CB.Checked;
                            }

                            SetCountLibObject(cat.SlovaByRasskazy.Count, Color.Green, SlovsCount_LBL);
                            foreach (Slovo sl in cat.SlovaByRasskazy)
                            {
                                if (sl.OriginalText.Length <= Settings.BukvFilter)
                                {
                                    list.Add(sl.GetText());
                                }
                            }
                        }
                    }
                }
                else
                {
                    if (!AddSlovaByRasskazy_CB.Checked)
                    {
                        if (Mix_CB.Checked)    //если включена перемешка - выполним рандомное перемешивание
                        {
                            Settings.MixElementsEnabled = Mix_CB.Checked;
                            lib.Slova      = Lib.Randomize_ListOfSlovo(lib.Slova);
                            Mix_CB.Checked = false;
                        }
                        else
                        {
                            Settings.MixElementsEnabled = Mix_CB.Checked;
                        }

                        SetCountLibObject(lib.Slova.Count, Color.Green, SlovsCount_LBL);
                        //заполнить список словами из всех категорий
                        foreach (Slovo sl in lib.Slova)
                        {
                            if (sl.OriginalText.Length <= Settings.BukvFilter)
                            {
                                list.Add(sl.GetText());
                            }
                        }
                    }
                    else
                    {
                        if (Mix_CB.Checked)    //если включена перемешка - выполним рандомное перемешивание
                        {
                            Settings.MixElementsEnabled = Mix_CB.Checked;
                            lib.SlovaByRasskazy         = Lib.Randomize_ListOfSlovo(lib.SlovaByRasskazy);
                            Mix_CB.Checked = false;
                        }
                        else
                        {
                            Settings.MixElementsEnabled = Mix_CB.Checked;
                        }

                        SetCountLibObject(lib.SlovaByRasskazy.Count, Color.Green, SlovsCount_LBL);
                        foreach (Slovo sl in lib.SlovaByRasskazy)
                        {
                            if (sl.OriginalText.Length <= Settings.BukvFilter)
                            {
                                list.Add(sl.GetText());
                            }
                        }
                    }
                }
                SetCountLibObject(list.Count, Color.Blue, SlovsFilteredByBukvCount_LBL);
                break;

            case ReadMode.Predlogenie:
                //вывод предложений
                if (Categories_CB.SelectedIndex != 0)
                {
                    //заполнить список предложениями из выбранной категории
                    cat = GetSelectedCategory();
                    if (cat != null)
                    {
                        if (!AddPredlogenyaByRasskazy_CB.Checked)
                        {
                            if (Mix_CB.Checked)    //если включена перемешка - выполним рандомное перемешивание
                            {
                                Settings.MixElementsEnabled = Mix_CB.Checked;
                                cat.Predlogenia             = Lib.Randomize_ListOfStrings(cat.Predlogenia);
                                Mix_CB.Checked = false;
                            }
                            else
                            {
                                Settings.MixElementsEnabled = Mix_CB.Checked;
                            }

                            SetCountLibObject(cat.Predlogenia.Count, Color.Green, CountPredlogen_LBL);
                            foreach (string p in cat.Predlogenia)
                            {
                                list.Add(p);
                            }
                        }
                        else
                        {
                            if (Mix_CB.Checked)    //если включена перемешка - выполним рандомное перемешивание
                            {
                                Settings.MixElementsEnabled = Mix_CB.Checked;
                                cat.PredlogeniaByRasskazy   = Lib.Randomize_ListOfStrings(cat.PredlogeniaByRasskazy);
                                Mix_CB.Checked = false;
                            }
                            else
                            {
                                Settings.MixElementsEnabled = Mix_CB.Checked;
                            }

                            SetCountLibObject(cat.PredlogeniaByRasskazy.Count, Color.Green, CountPredlogen_LBL);
                            foreach (string p in cat.PredlogeniaByRasskazy)
                            {
                                list.Add(p);
                            }
                        }
                    }
                }
                else
                {
                    if (!AddPredlogenyaByRasskazy_CB.Checked)
                    {
                        if (Mix_CB.Checked)    //если включена перемешка - выполним рандомное перемешивание
                        {
                            Settings.MixElementsEnabled      = Mix_CB.Checked;
                            lib.PredlogeniaFromAllCategories = Lib.Randomize_ListOfStrings(lib.PredlogeniaFromAllCategories);
                            Mix_CB.Checked = false;
                        }
                        else
                        {
                            Settings.MixElementsEnabled = Mix_CB.Checked;
                        }

                        SetCountLibObject(lib.PredlogeniaFromAllCategories.Count, Color.Green, CountPredlogen_LBL);
                        foreach (string p in lib.PredlogeniaFromAllCategories)
                        {
                            list.Add(p);
                        }
                    }
                    else
                    {
                        if (Mix_CB.Checked)    //если включена перемешка - выполним рандомное перемешивание
                        {
                            Settings.MixElementsEnabled = Mix_CB.Checked;
                            lib.PredlogeniaFromAllCategoriesByRasskazy = Lib.Randomize_ListOfStrings(lib.PredlogeniaFromAllCategoriesByRasskazy);
                            Mix_CB.Checked = false;
                        }
                        else
                        {
                            Settings.MixElementsEnabled = Mix_CB.Checked;
                        }

                        SetCountLibObject(lib.PredlogeniaFromAllCategoriesByRasskazy.Count, Color.Green, CountPredlogen_LBL);
                        foreach (string p in lib.PredlogeniaFromAllCategoriesByRasskazy)
                        {
                            list.Add(p);
                        }
                    }
                }
                break;

            case ReadMode.Sloga:
                //генерация и вывод слогов
                int allSlogsCount = Slog.ListSlog_Glas_Glas.Count + Slog.ListSlog_Glas_Soglas.Count + Slog.ListSlog_Soglas_Glas.Count;
                SetCountLibObject(allSlogsCount, Color.Green, FullSlogsCount_LBL);

                switch (Settings.SlogCurrentType)
                {
                case SlogType.Slogs_All:
                    List <Slog> lstAll = Slog.ListAllSlogTypes;
                    SetCountLibObject(lstAll.Count, Color.Green, SlogCountByType_LBL);
                    list = Slog.ConverSlogListToStringList(lstAll);
                    break;

                case SlogType.Slog2_Glas_Glas:
                    SetCountLibObject(Slog.ListSlog_Glas_Glas.Count, Color.Green, SlogCountByType_LBL);
                    list = Slog.ConverSlogListToStringList(Slog.ListSlog_Glas_Glas);
                    break;

                case SlogType.Slog2_glas_Soglas:
                    SetCountLibObject(Slog.ListSlog_Glas_Soglas.Count, Color.Green, SlogCountByType_LBL);
                    list = Slog.ConverSlogListToStringList(Slog.ListSlog_Glas_Soglas);
                    break;

                case SlogType.Slog2_Soglas_Glas:
                    SetCountLibObject(Slog.ListSlog_Soglas_Glas.Count, Color.Green, SlogCountByType_LBL);
                    list = Slog.ConverSlogListToStringList(Slog.ListSlog_Soglas_Glas);
                    break;
                }

                SetCountLibObject(list.Count, Color.Green, SlogCountByZvuk_LBL);
                break;

            case ReadMode.Stishki:
                if (StihNames_CB.SelectedIndex >= 0)
                {
                    if (Categories_CB.SelectedIndex != 0)
                    {
                        if (cat != null)
                        {
                            MultiLineObject mob = Lib.FindMobInListByNameObj(StihNames_CB.SelectedItem.ToString(), cat.Stishki);
                            if (mob != null)
                            {
                                list = mob.ContentList;
                            }
                        }
                    }
                    else
                    {
                        MultiLineObject mob = Lib.FindMobInListByNameObj(StihNames_CB.SelectedItem.ToString(), lib.StishkiFromAllCategories);
                        if (mob != null)
                        {
                            list = mob.ContentList;
                        }
                    }
                }
                break;

            case ReadMode.Skorogovorki:
                if (Categories_CB.SelectedIndex != 0)
                {
                    if (cat != null)
                    {
                        SetCountLibObject(cat.Skorogovorki.Count, Color.Green, FullCountSkorogovorki_LBL);
                        currentListMobs = cat.Skorogovorki;
                    }
                }
                else
                {
                    SetCountLibObject(lib.SkorogovorkiFromAllCategories.Count, Color.Green, FullCountSkorogovorki_LBL);
                    currentListMobs = lib.SkorogovorkiFromAllCategories;
                }
                break;

            case ReadMode.Schitalki:
                if (Categories_CB.SelectedIndex != 0)
                {
                    if (cat != null)
                    {
                        SetCountLibObject(cat.Schitalki.Count, Color.Green, FullSchitalkiCount_LBL);
                        currentListMobs = cat.Schitalki;
                    }
                }
                else
                {
                    SetCountLibObject(lib.SchitalkiFromAllCategories.Count, Color.Green, FullSchitalkiCount_LBL);
                    currentListMobs = lib.SchitalkiFromAllCategories;
                }
                break;

            case ReadMode.Rasskazy:
                if (RasskazyNames_CB.SelectedIndex >= 0)
                {
                    if (Categories_CB.SelectedIndex != 0)
                    {
                        if (cat != null)
                        {
                            MultiLineObject mob = Lib.FindMobInListByNameObj(RasskazyNames_CB.SelectedItem.ToString(), cat.Rasskazy);
                            if (mob != null)
                            {
                                list = mob.ContentList;
                            }
                        }
                    }
                    else
                    {
                        MultiLineObject mob = Lib.FindMobInListByNameObj(RasskazyNames_CB.SelectedItem.ToString(), lib.RasskazyFromAllCategories);
                        if (mob != null)
                        {
                            list = mob.ContentList;
                        }
                    }
                }
                break;

            case ReadMode.Songs:
                if (SongNames_CB.SelectedIndex >= 0)
                {
                    if (Categories_CB.SelectedIndex != 0)
                    {
                        if (cat != null)
                        {
                            MultiLineObject mob = Lib.FindMobInListByNameObj(SongNames_CB.SelectedItem.ToString(), cat.Songs);
                            if (mob != null)
                            {
                                list = mob.ContentList;
                            }
                        }
                    }
                    else
                    {
                        MultiLineObject mob = Lib.FindMobInListByNameObj(SongNames_CB.SelectedItem.ToString(), lib.SongsFromAllCategories);
                        if (mob != null)
                        {
                            list = mob.ContentList;
                        }
                    }
                }
                break;
            }

            if (Settings.Read_Mode != ReadMode.Rasskazy &&
                Settings.Read_Mode != ReadMode.Songs &&
                Settings.Read_Mode != ReadMode.Stishki &&
                Settings.Read_Mode != ReadMode.Schitalki &&
                Settings.Read_Mode != ReadMode.Skorogovorki)
            {
                //if (Mix_CB.Checked)//если включена перемешка - выполним рандомное перемешивание
                //{
                //    Settings.MixElementsEnabled = Mix_CB.Checked;
                //    Lib.Randomize_ListOfStrings(ref list);
                //    Mix_CB.Checked = false;
                //}
                //else
                //    Settings.MixElementsEnabled = Mix_CB.Checked;
            }
            return(list);
        }