Как заставить программу Python (2.7.x) выводить ASCII-графику в стиле nethack?

Я хочу сделать консольную игру, в которой постоянно нужно было бы выводить кадры графики ASCII, но мне интересно, как сделать эту функцию более плавной. Хотя я не верю, что игра nethack-console не написана на Python, я смотрю, насколько хорошо она может отображать «анимированные» кадры, которые, кажется, не двигаются, и не ясно показывает, что графика была «перепечатана». , что, в свою очередь, делает графику очень последовательной, и любая происходящая анимация «кажется сделанной на одной распечатке». Если описание недостаточно ясное, позвольте мне использовать примеры:

000X

Если «x» переместится на одну единицу влево, я бы хотел увидеть это на консоли:

00X0

и не:

000X 00X0


person Air Conditioner    schedule 05.07.2014    source источник
comment
comment
В конце концов вы можете попытаться использовать \r вместо \n — и вам придется и , в print — например, print '\r000X',, а затем print '\r00X0',. Но есть лучшее решение, например curses   -  person furas    schedule 05.07.2014


Ответы (1)


Ознакомьтесь с модулем curses или urwid, очень хорошее начало для консольных приложений. Curses (и urwid) позволяет рисовать кадр в буфере, а затем обновлять экран только там, где это необходимо.

person spinus    schedule 05.07.2014
comment
По моему опыту, проклятия обычно являются лучшим вариантом для таких вещей. - person Michal; 05.07.2014