2022-07-10 21:14:59
Матрица. Финал
Для подготовки консоли используем описанные в части 1 модули следующим образом:
bext.title ('Matrix') # меняем заголовок консоли
bext.clear () # очищаем консоль
bext.hide () # скрываем курсор в консоли
width, height = bext.size () # получаем размер консольного окна
width -= 1
height -= 1
Вводим константы с цветами. Нам нужен зелёный и тёмно-зелёный. Обязательно обращаем внимание на то, как называются нужные нам цвета в Windows:
lgreen = colorama.Fore.LIGHTGREEN_EX
green = colorama.Fore.GREEN
Интерфейсная часть готова.
Для капли создадим класс Drop
с атрибутами:
x - начальное положение по горизонтали
y - начальное положение по вертикали
drop_type - тип капли
timeout - задержка до следующего перемещения
wait_count - счетчик паузы
и методами:
move - метод перемещения капель
draw - метод рисования струи капли
con_print - метод для вывода символа нужного цвета в указанное место консольного окна
zero_draw - метод для рисования дополнительного 0 в начале каждой струи
renew - метод перерождения капель
Также не забываем, что нам нужны будут функции (вне класса) для вывода текста ( капель) в консоль.
Важное замечание: наша программа будет крутиться в вечном цикле while (true). Она завершится при нажатии кнопки Esc на клавиатуре. Добавим эту проверку:
key = bext.getKey (blocking = False) # проверка нажатия клавиша
if key == 'esc':
bext.clear ()
sys.exit ()
Попробуйте пройти все этапы и создать ту самую матрицу
Если не получиться, код решения будет опубликован уже завтра
7 views18:14