All pastes #928342 Raw Edit

Untitled

public text v1 · immutable
·published 2008-03-04 23:34 UTC
rendered paste body
// Hangman
// The classic game of hangman

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <ctime>
#include <<cctype>

using namespace std;

int main()
{
    //setup
    const int MAX_WRONG = 8; //maximum numer of incorrect guesses allowed
    
    vector<string> 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;
     }
}