诅咒用Python编程

2024-04-24 14:02:52 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我开始在Python中使用Curses。 我已经有了这个源代码开始,慢慢地我会对它进行一些更新:

    #!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
Testing out the curses lib.
"""

import curses


def main(scr):
    """
    Draw a border around the screen, move around using the cursor and leave a mark
    of the latest pressed character on the keyboard.

    Perhaps you could make a nice painting using asciart?

    Quit using 'q'.
    """

    # Clear the screen of any output
    scr.clear()

    # Get screen dimensions
    y1, x1 = scr.getmaxyx()
    y1 -= 1
    x1 -= 1

    y0, x0 = 0, 0

    # Get center position
    yc, xc = (y1-y0)//2, (x1-x0)//2

    # Draw a border
    scr.border()

    # Move cursor to center
    scr.move(yc, xc)

    # Refresh to draw out
    scr.refresh()

    # Main loop
    x = xc
    y = yc
    ch = 'o'

    while True:
        key = scr.getkey()
        if key == 'q':
            break
        elif key == 'KEY_UP':
            y -= 1
        elif key == 'KEY_DOWN':
            y += 1
        elif key == 'KEY_LEFT':
            x -= 1
        elif key == 'KEY_RIGHT':
            x += 1
        else:
            ch = key

        # Draw out the char at cursor position
        scr.addstr(ch)

        # Move cursor to new position
        scr.move(y, x)

        # Redraw all items on the screen
        scr.refresh()



if __name__ == "__main__":
    print(__doc__)
    print(main.__doc__)
    input("Press enter to begin playing...")
    curses.wrapper(main)

我现在要做的是确保当我不能点击屏幕的边界时。但我不知道我能用它来做什么。 我已经在python docs上读过了,但找不到任何我认为有用的东西。


Tags: thetokeymovemainoutscreencursor
1条回答
网友
1楼 · 发布于 2024-04-24 14:02:52

你知道有效范围。从0y1(含)。(分别为0到x1)。所以只需添加测试以确保坐标保持在范围内:

    elif key == 'KEY_UP':
      if y > 0:
        y -= 1
    elif key == 'KEY_DOWN':
      if y < y1:
        y += 1

x相似。在

相关问题 更多 >