1+
2+ from tkinter import Frame , Tk , Canvas
3+ from random import choice
4+
5+ class Matrix (Frame ):
6+ def __init__ (self , master ):
7+ super ().__init__ (master )
8+
9+ self .canvas = Canvas (master , bg = 'black' )
10+ self .canvas .place (relx = 0 , rely = 0 , relwidth = 1 , relheight = 1 )
11+
12+
13+ self .velocidad = [i for i in range (0 ,30 ,5 )]
14+ self .pos = [i for i in range (- 200 ,200 ,20 )]
15+ self .letters = []
16+ self .green = 0
17+ self .caracteres = [
18+ "a" , "k" , "u" , "u" , "u" , "И" , "Ч" ,
19+ "b" , "l" , "v" , "v" , "v" , "Ѳ" , "Р" ,
20+ "c" , "m" , "w" , "w" , "w" , "І" , "С" ,
21+ "d" , "n" , "x" , "x" , "x" , "К" , "Т" ,
22+ "e" , "o" , "y" , "y" , "y" , "Л" , "Ѵ" ,
23+ "f" , "p" , "z" , "z" , "z" , "М" , "Ф" ,
24+ "g" , "q" , "1" , "1" , "1" , "Н" , "Х" ,
25+ "h" , "r" , "2" , "2" , "2" , "Ѯ" , "Ѱ" ,
26+ "i" , "s" , "3" , "3" , "3" , "Ѻ" , "Ѿ" ,
27+ "j" , "t" , "4" , "4" , "4" , "П" , "Ц" ,
28+ ]
29+
30+
31+ self .draw ()
32+ self .update ()
33+
34+ def draw (self ):
35+ for x in range (0 ,1600 ,20 ):
36+ y = choice (self .pos )
37+ for j in range (0 , choice ([180 ,220 ,280 ]),20 ):
38+ self .obj = self .canvas .create_text (20 + x , - 200 + y + j , text = choice (self .caracteres ),
39+ fill = 'green2' , font = ('Arial' , 14 ))
40+ self .letters .append (self .obj )
41+
42+
43+ def update (self ):
44+ for letter in self .letters :
45+ v = choice (self .velocidad )
46+ self .green += 5
47+ color = '#{:02x}{:02x}{:02x}' .format (0 ,self .green ,0 )
48+ self .canvas .itemconfig (letter , fill = color )
49+ self .canvas .move (letter , 0 , v )
50+
51+ y = self .canvas .coords (self .obj )
52+
53+ if self .green >= 250 :
54+ self .green = 0
55+
56+ if y [1 ] >= 800 :
57+ self .draw ()
58+ if y [1 ]>= 1200 :
59+ self .letters .clear ()
60+ self .canvas .delete ('all' )
61+
62+ self .canvas .after (80 , self .update )
63+
64+
65+
66+
67+
68+ if __name__ == '__main__' :
69+ root = Tk ()
70+ root .title ('Matrix Animation' )
71+ root .config (bg = 'black' )
72+ root .attributes ('-fullscreen' , True )
73+ app = Matrix (root )
74+ app .mainloop ()
0 commit comments