Matrix digital rain: Difference between revisions

Line 1,158:
100 next:frame
110 goto 40</lang>
 
=={{header|Mathematica}}/{{header|Wolfram Language}}==
<lang Mathematica>SeedRandom[1234];
ClearAll[ColorFunc]
chars = RandomSample[Flatten[CharacterRange @@@ Partition[Characters["\[CapitalAlpha]\[CapitalPi]ЀѵҊԯ\:03e2\:03efヲンⲀ⳩\[ForAll]∗℀℺⨀⫿"], 2]]];
charlen = Length[chars];
fadelength = 6;
ColorFunc[fade_] := ColorFunc[fade] = Blend[{Black, Green}, fade/fadelength]
rows = 30;
cols = 50;
n = 10;
trailpos = {RandomInteger[{1, cols}, n], RandomInteger[{1, rows}, n]} // Transpose;
trailchars = RandomInteger[{1, Length[chars]}, n];
charmap = ConstantArray[".", {rows, cols}];
fade = ConstantArray[5, {rows, cols}];
indices = MapIndexed[#2 &, fade, {2}];
Dynamic[Graphics[{txts}, PlotRange -> {{1, cols}, {1, rows}}, PlotRangePadding -> 1, Background -> Black]]
Do[
trailpos[[All, 2]] += 1;
fade = Ramp[fade - 1];
trailchars = Mod[trailchars + 1, charlen, 1];
Do[
If[trailpos[[i, 2]] >= rows,
trailpos[[i, 2]] = 1;
trailpos[[i, 1]] = RandomInteger[{1, cols}];
];
charmap[[trailpos[[i, 2]], trailpos[[i, 1]]]] =
chars[[trailchars[[i]]]];
fade[[trailpos[[i, 2]], trailpos[[i, 1]]]] = fadelength
,
{i, n}
];
txts = MapThread[If[#2 > 0, Text[Style[#1, ColorFunc[#2]], {#1, rows - #2 + 1} & @@ Reverse[#3]], {}] &, {charmap, fade, indices}, 2];
Pause[0.1]
,
{1000}
]</lang>
{{out}}
Outputs a animating graphic of the matrix digital rain.
 
=={{header|Nim}}==
1,111

edits