Implementation of a Falling Matrix - GeeksforGeeks
The idea here is to print random characters over a defined width, where the two successive characters may or may not have certain amount of gap defined randomly. A certain amount of delay between printing successive lines has to be implemented in order to have a 'falling effect'.
Read full article from Implementation of a Falling Matrix - GeeksforGeeks
The idea here is to print random characters over a defined width, where the two successive characters may or may not have certain amount of gap defined randomly. A certain amount of delay between printing successive lines has to be implemented in order to have a 'falling effect'.
The idea here is to print random characters over a defined width, where the two successive characters may or may not have certain amount of gap defined randomly. A certain amount of delay between printing successive lines has to be implemented in order to have a ‘falling effect’.
// Width of the matrix lineconst int width = 70;// Defines the number of flips in Boolean Array 'switches'const int flipsPerLine =5;// Delay between two successive line printconst int sleepTime = 100;using namespace std;int main(){ int i=0, x=0; // srand initialized with time function // to get distinct rand values at runtime srand(time(NULL)); // Used to decide whether to print // the character in that particular iteration bool switches[width] = {0}; // Set of characters to print from const string ch = "1234567890qwertyuiopasdfghjkl" "zxcvbnm,./';[]!@#$%^&*()-=_+"; const int l = ch.size(); // Green font over black console, duh! system("Color 0A"); // Indefinite Loop while (true) { // Loop over the width // Increment by 2 gives better effect for (i=0;i<width;i+=2) { // Print character if switches[i] is 1 // Else print a blank character if (switches[i]) cout << ch[rand() % l] << " "; else cout<<" "; } // Flip the defined amount of Boolean values // after each line for (i=0; i!=flipsPerLine; ++i) { x = rand() % width; switches[x] = !switches[x]; } // New Line cout << endl; // Using sleep_for function to delay, // chrono milliseconds function to convert to milliseconds this_thread::sleep_for(chrono::milliseconds(sleepTime)); } return 0;}