// hangman.cрр - использование некоторых методов работы со строками 
...
using std::string; 
const int NUM = 13; 
const string wordlist[NUM] = {"danger", "florid", "insult", 
      "loaner", "onset", "plaid", "quilt", "stolid", "train", "useful", 
      "valid", "yearn", "tiger"}; 
int main() { 
	using std::cout;   using std::cin;   using std::endl; 
	std::srand(std::time(0)); 
		string target = wordlist[std::rand() % NUM]; 
		int length = target.length(); 
		string attempt(length, '-'); 
		string badchars; 
		int guesses = 6; 
		cout << "Guess my secret word. It has " << length 
			<< " letters, and you guess\n" 
			<< "one letter at a time. You get " << guesses 
			<< " wrong guesses.\n"; 
		cout << "Your word: " << attempt << endl; // вывод слова 
		while (guesses > 0 && attempt != target) { 
			char letter; 
			cout << "Guess a letter: "; 
			cin >> letter; 
			if (badchars.find(letter) != string::npos) { 
				cout << "You already guessed that. Try again.\n" ; 
				continue; 
			} 	
			int loc = target.find(letter); 
			if (loc == string::npos) { 
				cout << "Oh, bad guess !\n"; 
				--guesses; 
				badchars += letter; 
			} else { 
				cout << "Good guess!\n"; 
				attempt[loc]=letter;  
			} 
			cout << "Your word: " << attempt << endl; 
			if (attempt != target) { 
				if (badchars.length() > 0) 
					cout << "Bad choices: " << badchars << endl; 
				cout << guesses << "bad guesses left\n" ; 
			} 
		} 
		if (guesses > 0) 
			cout << "That's right!\n"; 
		else 
			cout << "Sorry, the word is " << target << " \n" ; 
	cout << "Bye\n"; 
	return 0; 
}

