Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Написать программу, на C++

fixsnow233 Ученик (118), на голосовании 5 месяцев назад
Создайте консольную версию игры «Виселица».
Правила игры можно посмотреть по этой ссылке .
Важно:
■ Слово выбирается компьютером из списка слов.
■ Список слов находится в файле в зашифрованном виде.
■ По завершении игры на экран выводится статистика игры:
• количество времени;
• количество попыток;
• искомое слово;
• буквы игрока.
Голосование за лучший ответ
DEFLORATOR Знаток (449) 6 месяцев назад
 #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;
}
Артемий КошкинГуру (4663) 6 месяцев назад
будто ты и написал:)
Похожие вопросы