Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // main.cpp
- // week_14_cplus
- //
- // Created by Thomas Sinclair on 4/11/14.
- // Copyright (c) 2014 Cynomys Consulting LLC. All rights reserved.
- //
- // Hangman
- // The classic game of hangman
- #include <iostream>
- #include <string>
- #include <vector>
- #include <algorithm>
- #include <ctime>
- #include <cctype>
- using namespace std;
- int main()
- {
- // set-up
- const int MAX_WRONG = 8; // maximum number of incorrect guesses allowed
- vector<string> words; // collection of possible words to guess
- words.push_back("HELLO");
- words.push_back("WORLD");
- 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 = ""; // letters 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;
- }
- }
- // shut down
- if (wrong == MAX_WRONG)
- cout << "\nYou've been hanged!";
- else
- cout << "\nYou guessed it!";
- cout << "\nThe word was " << THE_WORD << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement