Использование проклятий Python 3 только в небольшой части терминала - PullRequest
0 голосов
/ 21 февраля 2019

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

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

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 Ответ

0 голосов
/ 21 февраля 2019

Вопрос:

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

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

...