Пример #1
0
        public void Begin()
        {
            var userName = _massageFactory.LoginMesage();
            var user     = _playerManager.GetByUserName(userName);

            if (user == null)
            {
                var key = _playerManager.Add(new Player {
                    Name = userName
                });
                user = _playerManager.Get(key);
            }
            _massageFactory.PlayerStatisticsMessage(user);

            bool kartoti = true;

            while (kartoti)
            {
                Console.Clear();
                var tema  = SelectSubject();
                var zodis = AtsitiktinisZodzioPasirinkimas(tema);
                if (zodis == null)
                {
                    Console.WriteLine("Temoje nebėra žodžiu, ar norite rinktis kitą temą T/N");
                }
                else
                {
                    _hiddenWordManager = new HiddenWordManager(zodis);
                    bool leidziamaSpeti = true;
                    panaudotiZodziai.Add(zodis);
                    _massageFactory.HangmanPictureMessage(0);
                    Console.WriteLine();
                    Console.WriteLine(_hiddenWordManager.GetHiddedWordStructure());
                    while (leidziamaSpeti)
                    {
                        string spejimas      = _massageFactory.WordInputMessage();
                        bool   arSpetasZodis = ArSpetasZodis(spejimas);
                        if (arSpetasZodis)
                        {
                            bool arTeisinga = ArZodisTeisingas(zodis.Text, spejimas);
                            if (arTeisinga)
                            {
                                _massageFactory.WinGameMessage(zodis.Text);
                            }
                            else
                            {
                                _massageFactory.HangmanPictureMessage(gyvybiuKiekis);
                                _massageFactory.LostGameMessage(zodis.Text);
                            }
                            leidziamaSpeti = false;
                        }
                        else
                        {
                            bool arBuvoSpeta = _hiddenWordManager.HiddenWord.IncorrectGuesses.Contains(spejimas);
                            if (!arBuvoSpeta)
                            {
                                _hiddenWordManager.CheckLetter(spejimas);
                            }
                            if (_hiddenWordManager.HiddenWord.IncorrectGuesses.Count == gyvybiuKiekis)
                            {
                                _massageFactory.HangmanPictureMessage(gyvybiuKiekis);
                                _massageFactory.LostGameMessage(zodis.Text);
                                leidziamaSpeti = false;
                            }
                            else
                            {
                                Console.Clear();
                                _massageFactory.HangmanPictureMessage(_hiddenWordManager.HiddenWord.IncorrectGuesses.Count);
                                _massageFactory.IncorrectLettersListMessage(_hiddenWordManager.HiddenWord.IncorrectGuesses);
                                Console.WriteLine(_hiddenWordManager.GetHiddedWordStructure());
                                if (_hiddenWordManager.HiddenWord.HiddenLetterCount == 0)
                                {
                                    _massageFactory.WinGameMessage(zodis.Text);
                                    leidziamaSpeti = false;
                                }
                            }
                        }
                    }
                }
                _playerManager.AddScoreBoard(GetScoreBoard(zodis, user.PlayerId));

                kartoti = _massageFactory.RepeatGameMessage();
            }
        }