Implementación de una array descendente

Desde los albores de las computadoras, Hollywood ha demostrado en gran medida que un pirata informático o un programador es alguien sentado en una computadora escribiendo teclas aleatorias en la computadora que finalmente se compilan en una simulación similar a una array descendente. Aquí, intentaremos implementar una simulación de array descendente similar en la consola usando C++.

A Falling-Matrix on command line using C++

La idea aquí es imprimir caracteres aleatorios en un ancho definido, donde los dos caracteres sucesivos pueden o no tener una cierta cantidad de espacios definidos aleatoriamente. Se debe implementar una cierta cantidad de retraso entre la impresión de líneas sucesivas para tener un «efecto de caída».

// C++ program for implementation of falling matrix.
#include<iostream>
#include<string>
#include<thread>
#include<cstdlib>
#include<ctime>
#include<chrono>
  
// 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
    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;
}

Esto imprime la asombrosa simulación Falling-Matrix en la consola.

Nota :

  • Este programa no se ejecutaría con el botón Ejecutar en IDE porque el sistema está deshabilitado.
  • Si obtiene un error del compilador al compilar este programa. Compílelo usando el siguiente comando en GCC.
    $g++ -std=c++11 abc.cpp -o falling.o
    $falling.o 

Este artículo es una contribución de Raghav Jajodia . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *