#ifndef HANGMAN_H #define HANGMAN_H #include #include using std::string; // NOTE: You cannot change this file. It "only" contains declarations and // short descriptions of the functionality we provided to you. /** * This function returns a random english word. Use this to generate a new * word to guess. It is imperative that you use this function to get a word, * otherwise, the auto-grader will not work properly when testing or * submitting your project. */ string chooseWord(); /** * This function creates a "working copy" based on a given word. It returns a * string with the same amount of characters than the word, but all of them * are initially set to "_" (underscore) */ string createWorkingCopy(string word); /** * You may call this function to render a little hangman figure in the HTML view. * This is completely optional, the tests don't rely on this function being * called. As argument, the function takes the number of wrong guesses and * selects the correct hangman picture to show. */ void showHangman(int wrongGuesses); /** * This function prints the number of remaining attempts (based on the provided * number of wrong guesses. Call this method before each attempt. * * Example: The call 'printGameState(2)' will output: "Attempts left: 4" * because MAX_WRONG_GUESSES is 6, and 6 - 2 = 4 */ void printGameState(int maxWrongGuesses, int wrongGuesses); /** * This function prints the partly uncovered word (the working copy) in the * desired format. * * Example: If workingCopy is "_xp_rt", a call to printWorkingCopy(workingCopy) * will print "[ _ x p _ r t ]" - this is the format that is expected by the * autograder. */ void printWorkingCopy(string workingCopy); /** * This function must be called if the game was lost (that is, on the 6th * wrong guess). * * Example: If the correct word was "expert", its outputs * "The word was: expert * You lost!" */ void printYouLost(string word); /** * This function must be called if the game was won (that is, the word was * guessed with less than 6 wrong guesses). * * Example: If the correct word was "expert", its outputs * "[ e x p e r t ] * You won!" */ void printYouWon(string word); // THE FOLLOWING FUNCTIONS CAN BE USED INTERACTIVELY TO IMPLEMENT THE INDIVIDUAL // PARTS, BUT THEY DONT'T WORK DURING SUBMISSION /** * Part 1: Ask the user to enter a character and update parameter 'guess' */ void PART1_readCharacter(char& guess); /** * Part 2: Set the guessed character in the working copy. Updates parameter * 'workingCopy' and sets parameter 'found' to either true or false */ void PART2_updateWorkingCopy(string word, char guess, string& workingCopy, bool& found); /** * Part 3: Check if game is finished and update wrongGuesses variable. * Print the approriate messages in the console. Updates parameters 'done' and * 'wrongGuesses' */ void PART3_updateGameState(string word, string workingCopy, bool found, int maxWrongGuesses, bool& done, int& wrongGuesses); #endif