Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Каждый уважающий себя программист обязан написать:
Справедливости ради, у автора поста итоговая картинка красивее, чем cmatrix.
Справедливости ради, у автора поста итоговая картинка красивее, чем cmatrix.Наверное, из-за отсутствия поддержки полупрозрачных шрифтов в стандартных терминалах.
Хотя возможность есть.Количество цветов в терминалах обычно ограничено.
строчки с иероглифами на ихних экранах
Ждём реализацию на x86 в 128 байт.


scriptнадо было поместить ниже секции
body
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="utf-8" />
<title>Matrix</title>
</head>
<body style="margin: 0; background: #000; overflow: hidden;">
<canvas></canvas>
</body>
<script>
const C = document.querySelector("canvas"),
$ = C.getContext("2d"),
W = (C.width = window.innerWidth),
H = (C.height = window.innerHeight);
const str = "А+Б0В-Г1Д=Е2Ё Ж3З И4Й К5Л М6Н О7П Р8С Т9У Ф!Х Ц?Ч Ш.ЩЪ,Ы Ь:ЭЮ;Я",
matrix = str.split("");
let font = 11,
col = W / font,
arr = [];
for (let i = 0; i < col; i++) arr[i] = 1;
function draw() {
$.fillStyle = "rgba(0,0,0,.05)";
$.fillRect(0, 0, W, H);
$.fillStyle = "#0f0";
$.font = font + "px system-ui";
for (let i = 0; i < arr.length; i++) {
let txt = matrix[Math.floor(Math.random() * matrix.length)];
$.fillText(txt, i * font, arr[i] * font);
if (arr[i] * font > H && Math.random() > 0.975) arr[i] = 0;
arr[i]++;
}
}
setInterval(draw, 123);
window.addEventListener("resize", () => location.reload());
</script>
</html>
Я, конечно, смотрел этот фильм уже довольно давно, однако мне запомнилось, что код матрицы выглядит, как стекающие по стеклу капли воды. А буквы — это мокрые следы. В начале фильма даже был кадр, где это показывалось. Здесь я этого как-то не наблюдаю.
Реализуем визуальный эффект из фильма «Матрица»