Использование проклятий Python 3 только в небольшой части терминала

Есть ли способ, с помощью которого проклятия можно инициировать, чтобы они занимали только часть экрана, позволяя обычным отпечаткам выходить над ним?

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

import curses
from curses import wrapper
from time import sleep
import random


def main(stdscr):
    stdscr.nodelay(True)
    stdscr.clear()
    participants = 5
    positions = dict()
    for i in range(participants):
    positions[i] = 0
    completed = 0
    game_winner = -1
    while True:
    _c = stdscr.getch()
    round_winner = random.randint(0, participants-1)

    winner_position = positions[round_winner]
    if winner_position < 10:
        positions[round_winner] = winner_position + 1

    stdscr.clear()
    for i in range(participants):
        position = positions[i]
        stdscr.addstr(i, 0, str(i+1) + ": ")
        stdscr.addstr(i, position+3, 'x')
        if position == 10:
            if game_winner < 0:
                game_winner = i + 1
            print(str(i + 1) + " completed the race!")
            positions[round_winner] = position + 1
            completed += 1
    sleep(1)
    if completed >= len(positions):
        break

    print("The winner is " + str(game_winner) + "!")


wrapper(main)

1 ответ

Вопрос в том

Есть ли способ, с помощью которого проклятия можно инициировать, чтобы они занимали только часть экрана, позволяя обычным отпечаткам выходить над ним?

на самом деле нет: вы можете сказать проклятиям притворяться, что он использует меньший экран, но в этом случае он будет использовать верхнюю часть экрана (установив LINES переменная окружения) и / или левая часть (путем установки COLUMNS), но это не помешает ему использовать стирание, которое очищает "неиспользуемую" часть экрана.

Другие вопросы по тегам