Curses クラスを学習していますが、ENTER キーの制御に問題があります。これまでの私のコードは次のとおりです。
require 'curses'
win = Curses::Window.new(0, 0, 0, 0)
Curses.init_screen
Curses.cbreak
Curses.nonl
Curses.stdscr.keypad(true)
loop do
case Curses.getch
when 13 # Enter
Curses.addstr "abc"
when 8 # Backspace
Curses.delch
end
end
win.close
問題は、ENTER キーを押すと、「abc」が画面に書き込まれることです (予想どおり)。ただし、もう一度 ENTER を押すと、「abc」が画面上の同じ位置に書き直されます。ENTER キーを押すと、最初にカーソル位置が (0,0) に設定され、次に文字列が追加されるようです。カーソル位置を(0,0)に設定して停止するにはどうすればよいですか?
また、何らかの理由で、定数が私のキーと一致しないため、ENTER キーはキー 13 ですが、ENTER キーの Ruby 定数は 400 っぽいです。私は派手なキーボードなどを使用していません。スタンダードなアメリカン。