Implementation of a Falling Matrix

Since the dawn of computers, Hollywood has greatly demonstrated a Hacker or a Programmer as someone sitting on a computer typing random keys on computer which ultimately compiles to a Falling matrix like simulation. Here, we will try to implement a similar falling matrix simulation on the console using C++.

A Falling-Matrix on command line using C++

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’.

// C++ program for implementation of falling matrix.
// Width of the matrix line
const int width = 70;
// Defines the number of flips in Boolean Array 'switches'
const int flipsPerLine =5;
// Delay between two successive line print
const 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
    // 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,./';[][email protected]#$%^&*()-=_+";
    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] << " ";
                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
    return 0;

This prints the amazing Falling-Matrix simulation on the console.

Note :

  • This program would not run using Run on IDE button because system is disabled.
  • If you get compiler error while compiling this program. Compile it using below command on GCC.
    $ g++ -std=c++11 abc.cpp -o falling.o
    $ falling.o 

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.

This article is attributed to GeeksforGeeks.org

You Might Also Like

leave a comment



load comments

Subscribe to Our Newsletter