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); }
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); }