Эффект матрицы (console program c++)

Участник
Статус
Оффлайн
Регистрация
30 Мар 2017
Сообщения
373
Реакции[?]
191
Поинты[?]
0
Т.к на форуме не нашел эффект матрицы(самый простой) для консольного приложения с++, решил поделиться:
Код:
#include <iostream>
#include <windows.h>

int Modulus(int iN, int iMod) {
    int iQ = (iN/iMod);
    return iN - (iQ*iMod);
}

char GetChar(int iGenerator, char cBase, int iRange) {
    return (cBase + Modulus(iGenerator, iRange));
}

int main() {
    // Color code
    HANDLE  hConsole;
    hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hConsole, 2);

    char caRow[80];
    int j = 7;
    int k = 2;
    int l = 5;
    int m = 1;
    while (true) {
        int i = 0;
        // Output a random row of characters
        while (i < 80) {
            if (caRow[i] != ' ') {
                caRow[i] = GetChar(j + i*i, 33, 30);
                if (((i*i + k) % 71) == 0) {
                    SetConsoleTextAttribute(hConsole,  7);
                } else {
                    SetConsoleTextAttribute(hConsole,  2);
                }
            }
            std::cout << caRow[i];
            ++i;
            SetConsoleTextAttribute(hConsole,  2);
        }
        j = (j + 31);
        k = (k + 17);
        l = (l + 47);
        m = (m + 67);
        caRow[Modulus(j, 80)] = '-';
        caRow[Modulus(k, 80)] = ' ';
        caRow[Modulus(l, 80)] = '-';
        caRow[Modulus(m, 80)] = ' ';
        // Delay
        Sleep(10);
    }
    return 0;
}
 
Gho$Tk1y Tip4ik
Начинающий
Статус
Оффлайн
Регистрация
7 Июн 2017
Сообщения
72
Реакции[?]
15
Поинты[?]
0
Помню, на парах у парня массив вышел на 9999, и он ему ещё условие написал (не помню какое). Так это зациклилось, мы вписали еще цвет зеленый и тру "матрица" вышла. Могу скинуть куда-нибудь .exe .
 
Сверху Снизу