hjklyubnで移動するだけのコード
windowsはサポート外
#!/usr/bin/env python # -*- coding: utf-8 -*- from __future__ import print_function import curses.wrapper class Player(): def __init__(self, y, x): self.y = y self.x = x def mainloop(stdscr): screen = stdscr.subwin(23,79,0,0) u = Player(y=13, x=40) while(1): # @を描画 screen.addstr(u.y, u.x, '@') screen.move(u.y, u.x) screen.refresh() ch = chr(screen.getch()) # qを押すと終了 if ch=='q': break if ch in 'hjklyubn': screen.addstr(u.y, u.x, ' ') if ch in ('h', 'y', 'b'): u.x -= 1 if ch in ('l', 'u', 'n'): u.x += 1 if ch in ('y', 'k', 'u'): u.y -= 1 if ch in ('b', 'j', 'n'): u.y += 1 if __name__== '__main__' : try : curses.wrapper(mainloop) except Exception as e: import sys print(type(e), e, file=sys.stderr)