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

leave a comment



load comments

Subscribe to Our Newsletter