Загрузка...

Нужна ваша помощь с фиксом бага в программе "угадай слово"

Тема в разделе C/C++ создана пользователем NetCool 23 ноя 2019. (поднята 23 ноя 2019) 217 просмотров

  1. NetCool
    NetCool Автор темы 23 ноя 2019 18 11 ноя 2017
    Вообщем, суть программы - программа берет слова, меняет в словах буквы, а пользователь должен отгадывать слова.
    Но у меня случился такой трабл, что когда я ввожу слово правельно, не выводится сообщение о том, что слово отгадано
    Код

    #include "pch.h"
    #include <iostream>
    #include <cstdlib>
    #include <ctime>
    #include <string>

    using namespace std;

    int main()
    {
    setlocale(LC_ALL, "rus");

    enum fields{WORD, HINT, NUM_FIELDS};
    const int NUM_WORDS = 5;
    const string WORDS[NUM_WORDS][NUM_FIELDS] =
    {
    {"стена","Тебе не кажется, что ты бьешься головой обо что - то ?"},
    {"очки", "Это поможет тебе увидеть ответ"},
    {"настойчивый", "Продолжай в том же духе"},
    {"каска", "Защищает твою голову"},
    {"отгадывать", "В этом и заключается суть игры"},
    };

    srand(static_cast<unsigned int> (time(0)));
    int choise = (rand() % NUM_WORDS);
    string theWord = WORDS[choise][WORD];//Слово, которое нужно отгадать
    string theHint = WORDS[choise][HINT];//Подсказка

    string jumble = theWord;//Перемешанный вариант слова
    int length = jumble.size();

    for (int i = 0; i < length; ++i) {
    int index1 = (rand() % length);
    int index2 = (rand() % length);

    char temp = jumble[index1];
    jumble[index1] = jumble[index2];
    jumble[index2] = temp;
    }

    cout << "\t\tДабро пожаловать в игру 'Угадай слово'" << endl;
    cout << "Расшифруйте буквы, чтобы составить слово" << endl;
    cout << "Введите 'hint' для того чтобы использовать подсказку" << endl;
    cout << "Введите 'quit' для того чтобы выйти из игры" << endl;
    cout << "Зашифрованные буквы: " << jumble << endl;

    string guess;
    cout << "\nВведите зашифрованное слово: ";
    cin >> guess;

    while ((guess != theWord) && (guess != "quit")) {
    if (guess == "hint") {
    cout << "Подсказка: " << theHint;
    }
    cout << "\nВведите зашифрованное слово: ";
    cin >> guess;
    }
    if (guess == theWord) {
    cout << "Ты отгадал";
    }

    cout << "\nСпасибо, что поиграл в мою игру)" << endl;

    system("\npause>>NULL\n");
    return 0;
    }
    [IMG]
     
    23 ноя 2019 Изменено
  2. Awyeri
    Awyeri 24 ноя 2019 1 5 май 2019
    Код

    #include <iostream>
    #include <cstdlib>
    #include <ctime>
    #include <string>
    #include <windows.h> // <----------

    using namespace std;

    int main()
    {
    setlocale(LC_ALL, "Russian");
    SetConsoleCP(1251); // <----------
    SetConsoleOutputCP(1251); // <----------

    enum fields { WORD, HINT, NUM_FIELDS };
    const int NUM_WORDS = 5;
    const string WORDS[NUM_WORDS][NUM_FIELDS] =
    {
    {"стена","Тебе не кажется, что ты бьешься головой обо что - то ?"},
    {"очки", "Это поможет тебе увидеть ответ"},
    {"настойчивый", "Продолжай в том же духе"},
    {"каска", "Защищает твою голову"},
    {"отгадывать", "В этом и заключается суть игры"},
    };

    srand(static_cast<unsigned int> (time(0)));
    int choise = (rand() % NUM_WORDS);
    string theWord = WORDS[choise][WORD];//Слово, которое нужно отгадать
    string theHint = WORDS[choise][HINT];//Подсказка

    string jumble = theWord;//Перемешанный вариант слова
    int length = jumble.size();

    for (int i = 0; i < length; ++i) {
    int index1 = (rand() % length);
    int index2 = (rand() % length);

    char temp = jumble[index1];
    jumble[index1] = jumble[index2];
    jumble[index2] = temp;
    }

    cout << "\t\tДабро пожаловать в игру 'Угадай слово'" << endl;
    cout << "Расшифруйте буквы, чтобы составить слово" << endl;
    cout << "Введите 'hint' для того чтобы использовать подсказку" << endl;
    cout << "Введите 'quit' для того чтобы выйти из игры" << endl;
    cout << "Зашифрованные буквы: " << jumble << endl;

    string guess;
    cout << "\nВведите зашифрованное слово: ";
    cin >> guess;

    while ((guess != theWord) && (guess != "quit")) {
    if (guess == "hint") {
    cout << "Подсказка: " << theHint;
    }
    cout << "\nВведите зашифрованное слово: ";
    cin >> guess;
    }
    if (guess == theWord) {
    cout << "Ты отгадал";
    }

    cout << "\nСпасибо, что поиграл в мою игру)" << endl;

    system("\npause>>NULL\n");
    return 0;
    }
     
  3. NetCool
    NetCool Автор темы 24 ноя 2019 18 11 ноя 2017
    Awyeri, Огромное тебе спасибо:roflanZdarova:. Можешь в ЛС пояснить, за эти две команды. Буду тебе оч благодарен)
    --- Сообщение объединено с предыдущим 24 ноя 2019
    /del
     
Загрузка...
Top