Как сделать чтоб игра продолжалась до тех пор пока все слова не будут угаданы и предлагаемые слова не повторялись?

Для того чтобы игра продолжалась до тех пор, пока все слова не будут угаданы и предлагаемые слова не повторялись, можно использовать следующий подход в языке программирования C++.

1. Создайте список слов, которые будут использоваться в игре. Например, можно использовать массив строк:

std::string words[] = { "apple", "banana", "carrot", ... };

2. Создайте переменную или константу, которая будет хранить общее количество слов в списке:

const int numWords = sizeof(words) / sizeof(words[0]);

3. Создайте переменную, которая будет отслеживать количество угаданных слов:

int guessedWords = 0;

4. Создайте цикл, который будет продолжаться до тех пор, пока не угаданы все слова:

while (guessedWords < numWords) {
    // В этом цикле будет происходить игра
}

5. Внутри цикла, выберите случайное слово из списка слов, которое ещё не было угадано. Для этого можно использовать генератор случайных чисел и флаги для отслеживания уже угаданных слов. Например:

bool wordGuessed[numWords] = { false }; // Массив флагов, false означает, что слово еще не угадано

// Функция для выбора случайного слова, которое еще не было угадано
std::string getRandomWord() {
    int randomIndex;
    
    do {
        randomIndex = rand() % numWords;
    } while (wordGuessed[randomIndex]);
    
    return words[randomIndex];
}

// Получите случайное слово
std::string randomWord = getRandomWord();

6. Организуйте процесс угадывания слова. Можно использовать цикл do-while, в котором будет предлагаться пользователю угадать слово и сравниваться с загаданным словом:

std::string guessedWord;
do {
    // Предложите пользователю угадать слово и прочитайте ответ
    std::cout << "Угадайте слово: ";
    std::cin >> guessedWord;
    
    // Сравните ответ со словом
    if (guessedWord == randomWord) {
        guessedWords++; // Увеличьте счетчик угаданных слов
        wordGuessed[randomIndex] = true; // Установите флаг, что слово угадано
        std::cout << "Правильный ответ!" << std::endl;
    } else {
        std::cout << "Неверно! Попробуйте еще раз." << std::endl;
    }
} while (guessedWord != randomWord);

7. После того, как слово будет угадано, вернитесь к шагу 5 и выберите следующее слово, пока не будут угаданы все слова.

В итоге, программа будет продолжаться до тех пор, пока не будут угаданы все слова и предлагаемые слова не повторялись. Каждый раз будет выбираться новое случайное слово, пока не будут угаданы все слова из списка.