Exemple #1
0
        public void Run(IUIHandler uiHandler)
        {
            for (int i = 0; i < _rounds; i++)
            {
                uiHandler.WriteMessage();
                uiHandler.WriteMessage($"Turno { i + 1 }");
                uiHandler.WriteMessage("La parola è...");

                string word = _wordsRepository.GetRandomWord(5);
                uiHandler.WriteMessage(word.ToUpper());

                uiHandler.WriteMessage();
                uiHandler.WriteMessage("GO!!!!");
                DateTime startTime = DateTime.Now;

                DateTime?endTime = null;
                do
                {
                    string candidateWord = uiHandler.AskForString();

                    if (_wordsRepository.IsAnagram(word, candidateWord))
                    {
                        endTime = DateTime.Now;
                        uiHandler.WriteMessage($"Giusto! { candidateWord } è un anagramma di { word }");
                        break;
                    }
                    else
                    {
                        uiHandler.WriteMessage($"Non è corretto! Ti restano { TimeLeft(startTime) } secondi");
                    }
                }while (!TimeIsOver(startTime));

                int roundPoints = CalculateRoundPoints(startTime, endTime);
                uiHandler.WriteMessage($"Turno {i + 1} terminato. Hai conquistato { roundPoints } punti e in totale sei a { _points }");

                uiHandler.WriteMessage();
                uiHandler.AskForString("(invio per iniziare il prossimo turno)");
            }

            uiHandler.WriteMessage();
            uiHandler.WriteMessage($"Il gioco è terminato. Hai totalizzato { _points } punti");
        }