Homework 7

Upload your .cpp source code file to Ecampus.

This program is a word/phrase guessing game similar to the classic hangman game.  You should put your own theme (not hangman) onto the game.  All screens should include ASCII art that matches your theme.  The game should include:

1. Introduction screen that has your name and introduces your theme (includes ASCII art)
2. Winning and losing screens (includes ASCII art)
3. Game loop that displays ASCII art that changes with each incorrect guess.
4. Letters guessed or remaining


Steps in the program:

1. Introduction Screen

2. Select a random word and store it in a string variable name SecretPhrase

3. Create GuessPhrase which will be the same size as SecretPhrase, but all periods (e.g. ". . . . . . . .")

string GuessPhrase = SecretPhrase;
for (int x = 0; x < SecretPhrase.size(); x++)
{
   if (SecretPhrase[x]==' ')
      GuessPhrase[x] = ' ';
   else
      GuessPhrase[x] = '.';
}

4. Declare an integer named BadGuesses = 0
    Declare a string named Letter
    Declare a string named LettersRemaining and make it equal to the alphabet
    Declare an integer named Location

5. Set up a while loop for steps 6 - 10.  This is the main loop of the program.  The game keeps playing as long as you haven't lost (when BadGuesses = 6) and you haven't won (when GuessWord = SecretWord).

{      // This is the opening brace for the game loop

     6. Display ASCII art graphics (do this step last)

     7. Display letters remaining

     8. Output GuessPhrase

     9. Prompt player to enter a letter (their guess) and store it in the variable Letter.  Remove this letter from LettersRemaining.

     10. If Letter is not located in SecretPhrase (note: use Letter.find( ), increment BadGuesses

         Else continue looping and find all occurrences of Letter in GuessWord and replace the periods. 

  // Step 10
  Location = SecretPhrase.find(Letter,0);
    if (Location == -1) // not found
      BadGuesses++;
    else
      while (Location < SecretPhrase.size())
    {
      GuessPhrase.replace(Location,1,Letter);
      Location = SecretPhrase.find(Letter, Location + 1);
 
   }

}

11. If you exit the loop, then you've either won or lost.  Therefore, if BadGuesses == 6, then display the losing screen, else display the winning screen.

Extra Credit Ideas

(a) Outstanding graphics and theme
(b) Ask the user to select a subject for their secret word - e.g. college, movies, etc.
(c) Make your program work with capitalized letters in the secret phrase.