次のコンソールが与えられた場合:
import os
import tty
import termios
from sys import stdin
class Console(object):
def __enter__(self):
self.old_settings = termios.tcgetattr(stdin)
self.buffer = []
return self
def __exit__(self, type, value, traceback):
termios.tcsetattr(stdin, termios.TCSADRAIN, self.old_settings)
...
def dimensions(self):
dim = os.popen('stty size', 'r').read().split()
return int(dim[1]), int(dim[0])
def write(self, inp):
if isinstance(inp, basestring):
inp = inp.splitlines(False)
if len(inp) == 0:
self.buffer.append("")
else:
self.buffer.extend(inp)
def printBuffer(self):
self.clear()
print "\n".join(self.buffer)
self.buffer = []
今、私はそのバッファにいくつかの文字を取得する必要がありますが、文字が正しい順序で与えられておらず、いくつかの場所が空になります。たとえば、画面の12列目と14行目に「w」を表示してから、他の場所に「w」を配置し、あちらに「b」を配置したい場合などです...(コンソールは大きいです)これを処理するのに十分です)。どうすればこれを実装できますか?私は本当にこの問題を解決する方法の手がかりを持っていません。
私を悩ませているもう1つの質問は、この出口コンストラクターをどのように呼び出すかです。どのようなパラメーターを指定する必要がありますか?
心から、本当に経験の浅いプログラマー。