Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

C++ Assignment Specifications The game called Hangman is a spelling game: one player sets up a word or phrase, represented by a row of dashes.

C++

Assignment Specifications

The game called Hangman is a spelling game: one player sets up a word or phrase, represented by a row of dashes. If the guessing player suggests a letter which occurs in the word, the other player writes it in all its correct positions. If the suggested letter does not occur in the word, the other player draws one element of the hanged man stick figure as a tally mark. The game is over when:

  • The guessing player completes the word, or guesses the whole word correctly

  • The other player completes the diagram.

You must implement a simplified version of hangman in which the player gets 7 incorrect guesses (corresponding to drawing the hanged man). You are required to implement the specified functions and utilize any provided functions.

Hangman Algorithm

  • Get phrase to be solved from the user (using getline instead of the input operator >> to allow for the presence of spaces in the phrase)

  • Clear output window so phrase is not seen, using system("CLS") - Not necessary for submitting on hypergrade

  • Setup unsolved phrase so game has a separate string with dashes in place of characters

(call setupUnsolved function)

  • Display the unsolved phrase

  • Play Game until phrase is completely guessed, or all 7 incorrect guesses are used up

    • Get a valid letter guess from user (call getGuess function - see below for meaning of valid guess)

(After initial phrase has been set, user input should ONLY occur in the getGuess function)

  • Update a string consisting of all characters guessed so far

  • Take action on the guess:

    • Correct: update unsolved phrase using the updateUnsolved function

    • Incorrect: increment the wrong guess count

  • Clear the screen again, using system("CLS") - Not necessary for submitting on hypergrade

  • Output game status:

    • updated unsolved phrase - phrase with dashes for still-unguessed letters

    • list of characters guessed so far

    • number of wrong guesses left

  • Output game over message (You lost! or Congratulations!!)

Additional Requirements and Hints

  • Implement each function and get feedback/credit for each before doing main game

  • Clear screen by using the command system("CLS"); - Not necessary for submitting on hypergrade

  • All user input statements should be followed by outputting a blank line.

  • All user inputs and corresponding prompts after initial phrase setup occur only in body of getGuess - so there are no input or output statements in setupUnsolved or updateUnsolved

  • All phrases can have lowercase and uppercase alphabetic characters and valid guesses will use only lowercase alphabetic characters (i.e. in our testing, we will enter only lower case characters as valid guesses; we will, of course, input non-alpha characters to test for invalid guesses).

  • The player gets 7 wrong guesses

  • You should be utilizing a single puzzle variable to hold the current state of the game, and assigning to it the return value from setupUnsolved initially, and updateUnsolved subsequently.

  • Use the string member function at(): Remember, at() can be used on either side of the assignment operator (=), to either read the value at a specified position of the string (right side); or to write a new value into a position of the string (left side). The function at() throws an exception when you attempt to access a non-existent location, unlike the [] syntax; this can be a great help when debugging.

  • bool isalpha(char): In order to check if a guess is valid - i.e. if it is an alphabetic character - you can use this built-in predicate function that takes a single character as an argument. Requires that you include the library.

  • char tolower(char): In order to check if an uppercase letter matches its lowercase version, we can pass it to this function

  • Note: The functions setupUnsolved and updateUnsolved are complementary to each other (one replaces letters with dashes, the other replaces those dashes with letters). So once youve got one working, the other should be real simple!

  • NOTE: There should be no global variables in your program!!!

Functions

The following 3 functions are required, exactly as declared. You may, if you wish, define other functions in addition to these.

You must define, implement and correctly invoke these 3 functions exactly as declared here. You may wish to copy & paste the following into your source code, and comment out the function declarations you are not yet ready to implement.

/// @brief Puts dashes in place of alphabetic characters in the phrase.

/// @param phrase the phrase to be solved

/// @return the phrase with all alphabetic characters converted to dashes

string setupUnsolved(string phrase);

/// @brief Replaces the dashes with the guessed character.

/// @param phrase the phrase to be solved

/// @param unsolved the phrase with dashes for all unsolved characters

/// @param guess the char containing the current guessed character

/// @return the new unsolved string with dashes replaced by new guess

string updateUnsolved(string phrase, string unsolved, char guess);

/// @brief Gets valid guess as input.

///

/// A guess is taken as input as a character. It is valid if

/// 1) it is an alphabetic character; and

/// 2) the character has not already been guessed

///

/// @param prevGuesses the string containing all characters guessed so far

/// @return a valid guess and only a valid guess as a character

char getGuess(string prevGuesses);

Stub

Int main

Example Run

image text in transcribed

image text in transcribed

image text in transcribed

image text in transcribed

in Enter phrase: hello world ENTER Phrase: In Enter a guess: h ENTER Guessed so far: h Wrong guesses left: 7 in ---- In Enter a guess: h ENTER Invalid guess! Please re-enter a guess: d ENTER Guessed so far: hd in Wrong guesses left: 7 in h---- Enter a guess: d ENTER Invalid guess! Please re-enter a guess: i ENTER Guessed so far: hdi in Wrong guesses left: 6 h---- In Enter a guess: 3 JENTER Invalid guess! Please re-enter a guess: 4 ENTER Invalid guess! Please re-enter a guess: 9 ENTER Invalid guess! Please re-enter a guess: O ENTER Guessed so far: hdio in Wrong guesses left: 6 ----0-0--d| In Enter a guess: LENTER Guessed so far: hdiol in Wrong guesses left: 6 in h-llo -o-ld Enter a guess: 1 ENTER Invalid guess! Please re-enter a guess: p ENTER Guessed so far: hdiolp Wrong guesses left: 5 h-llo -o-ld in Enter a guess: I qENTER Guessed so far: hdiolpq Wrong guesses left: 4 in h-llo -o-ld Enter a guess: I W ENTER Guessed so far: hdiolpqw In Wrong guesses left: 4 h-llo wo-ld I Enter a guess: e ENTER Guessed so far: hdiolpqwe in Wrong guesses left: 4 hello wo-ld I Enter a guess: I CENTER Guessed so far: hdiolpqwer 1 Wrong guesses left: 4 hello world Congratulations!! You won! in

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database Systems Design Implementation And Management

Authors: Peter Robb,Carlos Coronel

5th Edition

061906269X, 9780619062699

More Books

Students also viewed these Databases questions

Question

Describe Table Structures in RDMSs.

Answered: 1 week ago