Exemplo n.º 1
0
        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("В словаре недостаточно терминов для начала. Попробуйте добавить слов и выбрать их в редакторе.");
            }
        }
Exemplo n.º 2
0
        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);
                }
            }
        }