2

私は 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 に縮めましたが、最後の隅まで書く方法を知っている人がいたら教えてください。

4

1 に答える 1