static void Main(string[] args) { for (int playersNumber = 0; playersNumber < 6; playersNumber++) { TopPlayers[playersNumber] = DefaultTopPlayer; } Random RandomWord = new Random(); while (true) { //main loop, used to restart game automatically Console.Write("\nWelcome to “Hangman” game.Please try to guess my secret word.\nUse 'top' to view the top scoreboard," + "'restart' to start a new game, \n'help' to cheat and 'exit' to quit the game.\n"); int PlayerMistakes = 0; string PlayedWord = Words[RandomWord.Next(0, 10)]; System.Text.StringBuilder PrintedWord = new System.Text.StringBuilder(); System.Text.StringBuilder InputString = new System.Text.StringBuilder(); PrintedWord.Clear(); for (int WordLenght = 0; WordLenght < PlayedWord.Length; WordLenght++) { //makes _ _ _ _ _... PrintedWord.Append("_ "); } Word WordsInGame = new Word(); WordsInGame.SetPlayedWord(PlayedWord); WordsInGame.SetPrintedWord(PrintedWord); while (WordsInGame.GetPrintedWord().Contains('_')) { //start new game Console.WriteLine("The secret word is " + WordsInGame.GetPrintedWord()); Console.Write("Enter your guess: "); InputString.Clear(); InputString.Append(Console.ReadLine()); if (InputString.Length == ONE_LETTER) { InputLetter = (InputString[0]); } if (InputString.Length == ONE_LETTER && WordsInGame.Isletter(char.ToLower(InputLetter))) { if (WordsInGame.CheckForLetter(char.ToLower(InputLetter))) { WordsInGame.WriteTheLetter(char.ToLower(InputLetter)); Console.WriteLine("Good job! You revealed " + WordsInGame.NumberOfInput(InputLetter) + " letter"); } else { Console.WriteLine("Sorry! There are no unrevealed letters " + "\"" + char.ToLower(InputLetter) + "\""); PlayerMistakes++; } } else { bool Restart = false; switch (InputString.ToString()) { case "help": Help(WordsInGame); break; case "exit": Environment.Exit(0); break; case "restart": Restart = true; break; case "top": Top(); break; default: { Console.WriteLine("Incorect input"); PlayerMistakes++; break; } } if (Restart) { Console.WriteLine("Game is Restarted"); break; } } } //end of while if (!WordsInGame.GetPrintedWord().Contains('_')) { Console.WriteLine("The secret word is " + WordsInGame.GetPrintedWord()); Console.Write("\nYou won with " + PlayerMistakes + " mistakes"); bool BetterThanLast = TopPlayers[4].PlayerScore > PlayerMistakes; if (NotUseHelp && BetterThanLast) { Console.Write("\nPlease enter your name for the top scoreboard: "); TopPlayers[GameCounter] = new TopPlayer { PlayerName = Console.ReadLine(), PlayerScore = PlayerMistakes }; if (GameCounter < 5) { GameCounter++; } Array.Sort(TopPlayers, (TopPlayer1, topPlayer2) => TopPlayer1.PlayerScore.CompareTo(topPlayer2.PlayerScore)); Top(); } else if (!BetterThanLast) { Console.Write(" but your result is lower than top scores\n"); } else { Console.Write(" but you have cheated. \nYou are not allowed to enter into the scoreboard.\n"); } PlayerMistakes = 0; NotUseHelp = true; } } //end of master loop }