private void FillGameStartBTN_Click(object sender, RoutedEventArgs e) { bool isCreated = false; int lvl = 0; bool fixedLength = false; bool trainingMode = false; if (FillGameCountUpDown.Value > 0) { try { lvl = LevelCheck(); if (FillGameFixedLength.IsChecked == true) { fixedLength = true; } if (FillGameTrainingMode.IsChecked == true) { trainingMode = true; } isCreated = true; } catch (Exception) { MessageBox.Show("Не удалось создать игру, попробуйте снова."); } if (isCreated) { _fillGame = new FillGame(Serializer.TermList, lvl, (int)FillGameCountUpDown.Value, fixedLength, trainingMode); if (!_isPdfSaving) { FillGamePage fillGamePage = new FillGamePage(_fillGame); fillGamePage.ShowDialog(); } _isPdfSaving = false; } else { MessageBox.Show("Не удалось создать игру, попробуйте снова."); } } else { MessageBox.Show("В словаре недостаточно терминов для начала. Попробуйте добавить слов и выбрать их в редакторе."); } }
public FillGamePage(FillGame game) { InitializeComponent(); this._game = game; this._list = GetRandomList(game.List, game.Count); game.List.FindAll((term => term.ReadyForFillGame)).ToList(); if (_list.Count > 0) { int count = 1; foreach (var gameWord in _list) { string word = gameWord.Word; //вывод самого термина _listOfSkippedWords = GetNumOfSkippedWords(game.Lvl, gameWord.DescriptionWordsAndSplittersList .FindAll((descriptionWord => descriptionWord.IsKeyWord)).Count); _numOfSkipWords += _listOfSkippedWords.FindAll((b => b == true)).Count; TextBlock newWord = new TextBlock { Text = word + " ⸺ ", TextWrapping = TextWrapping.Wrap, FontSize = 20, FontWeight = FontWeights.Bold }; WrapPanel panelForOneWord = new WrapPanel(); panelForOneWord.VerticalAlignment = VerticalAlignment.Top; panelForOneWord.Children.Add(newWord); StringBuilder termBuilder = new StringBuilder(); termBuilder.Append(count.ToString() + ". " + word.ToString() + " - "); count++; foreach (var wordPart in gameWord.DescriptionWordsAndSplittersList) //печать слов из определения { if (wordPart.IsKeyWord && _listOfSkippedWords.Count > 0) { if (_listOfSkippedWords.First() == true) { TextBox skippedWord = new TextBox() { FontSize = 20, MinWidth = 20, Tag = wordPart.Word }; skippedWord.GotKeyboardFocus += SkippedWordOnGotKeyboardFocus; if (game.FixedLength) { skippedWord.MaxLength = wordPart.Word.Length; } panelForOneWord.Children.Add(skippedWord); for (int i = 0; i < wordPart.Word.Length; i++) { termBuilder.Append("_"); } } else { TextBlock skippedWord = new TextBlock() { Text = wordPart.Word, FontSize = 20, TextWrapping = TextWrapping.Wrap }; panelForOneWord.Children.Add(skippedWord); termBuilder.Append(wordPart.Word); } _listOfSkippedWords.RemoveAt(0); } else { TextBlock notSkippedWord = new TextBlock() { Text = wordPart.Word, FontSize = 20, TextWrapping = TextWrapping.Wrap }; panelForOneWord.Children.Add(notSkippedWord); termBuilder.Append(wordPart.Word); } } termBuilder.Append("."); _listOfBuilders.Add(termBuilder); Separator separate = new Separator(); panelForOneWord.Margin = new Thickness(0, 7, 0, 7); stackPanelOutput.Children.Add(panelForOneWord); stackPanelOutput.Children.Add(separate); } } }