私は Python3.3 で curses を使用しており、使用可能なスペース全体を文字で埋める必要があります。double for ループが最後のコーナーに到達すると、エラーが発生します。
Traceback (most recent call last):
File "main.py", line 14, in <module>
curses.wrapper(main)
File "/usr/local/lib/python3.3/curses/__init__.py", line 94, in wrapper
return func(stdscr, *args, **kwds)
File "main.py", line 9, in main
stdscr.addch(y, x, ord('.'))
_curses.error: addch() returned ERR
文字を追加するたびに、カーソルが右に移動することに気付きました。私はこれを十分にテストしていませんが、stdscr.addch への最後の呼び出しでカーソルがウィンドウの端から離れていると思われ、エラーが発生する可能性があります。
追加のメモは、ウィンドウが返すものの 1 単位下の最大幅または高さを使用することで、エラーなしでループできることです。
失敗するソース:
import curses
def main(stdscr):
height, width = stdscr.getmaxyx()
for y in range(height):
for x in range(width):
stdscr.addch(y, x, ord('.'))
stdscr.refresh()
stdscr.getch()
if __name__ == '__main__':
curses.wrapper(main)
私のプロジェクトでは、完全な長方形を使用することが重要です。ここまでで、最大幅を 80 から 79 に縮めましたが、最後の隅まで書く方法を知っている人がいたら教えてください。