Assignment Specifications

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 getlineinstead of the input operator to allow for the presence of spaces in the phrase)

● Clear output window so phrase is not seen, using the provided function clearScreen()

● Setup unsolved phrase so game has a separate string with dashes in place of characters (call setupUnsolvedfunction)

● 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 getGuessfunction - see below for meaning of “valid

guess”)

(After initial phrase has been set, user input should ONLYoccur in the getGuessfunction)

○ Update a string consisting of all characters guessed so far

○ Take action on the guess:

■ Correct: update unsolved phrase using the updateUnsolvedfunction

■ Incorrect: increment the wrong guess count

○ Clear the screen again, using clearScreen()

○ 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 (Youlost!or Congratulations!!)

Header File

I have supplied a header file called assn.hto be utilized with this assignment: it provides the function voidclearScreen()that will clear the terminal window, to be invoked at specified spots within the algorithm. To acquire this file download it from the specs folder and upload it into your Hangman assignment directory.

Then add it to your includes:

#include“assn.h”

(Note the quotes, unlike the <used for including C++ libraries)Additional Requirements and Hints

● Implement each functionand get feedback/credit for each before doing main game

● Alluser input statements should be followed by outputting a blank line.

● All user inputs and corresponding promptsafter initial phrase setup occur only in body of getGuess- so there are no input or output statements in setupUnsolvedor updateUnsolved

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

● The player gets 7wrong guesses

● You should be utilizing a single puzzlevariable to hold the current state of the game, and assigning to it the return value from setupUnsolvedinitially, 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.

● boolisalpha(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 <cctypelibrary.

● Note:The functions setupUnsolvedand updateUnsolvedare “complementary” to each other (one replaces letters with dashes, the other replaces those dashes with letters).

So once you’ve got one working, the other should be real simple!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.
Powered by