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(); }