#!/usr/koeki/bin/ruby # -*- coding: utf-8 -*- require "curses" # Cursesの初期化 Curses.init_screen begin # 初期座標 x = y = 0 # カーソルを非表示 Curses.curs_set(0) # 入力文字を非表示 Curses.noecho # キーパッドを有効にする Curses.stdscr.keypad(true) # Enterキーが押されるまでループ while 1 # (x, y) に文字を出力 Curses.setpos(y, x) Curses.addch("x") # 画面表示を更新 Curses.refresh # キー入力があるまで待つ c = Curses.getch # (x, y) の文字を削除 Curses.setpos(y, x) Curses.delch # キー判定 case c when Curses::KEY_UP # 「↑」キー # 一番上の行でなければ上に移動 if y > 0 y -= 1 end when Curses::KEY_DOWN # 「↓」キー # 一番下の行でなければ下に移動 if y < Curses.lines - 1 y += 1 end when Curses::KEY_RIGHT # 「→」キー # 一番右の列でなければ右に移動 if x < Curses.cols - 1 x += 1 end when Curses::KEY_LEFT # 「←」キー # 一番左の列でなければ左に移動 if x > 0 x -= 1 end else # 他のキーでループを抜ける break end end ensure # Cursesの終了処理 Curses.close_screen end