Autor
|
Tema: [Python] Imprimir mas rápido (Leído 2,788 veces)
|
patilanz
Desconectado
Mensajes: 481
555-555-0199@example.com
|
Hola tengo este codigo: from os import system from msvcrt import getch import colorama from colorama import Fore import json colorama.init() maxX = 80 maxY = 40 system('mode 80,40') class posistion: def __init__(self): self.x = 0 self.y = 1 def addX(self,v = 1): if self.x < maxX - 1: self.x += v if self.x < 0: self.x = 0 return self.x else: return -1 def addY(self,v = 1): if self.y < maxY - 1: self.y += v if self.y < 1: self.y = 1 return self.y else: return -1 class cForSave: pass def Mprint(m): r = '\n' for i,x in enumerate(m): for j,y in enumerate(x): if i == pos.y and j == pos.x: r += (Fore.RED + y) elif y == ' ': r += (Fore.WHITE + y) else: r += (Fore.WHITE + y) print r, #print pos.x,pos.y pos = posistion() matrix = [[' ' for x in range(1,maxX + 1)] for x in range(1,maxY + 1)] while True: c = getch() if c == '\000' or c == '\xe0': key = ord(getch()) if key == 77: # right pos.addX() elif key == 75: # left pos.addX(-1) elif key == 80: # bottom pos.addY() elif key == 72: # top pos.addY(-1) elif c == '\t': # Save monster to file f = open('monster','w') s = cForSave() s.matrix = matrix s.pos = pos json.dump(s,f) f.close() system('cls') print 'Monster saved!' system('pause') elif c == '\r': # Load monster from file try: f = open('monster','r') s = json.load(f) matrix = s.matrix pos = s.pos except IOError: system('cls') print 'Monster file not found!' system('pause') else: matrix[pos.y][pos.x] = c system('cls') Mprint(matrix)
Funciona pero muy lento y la pantalla parpadea. Es mi segundo programa en python y no se me ocurrió otra manera. No se como modificar solo un carácter del terminal con python y no reescribir todo. Un saludo
|
|
|
En línea
|
|
|
|
engel lex
|
no hay ninguna manera en que pueda probar que es lo que pasa... pero recomiendo usar el cls justo antes de la impresión para evitar el parpadeo
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
patilanz
Desconectado
Mensajes: 481
555-555-0199@example.com
|
no hay ninguna manera en que pueda probar que es lo que pasa... pero recomiendo usar el cls justo antes de la impresión para evitar el parpadeo
El cls no mejora nada. También probé con imprimir cada carácter en su sitio pero veo que tarda todavía mas: def Mprint(m): r = '\n' for i,x in enumerate(m): for j,y in enumerate(x): if i == pos.y and j == pos.x: r += (Fore.RED + '\033[' + str(i) + ';' + str(j) + 'H' + y) elif y == ' ': r += (Fore.WHITE + '\033[' + str(i) + ';' + str(j) + 'H' + y) else: r += (Fore.WHITE + '\033[' + str(i) + ';' + str(j) + 'H' + y) print r,
Por ahora no se me ocurre otra cosa
|
|
|
En línea
|
|
|
|
engel lex
|
y si en lugar de borrar simplemente sobreescribes (y aagregas una cantidad x de espacios al final para sobreescribir en blanco el resto)
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Duda imprimir variables Python
« 1 2 »
Scripting
|
CaronteGold
|
16
|
20,092
|
29 Noviembre 2009, 22:30 pm
por Novlucker
|
|
|
Imprimir valor de una funcion en python
Scripting
|
Canariolp21
|
4
|
8,691
|
30 Noviembre 2010, 16:48 pm
por Canariolp21
|
|
|
Imprimir resultado Python
Scripting
|
krystiag
|
0
|
2,207
|
29 Noviembre 2016, 19:19 pm
por krystiag
|
|
|
Python se ha convertido en el lenguaje de programación que crece más rápido
Noticias
|
wolfbcn
|
0
|
1,762
|
12 Septiembre 2017, 02:01 am
por wolfbcn
|
|
|
[PYTHON]Imprimir en consola al terminar de ejecutarse una función...
Scripting
|
dimineko
|
5
|
3,024
|
18 Junio 2018, 16:55 pm
por e
|
|