Categories: Python

python-termcolor/

Сегодня я хотел бы вновь поделиться очень простым скриптом, который, если честно, и не очень-то тянет на отдельную заметку. Скрипт этот демонстрирует вывод в консоль разноцветного текста с использованием библиотеки termcolor. Но, как вы могли понять по заголовку, на самом деле все чуточку интереснее…

Установка termcolor :

sudo pip3 install termcolor

Сам скрипт:

#!/usr/bin/env python3

import sys
from termcolor import colored

def file_to_list ( fname ) :
with open ( fname , «r» ) as f:
return [ x. strip ( ) for x in f. readlines ( ) ]

def make_colored ( ch ) :
chars = {
«~» : ( «blue» , [ ] ) ,
«.» : ( «white» , [ ] ) ,
«#» : ( «green» , [ ] ) ,
«O» : ( «white» , [ «bold» ] ) ,
«^» : ( «red» , [ «dark» ] ) ,
«=» : ( «red» , [ «dark» ] ) ,
}
default = ( «red» , [ ] )
color , attrs = chars. get ( ch , default )
return colored ( ch , color , attrs = attrs )

def main ( ) :
if len ( sys . argv ) < 2 :
print ( «Usage: {} <file>» . format ( sys . argv [ 0 ] ) , file = sys . stderr )
sys . exit ( 1 )

lines = file_to_list ( sys . argv [ 1 ] )
for src_line in lines:
dst_line = «»
i = 0
chnum = len ( src_line )
while i < chnum:
ch = src_line [ i ]
dst_line = dst_line + make_colored ( ch )
i + = 1
print ( dst_line )

if __name__ == «__main__» :
main ( )

А вот так выглядит пример его вывода:

Дав волю воображению, можно увидеть здесь карту в ASCII-арте. Тильда обозначает моря и реки, точки — равнины, # — это леса, а ^ — это горы. Знак равенства означает наличие моста, а жирная буква O символизируют город, обнесенный стеной. Красным цветом обозначен путь, проложенный от текущего положения героя (*) до точки назначения (X).

Если когда-нибудь решите писать свою инди RPG или пошаговую стратегию, на первое время можно пользоваться такой графикой. Отладить механику и баланс, а уже потом писать что-то более красочное на каком-нибудь OpenGL . Что интересно, текстовый формат при этом можно продолжать использовать для карт и сейвов.

Полную версию исходников к этому посту вы найдете на GitHub . У меня все, спасибо за внимание 🙂

admin

Recent Posts

После включения диагностического запуска не удается войти в Windows — как исправить?

Некоторые пользователи, экспериментируя с конфигурацией системы в окне msconfig могут столкнуться с ситуацией, когда после…

1 неделя ago

WinScript — очистка и настройка Windows 11 и 10

На сайте не раз публиковались обзоры программ, предназначенных для очистки или настройки последних версий Windows.…

1 неделя ago

Предварительный просмотр накопительного обновления не устанавливается — решение

При установке некоторых обновлений Windows 11, имеющих в названии «Предварительный просмотр накопительного обновления», многие пользователи…

1 неделя ago

FixExec — восстановление ассоциаций .exe, .bat и .com файлов

Некоторые пользователи Windows 11, 10 и предыдущих версий системы могут столкнуться с ситуацией, когда исполняемые…

1 неделя ago

Ошибка 0x800705b4 при обновлении Windows 11 и 10 — как исправить?

При установке обновлений Windows 11/10 некоторые пользователи могут столкнуться с ошибкой с кодом 0x800705b4 и…

1 неделя ago

Обслуживание вашей версии Windows 11 окончено — что делать?

Пользователи Windows 11 могут столкнуться с сообщением «Обслуживание вашей версии Windows окончено» (Your version of…

1 неделя ago