Beispiel #1
0
        public void start()
        {
            List <char> typedLetters         = new List <char>();
            Stopwatch   timer                = new Stopwatch();
            int         dividerMillisecToSec = 1000;

            view.header();
            view.preGameInfo();
            Console.Write("\nEnter your name: ");
            nick = Console.ReadLine();
            Player    player    = new Player(nick);
            TopScores topScores = new TopScores();

            randomCapitalSelection();
            dashCapital = convertStrToDash(capital);
            timer.Start();

            while (player.getLife() > 0)
            {
                Console.WriteLine("\nYour life: " + player.getLife());
                if (player.getLife() == 1)
                {
                    view.printCountryHint(countryHint);
                }
                capitalWithTypedLetters = getCapitalWithTypedLetters(typedLetters);
                Console.WriteLine("\n" + capitalWithTypedLetters);

                if (checkIfWin(capitalWithTypedLetters))
                {
                    timer.Stop();
                    player.setTime(timer.ElapsedMilliseconds / dividerMillisecToSec);
                    break;
                }
                else if (!wordOrLetter())
                {
                    char userInput = userGuess();

                    if (!typedLetters.Contains(userInput))
                    {
                        typedLetters.Add(userInput);
                        player.setAttempts(player.getAttempts() + 1);
                    }
                    else
                    {
                        view.printIfLetterAlreadyEntered(userInput);
                        continue;
                    }
                    if (!checkGuess(userInput))
                    {
                        player.setLife(player.getLife() - 1);
                        view.printIfLetterNotInWord(userInput);
                        view.hangmanArt(player.getLife(), capital);
                    }
                    else
                    {
                        view.printIfLetterInWord(userInput);
                    }
                }
                else
                {
                    wordGuess = wholeWordGuess();
                    player.setAttempts(player.getAttempts() + 1);
                    if (checkIfWin(wordGuess))
                    {
                        timer.Stop();
                        player.setTime(timer.ElapsedMilliseconds / dividerMillisecToSec);
                        break;
                    }
                    else
                    {
                        player.setLife(player.getLife() - 2);
                        view.hangmanArt(player.getLife(), capital);
                        continue;
                    }
                }
            }
            if (player.getTime() != 0)
            {
                saveScoreToFile(player.getNick(), player.getTime(), player.getAttempts());
            }
            topScores.topPlayers();
            view.topPlayers(topScores.bestPlayerSort());
            playAgain();
        }