История изменений
Исправление slovazap, (текущая версия) :
но как сделать скрипт
Я думаю тебе не надо заморачиваться и достаточно записать всю анимацию в текстовом файле - так будет и наглядно, и гибко, и менять легко. Вот она:
0----------0
-0--------0-
--0------0--
---0----0---
----0--0----
-----00-----
----0--0----
---0----0---
--0------0--
-0--------0-
0----------0
00--------00
000------000
0000----0000
00000--00000
000000000000
-0000000000-
--00000000--
---000000---
----0000----
-----00-----
----0--0----
---0----0---
--0------0--
-0--------0-
0----------0
-0--------0-
--0------0--
---0----0---
----0--0----
-----00-----
----0000----
---000000---
--00000000--
-0000000000-
000000000000
00000--00000
0000----0000
000------000
00--------00
Программно её сгенерировать можно так (python3):
import sys
import time
def gen_half_frame(width, pos, left, exact, right):
return [left] * pos + [exact] + [right] * (width - pos - 1)
def gen_full_frame(width, pos, left, exact, right):
return gen_half_frame(width, pos, left, exact, right) + list(reversed(gen_half_frame(width, pos, left, exact, right)))
def iter_scene_in(width, left, exact, right):
for pos in range(width - 1):
yield gen_full_frame(width, pos, left, exact, right)
def iter_scene_out(width, left, exact, right):
for pos in range(width - 1):
yield gen_full_frame(width, width - 1 - pos, left, exact, right)
def iter_animation(width):
while True:
yield from iter_scene_in(width, '-', '0', '-')
yield from iter_scene_out(width, '-', '0', '-')
yield from iter_scene_in(width, '0', '0', '-')
yield from iter_scene_in(width, '-', '0', '0')
yield from iter_scene_out(width, '-', '0', '-')
yield from iter_scene_in(width, '-', '0', '-')
yield from iter_scene_out(width, '-', '0', '0')
yield from iter_scene_out(width, '0', '0', '-')
for arr in iter_animation(6):
print(''.join(arr), end='\r', file=sys.stderr)
time.sleep(0.1)
Исходная версия slovazap, :
но как сделать скрипт
Я думаю тебе не надо заморачиваться и достаточно записать всю анимацию в текстовом файле - так будет и наглядно, и гибко, и менять легко. Вот она:
0----------0
-0--------0-
--0------0--
---0----0---
----0--0----
-----00-----
----0--0----
---0----0---
--0------0--
-0--------0-
0----------0
00--------00
000------000
0000----0000
00000--00000
000000000000
-0000000000-
--00000000--
---000000---
----0000----
-----00-----
----0--0----
---0----0---
--0------0--
-0--------0-
0----------0
-0--------0-
--0------0--
---0----0---
----0--0----
-----00-----
----0000----
---000000---
--00000000--
-0000000000-
000000000000
00000--00000
0000----0000
000------000
00--------00
import sys
import time
def gen_half_frame(width, pos, left, exact, right):
return [left] * pos + [exact] + [right] * (width - pos - 1)
def gen_full_frame(width, pos, left, exact, right):
return gen_half_frame(width, pos, left, exact, right) + list(reversed(gen_half_frame(width, pos, left, exact, right)))
def iter_scene_in(width, left, exact, right):
for pos in range(width - 1):
yield gen_full_frame(width, pos, left, exact, right)
def iter_scene_out(width, left, exact, right):
for pos in range(width - 1):
yield gen_full_frame(width, width - 1 - pos, left, exact, right)
def iter_animation(width):
while True:
yield from iter_scene_in(width, '-', '0', '-')
yield from iter_scene_out(width, '-', '0', '-')
yield from iter_scene_in(width, '0', '0', '-')
yield from iter_scene_in(width, '-', '0', '0')
yield from iter_scene_out(width, '-', '0', '-')
yield from iter_scene_in(width, '-', '0', '-')
yield from iter_scene_out(width, '-', '0', '0')
yield from iter_scene_out(width, '0', '0', '-')
for arr in iter_animation(6):
print(''.join(arr), end='\r', file=sys.stderr)
time.sleep(0.1)