View difference between Paste ID: 1Agt9fFr and UvmYgpTc
SHOW: | | - or go back to the newest paste.
1-
#!/usr/local/bin/python
1+
#!/usr/bin/env python
2
3
"""
4
This program is free software: you can redistribute it and/or modify
5
it under the terms of the GNU General Public License as published by
6
the Free Software Foundation, either version 3 of the License, or
7
(at your option) any later version.
8
This program is distributed in the hope that it will be useful,
9
but WITHOUT ANY WARRANTY; without even the implied warranty of
10
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
GNU General Public License for more details.
12
For a copy of the license see .
13
=====================================================================
14
Matrix Stream 
15
Sweeping of the screen surface and if column activated go for the next line
16
on that column print a random character (could be space or bold)
17
other possible options : curses.A_BLINK + curses.A_UNDERLINE + curses.A_STANDOUT
18-
w=curses.initscr()
18+
19-
w.clear()
19+
20-
w.border()
20+
Friday, April 04, 2014
21-
w.keypad(1)
21+
22-
w.nodelay(1)
22+
23-
maxy, maxx =w.getmaxyx()
23+
24
"""
25
26
import curses
27
import random
28
import time
29
30
def print_randomcharacter_stream(xc,yl,ws,variation=0):
31
    if variation==1:
32
        char_stream=chr(random.randint(65,126))
33
        ws.addch(yl,xc,char_stream, curses.A_BOLD)
34
    elif variation==2:
35
        ws.addch(yl,xc,' ')
36
    else:
37
        char_stream=chr(random.randint(32,126))
38-
action = ''
38+
39-
col_activated=[0]*(maxx-2)
39+
40-
flush_activated=[0]*(maxx-2)
40+
41-
xcol=0
41+
42-
generate_new=True
42+
43
def main(self):
44-
while action != ord('q'):
44+
    w=curses.initscr()
45-
    while xcol <= maxx-3:
45+
    w.clear()
46-
        if col_activated[xcol] > 0:
46+
    w.border()
47-
            if col_activated[xcol] >= maxy-1:
47+
    w.keypad(1)
48-
                col_activated[xcol]=1
48+
    w.nodelay(1)
49-
                generate_new=True
49+
    maxy, maxx =w.getmaxyx()
50-
            if flush_activated[xcol] in range(51,65):
50+
    
51-
                print_randomcharacter_stream(xcol,col_activated[xcol],w,2)
51+
    action = ''
52-
            elif flush_activated[xcol] in range(25,50):
52+
    col_activated=[0]*(maxx-2)
53-
                print_randomcharacter_stream(xcol,col_activated[xcol],w,1)
53+
    flush_activated=[0]*(maxx-2)
54-
            else:
54+
55-
                print_randomcharacter_stream(xcol,col_activated[xcol],w)
55+
    generate_new=True
56-
            flush_activated[xcol]+=1
56+
    
57-
            if flush_activated[xcol] > 65:
57+
    while action != ord('q'):
58-
                flush_activated[xcol]=0
58+
        while xcol <= maxx-3:
59-
            col_activated[xcol]+=1
59+
            if col_activated[xcol] > 0:
60-
        if generate_new :
60+
                if col_activated[xcol] >= maxy-1:
61-
            new_col=random.randint(1,maxx-3)
61+
                    col_activated[xcol]=1
62-
            col_activated[new_col]=1
62+
                    generate_new=True
63-
        xcol+=1
63+
                if flush_activated[xcol] in range(51,65):
64-
        generate_new=False
64+
                    print_randomcharacter_stream(xcol,col_activated[xcol],w,2)
65
                elif flush_activated[xcol] in range(25,50):
66-
    action=w.getch()
66+
                    print_randomcharacter_stream(xcol,col_activated[xcol],w,1)
67-
    time.sleep(0.1)
67+
                else:
68-
curses.endwin()
68+
                    print_randomcharacter_stream(xcol,col_activated[xcol],w)
69
                flush_activated[xcol]+=1
70
                if flush_activated[xcol] > 65:
71
                    flush_activated[xcol]=0
72
                col_activated[xcol]+=1
73
            if generate_new :
74
                new_col=random.randint(1,maxx-3)
75
                col_activated[new_col]=1
76
            xcol+=1
77
            generate_new=False
78
        xcol=0
79
        action=w.getch()
80
        time.sleep(0.1)
81
    curses.endwin()
82
83
if __name__ == '__main__':                                                       
84
	curses.wrapper(main)