// Hangman // The classic game of hangman #include #include #include #include #include #include < using namespace std; int main() { //setup const int MAX_WRONG = 8; //maximum numer of incorrect guesses allowed vector words; //collection of possible words to guess words.push_back("GUESS"); words.push_back("HANGMAN"); words.push_back("DiFFICULT"); srand(time(0)); random_shuffle(words.begin(), words.end()); const string THE_WORD = words[0]; //word to guess int wrong = 0; //number of incorrect guesses string soFar(THE_WORD.size(), '-'); //word guessed so far string used = ""; //letterrs already guessed cout << "Welcome to Hangman. Good luck!\n"; //main loop while ((wrong < MAX_WRONG) && (soFar != THE_WORD)) { cout << "\n\nYou have " << (MAX_WRONG - wrong) << " incorrect guesses left.\n"; cout << "\nYou've used the following letters:\n" << used << endl; cout << "\nSo far, the word is:\n" << soFar << endl; char guess; cout << "\n\nEnter your guess: "; cin >> guess; guess = toupper(guess); //make uppercase since secret word in uppercase while (used.find(guess) != string::npos) { cout << "\nYou've already guessed " << guess < endl; cout << "enter your guess : "; cin >> guess; guess = toupper(guess); } used += guess; if (THE_WORD.find(guess) != string::npos) { cout << "That's right! " << guess << " is in the word.\n"; //update soFar to include newly guessed letter for (int i = 0; i < THE_WORD.length(); ++i) if (THE_WORD[i] == guess_ soFar[i] = guess; } else { cout << "Sorry, " << guess << " isn't in the word.\n"; ++wrong; } }