Untitled
unknown
csharp
7 days ago
4.1 kB
7
Indexable
namespace program; class Hangman { static void Main(string[] args) { string[] hangmanDrawings = CreateHangmanDrawings(); string[] wordArray = CreateWordList(); string selectedWord = DrawRandomWord(wordArray); (string wordToDisplay, int nonLetterCount) = HideWord(selectedWord); GuessWord(selectedWord, wordToDisplay, nonLetterCount, hangmanDrawings); } static void GuessWord(string selectedWord, string wordToDisplay, int nonLetterCount, string[] hangmanDrawings) { int mistakeCount = 0; int revealedLetterCount = 0; string usedLetters = ""; while (revealedLetterCount < selectedWord.Length - nonLetterCount) { Console.Clear(); Console.WriteLine(wordToDisplay); Console.WriteLine(hangmanDrawings[mistakeCount]); Console.WriteLine($"Used letters: {usedLetters}"); Console.Write("Enter a letter: "); char enteredLetter = Console.ReadLine()[0]; if (!usedLetters.Contains(enteredLetter)) { usedLetters += enteredLetter; if (selectedWord.Contains(enteredLetter) && !wordToDisplay.Contains(enteredLetter)) { for (int i = 0; i < selectedWord.Length; i++) { if (selectedWord[i] == enteredLetter) { wordToDisplay = wordToDisplay.Remove(i, 1); wordToDisplay = wordToDisplay.Insert(i, enteredLetter.ToString()); revealedLetterCount++; } } } else { mistakeCount++; if (mistakeCount == hangmanDrawings.Length - 1) { Console.WriteLine(hangmanDrawings[mistakeCount]); Console.WriteLine($"Unfortunately, you lost! The word was '{selectedWord}'"); return; } } } else { Console.WriteLine("This letter has already been used. Try again."); } } Console.WriteLine($"Congratulations, you won! The word was '{selectedWord}'"); Console.ReadLine(); } private static (string wordToDisplay, int nonLetterCount) HideWord(string selectedWord) { int nonLetterCount = 0; // spazi, virgole, ecc. string wordToDisplay = ""; for (int i = 0; i < selectedWord.Length; i++) { char character = selectedWord[i]; if (char.IsLetter(character)) { wordToDisplay += '_'; } else { wordToDisplay += character; nonLetterCount++; } } return (wordToDisplay, nonLetterCount); } private static string DrawRandomWord(string[] wordArray) { Random randomMachine = new Random(); int drawnWordIndex = randomMachine.Next(0, wordArray.Length); return wordArray[drawnWordIndex]; } private static string[] CreateHangmanDrawings() { return new string[] { "", @", +---+ | | | | | | =========", @", +---+ | | O | | | | =========", @", +---+ | | O | | | | | =========", @", +---+ | | O | /| | | | =========", @", +---+ | | O | /|\ | | | =========", @", +---+ | | O | /|\ | / | | =========", @", +---+ | | O | /|\ | / \ | | =========" }; } static string[] CreateWordList() { return new string[] { "programmatore", "algoritmo", "minecraft", "sonic" }; } }
Editor is loading...
Leave a Comment