сон или задержка для программы C ++ - PullRequest
1 голос
/ 01 мая 2020

Итак, я пишу эту дополнительную игру Paperboy как проект класса. Если бы я хотел, я мог бы сказать, что я закончил и сдать это, но я хочу, чтобы это было профессионально. Моя игра состоит из разных режимов: легкого и сложного. Однако я еще не реализовал жесткий режим.

В любом случае, вот мой код

void easyMode() {

    string playerName;
    int numNewspapers, numDelivered = 0, numMissed = 0, score = 0;

    cout << "Enter Your Player Name: ";
    cin >> playerName;

    cout << "\nEnter How Many Newspapers That Need To Be Delivered: ";
    cin >> numNewspapers;

    cout << "\n\nYou have " << numNewspapers << " newspapers to deliver!\n\n";
    cout << "Time To Deliver !!\n\n";
    cout << "*===================================*\n\n";

    //cout << string(50, '\n');

    while (numDelivered < numNewspapers) {

        int outcome = RandomNumberEasy();

        cout << "*===================================*\n\n";
        cout << "Delivering Newspaper...\n\n";


        //           Game Sequence
        //*===================================*

        //      Delivered Successfully
        //*===================================*
        if (outcome <= 3 || outcome > 7) {

            cout << "You Successfully Delivered The Newspaper.\n\n";

            numDelivered++;

            score = score + 15;

            cout << "Your score is " << score << " points!\n\n";
        }

        //          Delivery Failed
        //*===================================*
        else {

            cout << "The Neighbor's Dog Chased You. Delivered Paper Didn't Quite Land On Step\n\n";

            numDelivered++;

            numMissed++;

            score = score + 5;

            cout << "Your score is " << score << " points!\n";
        }

        cout << "\n";
        sleep(1);
    }

        //              END GAME
        //*===================================*
        if (numDelivered == numNewspapers) {

            int SuccDeliver = numDelivered - numMissed;

            cout << "*===================================*\n\n";
            cout << "Congratulations, " << playerName << "!\n\n"; 
            cout << "Your Final Score Is: " << score; 
            cout << "\n\nYou missed " << numMissed << " Newspapers And Delivered " << SuccDeliver << " Newspapers\n\n";

        }

}

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

Любая помощь приветствуется!

1 Ответ

1 голос
/ 01 мая 2020

Кажется, проблема в том, что выходной буфер не очищается. Способ сделать это - использовать cout << endl вместо cout << "\n". В основном, эта часть:

cout << "\n";
sleep(1);

Должно быть так:

cout << endl;
sleep(1);

И это должно исправить!

...