1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
frez [133]
3 years ago
11

Create a class called Hangman. In this class, Create the following private variables: char word[40], progress[40], int word_leng

th. word will be used to store the current word progress will be a dash representation of the the current word. It will be the same length as the current word. If word is set to ‘apple’, then progress should be "‑‑‑‑‑" at the beginning of the game. As the user guesses letters, progress will be updated with the correct guesses. For example, if the user guesses ‘p’ then progress will look like "‑pp‑‑" Create a private function void clear_progress(int length). This function will set progress to contain all dashes of length length. If this function is called as clear_progress(10), this will set progress to "‑‑‑‑‑‑‑‑‑‑". Remember that progress is a character array; don’t forget your null terminator. Create the following protected data members: int matches, char last_guess, string chars_guessed, int wrong_guesses, int remaining. Create a public function void initialize(string start). This function will initialize chars_guessed to a blank string, wrong_guesses to 0. Set remaining to 6. Use strcpy() to set word to the starting word passed as start (You can use start.c_str() to convert it to a character array). Set word_length to the length of word. Call clear_progress in this function.
Computers and Technology
1 answer:
PSYCHO15rus [73]3 years ago
7 0

Answer:

See explaination

Explanation:

#include <cstring>

#include <cstdio>

#include <string>

#include <array>

#include <random>

#include <algorithm>

struct RandomGenerator {

RandomGenerator(const size_t min, const size_t max) : dist(min, max) {}

std::random_device rd;

std::uniform_int_distribution<size_t> dist;

unsigned operator()() { return dist(rd); }

};

struct Gallow {

void Draw() const

{

std::printf(" ________\n"

"| |\n"

"| %c %c\n"

"| %c%c%c\n"

"| %c %c\n"

"|\n"

"|\n", body[0], body[1], body[2], body[3],

body[4], body[5], body[6]);

}

bool Increment()

{

switch (++errors) {

case 6: body[6] = '\\'; break;

case 5: body[5] = '/'; break;

case 4: body[4] = '\\'; break;

case 3: body[3] = '|'; break;

case 2: body[2] = '/'; break;

case 1: body[0] = '(', body[1] = ')'; break;

}

return errors < 6;

}

char body[7] { '\0' };

int errors { 0 };

};

struct Game {

void Draw() const

{

#ifdef _WIN32

std::system("cls");

#else

std::system("clear");

#endif

gallow.Draw();

std::for_each(guess.begin(), guess.end(), [](const char c) { std::printf("%c ", c); });

std::putchar('\n');

}

bool Update()

{

std::printf("Enter a letter: ");

const char letter = std::tolower(std::getchar());

while (std::getchar() != '\n') {}

bool found = false;

for (size_t i = 0; i < word.size(); ++i) {

if (word[i] == letter) {

guess[i] = letter;

found = true;

}

}

const auto end_game = [this](const char* msg) {

Draw();

std::puts(msg);

return false;

};

if (not found and not gallow.Increment())

return end_game("#### you lose! ####");

else if (found and word == guess)

return end_game("#### you win! ####");

return true;

}

RandomGenerator rand_gen { 0, words.size() - 1 };

const std::string word { words[rand_gen()] };

std::string guess { std::string().insert(0, word.size(), '_') };

Gallow gallow;

static const std::array<const std::string, 3> words;

};

const std::array<const std::string, 3> Game::words{{"control", "television", "computer"}};

int main()

{

Game game;

do {

game.Draw();

} while (game.Update());

return EXIT_SUCCESS;

}

You might be interested in
Write an assembly language program to print all letters as follows:
bonufazy [111]

Answer:

Explanation:

5 0
3 years ago
Why is remixing so popular with artists and other people online?
True [87]

Answer:

D.It is a way to be creative without having to construct totally new pieces.

Explanation:The answer is -D- because it is true. Remixing is a way of being creative, and you don't have to make completely new pieces.

4 0
3 years ago
Read 2 more answers
The wildcard character * (asterisk/start) and ? (question mark) are the same and can be use interchangeably.
vova2212 [387]
The answer is false.
6 0
3 years ago
What is the leading use of computers
nadya68 [22]

Answer:

email, texting and social networking

3 0
3 years ago
Read 2 more answers
PLEASE HELP!!! What are the benefits of online notebooks? Check all that apply.
Kipish [7]

They allow users to store files.

They allow users to share files.

They help users organize assignments.

They allow users to clip information from web pages.

4 0
3 years ago
Read 2 more answers
Other questions:
  • what evidence supports the claims that the Taj Mahal is a symbol of historical and cultural glory as well as an architectural ma
    8·1 answer
  • Which of the following is not a reason that the subject line should never be left blank?
    13·2 answers
  • When paying bills online, a payee is:
    9·1 answer
  • Use a dictionary to count the frequency of letters in the input string. Only letters should be counted, not blank spaces, number
    5·1 answer
  • Which is an example of Raw Input?
    11·1 answer
  • Write a program to enter a number and test if it is greater than 45.6.if the number entered is greater than 45.6 the program nee
    13·1 answer
  • There are three main components to economic growth. Which of the following is NOT a component of economic growth?
    7·1 answer
  • Can you debug the following code using the given test code?public class SavingAccount{ // interest rate for all accounts private
    5·1 answer
  • What are output statement in QBASIC?
    5·1 answer
  • You are an IT manager at Gigantic Life Insurance. You have a new desktop support person starting today whose experience is limit
    10·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!