#include
#include
#include
#include
#include
#include
#include
using namespace std;
string decodeWord(const string& encodedWord) {
string decodedWord;
for (char c : encodedWord) {
decodedWord += (c - 1);
}
return decodedWord;
}
vector loadWords(const string& filename) {
vector words;
ifstream file(filename);
string word;
while (file >> word) {
words.push_back(decodeWord(word));
}
return words;
}
string chooseWord(const vector& words) {
srand(time(0));
return words[rand() % words.size()];
}
void displayCurrentState(const string& word, const string& guessed) {
for (char c : word) {
if (guessed.find(c) != string::npos) {
cout << c << ' ';
} else {
cout << "_ ";
}
}
cout << endl;
}
int main() {
vector words = loadWords("words.txt");
string word = chooseWord(words);
string guessed;
int attempts = 0;
const int maxAttempts = 7;
bool won = false;
time_t startTime = time(0);
while (attempts < maxAttempts && !won) {
char guess;
cout << "Введите букву: ";
cin >> guess;
if (guessed.find(guess) == string::npos) {
guessed += guess;
attempts++;
}
displayCurrentState(word, guessed);
won = true;
for (char c : word) {
if (guessed.find(c) == string::npos) {
won = false;
break;
}
}
}
time_t endTime = time(0);
double elapsedTime = difftime(endTime, startTime);
cout << "Игра окончена!" << endl;
cout << "Слово: " << word << endl;
cout << "Попытки: " << attempts << endl;
cout << "Время: " << elapsedTime << " секунд" << endl;
cout << "Буквы игрока: " << guessed << endl;
return 0;
}
Правила игры можно посмотреть по этой ссылке .
Важно:
■ Слово выбирается компьютером из списка слов.
■ Список слов находится в файле в зашифрованном виде.
■ По завершении игры на экран выводится статистика игры:
• количество времени;
• количество попыток;
• искомое слово;
• буквы игрока.