Прикреплённый файл «screensaver.py»
Загрузка 1 #!/usr/bin/env python
2 # coding: utf
3 '''
4 Написать «скринсейвер»: программу, непрерывно заполняющую экран прямоугольнриками случайного размера и положения
5
6 случайного цвета;
7 плавно меняющегося в соответствие с HSV цвета
8 со случайной прозрачностью
9 '''
10
11 from pygame import *
12 from random import *
13
14 W,H = 800, 600
15 timeout = 100
16 hshift = 3
17
18 init()
19 screen = display.set_mode((W,H))
20 ascreen = Surface(screen.get_size(), SRCALPHA)
21 RectColor = Color(255,0,0)
22
23 def RandomRect():
24 w, h = randrange(W), randrange(H)
25 return Rect(randrange(W-w), randrange(H-h), w, h)
26
27 def ColorRect():
28 c = Color(randrange(256), randrange(256), randrange(256))
29 ascreen.fill(c, RandomRect())
30
31 def HSVRect():
32 global RectColor
33 h, s, v, a = RectColor.hsva
34 h, s, v, a = (h+hshift)%360, randrange(30,100), randrange(30,100), randrange(10,100)
35 RectColor.hsva = h, s, v, a
36 ascreen.fill(RectColor, RandomRect())
37
38 draws = [ColorRect, HSVRect]
39 DrawRect = RandomRect
40 time.set_timer(USEREVENT, timeout)
41 again = True
42 while again:
43 ev = event.wait()
44 if ev.type == USEREVENT:
45 draws[0]()
46 elif ev.type == KEYDOWN:
47 draws.append(draws.pop(0))
48 if ev.key == 27:
49 again = False
50 elif ev.type == QUIT:
51 again = False
52 screen.blit(ascreen, (0,0))
53 display.flip()
Прикреплённые файлы
Для ссылки на прикреплённый файл в тексте страницы напишите attachment:имяфайла, как показано ниже в списке файлов. Не используйте URL из ссылки «[получить]», так как он чисто внутренний и может измениться.Вам нельзя прикреплять файлы к этой странице.