Эффект матрицы С/С++
Ответы (1 шт):
Автор решения: Павел Ериков
→ Ссылка
Например вот:
#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() {
//Устанавливаем цвет
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;
//Случайные символы
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)] = ' ';
//Задержка
Sleep(10);
}
return 0;
}
Выглядит примерно так же, как на скриншоте.
