Эффект перебора символов

181
01 мая 2018, 01:40

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

Answer 1

Например так, "открывая" по буквам:

#include <iostream>
#include <cstring>
#include <ctime>
#include <chrono>
#include <thread>
using namespace std;
void sleep(long ms) {
    this_thread::sleep_for(chrono::milliseconds(ms));
}
char getRandomSymbol(char from, char to) {
    if (from > to) {
        char temp = from;
        from = to;
        to = temp;
    }
    else if (from == to) return from;
    return from + rand() % ((to + 1) - from);
}
void rotateSymbol(char target, int rotationDelay) {
    char randTry;
    do {
        randTry = getRandomSymbol('A', 'Z');
    } while (randTry == target);
    cout << randTry;
    sleep(rotationDelay);
    cout << '\b';
}
void rotateString(const char* word, int iterationsNumber, int rotationDelay) {
    for (int i = 0; i < strlen(word); ++i) {
        char symbol = word[i];
        for (int j = 0; j < iterationsNumber; ++j) {
            rotateSymbol(symbol, rotationDelay);
        }
        cout << symbol;
    }
}
int main(int argn, char **argv) {
    srand(time(NULL));  
    const int ROTATE_TIMES = 5;
    const int ROTATION_DELAY = 100;
    if (argn > 1) {
        rotateString(argv[1], ROTATE_TIMES, ROTATION_DELAY);
    } else {
        rotateString("Hello World!", ROTATE_TIMES, ROTATION_DELAY);
    }
    cout << endl << "Press [ENTER] key...";
    cin.get();
}
READ ALSO
Как сменить версию в VS 2017

Как сменить версию в VS 2017

Собственно, где можно сменить версию проекта в Visual Studio 2017? Куда тыкать? Меня интересует конкретно смена версии моего выходно приложения

198
Как упростить программу?

Как упростить программу?

Написал на C++ программу которая при вводе числа (от 0 до 1010), выводит 1, если это число простое, и 0, если оно составноеФункцию IsPrime реализовать...

172
Множественное наследование C++ помогите))

Множественное наследование C++ помогите))

Описать два базовых класса с защищен переменной типа char (в Первом - фамилия, в другом - им "я)В Первому из них описать функцию записи фамилии...

226
Интерфейс шаблонов

Интерфейс шаблонов

Что Скотт Майерс подразумевает под "Интерфейсами шаблонов" в своей книге "Эффективное использование C++55 верных советов улучшить структуру...

205