using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Console.WriteLine("HANGMAN \r"); Console.WriteLine("Are you ready to play?"); Console.WriteLine("You have 6 guesses. \n"); bool keepPlaying = true; do { Random r = new Random(); int secret_number = r.Next(0, 9); string[] words = {"CLAYTON", "INFORMATION", "TECHNOLOGY", "PROGRAMMING", "CIMS", "OBJECTS", "CLASSES", "ARRAYS", "RECURSION", "STRINGS"}; string gameWord = words[secret_number]; //string gameWord = "CLAYTON"; int numOfGuesses = 6; //creates an array that is filled with *'s for display //if user guesses correct letter, * in that position is replaced with guess char[] displayArray = new char[gameWord.Length]; for (int counter = 0; counter < displayArray.Length; counter++) { displayArray[counter] = '*'; } Console.WriteLine(); //creates an array of letters from which to choose char[] letterChoices = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'}; //fills display array with *'s. for (int counter = 0; counter < displayArray.Length; counter++) { displayArray[counter] = '*'; } while (numOfGuesses > 0) { Console.WriteLine("Enter your guess"); char guessLetter = Convert.ToChar(Console.ReadLine()); Console.WriteLine(); //if guessed letter has been guessed before, the user is given a message. string usedLetters = new string(letterChoices); if (usedLetters.IndexOf(guessLetter) == -1) { Console.WriteLine("You've already guessed {0}! Guess another letter!\n", guessLetter); } //if not guessed before, replace letter guessed with * for (int letterCount = 0; letterCount < letterChoices.Length; letterCount++) if (guessLetter == letterChoices[letterCount]) { letterChoices[letterCount] = '*'; } //determines if guessed letter is in word or not. if (gameWord.IndexOf(guessLetter) == -1) { numOfGuesses--; Console.WriteLine(guessLetter + " is NOT in the word!\n"); } else { Console.WriteLine("YES! {0} is in the word!", guessLetter); } //prints out letters left that user can guess. Console.WriteLine("The following letters are left to chose from:"); for (int letterCount2 = 0; letterCount2 < letterChoices.Length; letterCount2++) { Console.Write(letterChoices[letterCount2] + "\t"); } Console.WriteLine(); Console.WriteLine(); Console.WriteLine("Your word now looks like this:"); //replaces * in display with correct guessed letter. for (int counter = 0; counter < displayArray.Length; counter++) { if (guessLetter == gameWord[counter]) { displayArray[counter] = guessLetter; //Console.WriteLine(); //Console.WriteLine(); } } //prints out display for (int counter = 0; counter < displayArray.Length; counter++) { Console.Write(displayArray[counter]); } Console.WriteLine(); //display number of guesses left Console.WriteLine(); Console.WriteLine("You have {0} guesses left!", numOfGuesses); Console.WriteLine(); Console.WriteLine("************************************************************************"); //if user guesses word, displays win message //no * in display array string correctAnswer = new string(displayArray); if (correctAnswer == gameWord) { Console.WriteLine("Congratulations! You win!!!!!"); numOfGuesses = 0; } else if ((correctAnswer != gameWord) && (numOfGuesses == 0)) Console.WriteLine("Sorry, you lose!"); } // determine if the user wants to play again Console.Write("Would you like to play again (Y/N)? "); string user_choice = Console.ReadLine(); if (user_choice.ToUpper().StartsWith("Y")) keepPlaying = true; else keepPlaying = false; } while (keepPlaying); Console.WriteLine(); } } }