Как сделать этот вывод быстрее? - PullRequest
0 голосов
/ 12 декабря 2018
import time
import sys
try:                                                                        
    shell = sys.stdout.shell
except AttributeError:
    raise RuntimeError("you must run this program in IDLE")

Grid=[[0,0,0,0,0,1,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,],[0,0,0,0,0,0,0,0,0,0,]]
counterX=0
counterY=0
while (counterX<=10 and counterY<=19):
    if(Grid[counterY-1][counterX-1]==0):
        if (counterX!=10):
            shell.write("⬛")
        else:
            shell.write("⬛\n")
    if(Grid[counterY-1][counterX-1]==1):
        if (counterX!=10):
            print("⬛", end="")
        else:
            print("⬛")
    if(counterX!=10):
        counterX+=1
    else:
        counterX=0
        counterY+=1
i=0
for i in range (0,44):
    print("")
    i+=1

Я поставил перед собой задачу создать игру с графическим интерфейсом пользователя с использованием ASCII, и при этом я распечатываю игровую сетку для каждого игрового состояния (я печатаю ее так, чтобы она выглядела так, как будто она заменила последнее игровое состояние, когдана самом деле на нем было напечатано достаточно строк, поэтому он выглядит на одном и том же месте.(Я еще не добавил 'если значение 1 сделает цвет красным ")

Во всяком случае - при распечатке этого вы можете увидеть его печать построчно. Это быстро, но заметно. Как печататьвсе сразу?

Новый код должен быть протестирован в полноэкранном режиме оболочки

1 Ответ

0 голосов
/ 13 декабря 2018

Вывод на печать, скорее всего, будет быстрее, если вы запустите код напрямую с помощью python из командной строки, а не с IDLE.Это также должно появиться быстрее, если вы печатаете целые строки сразу, а не символ за раз.Это может быть еще быстрее, если вы вычисляете все строки как одну строку и печатаете все сразу одним вызовом печати. ​​

...