# coding: utf-8 require'curses' include Curses require 'csv' words = CSV.read("new2.csv", headers:true) init_screen cbreak begin while true setpos(0,0) addstr(sprintf(<<~home) メニュー 1.英単語の確認 2.確認テスト 0.終了 home ) menu = getstr if menu == "0" break elsif menu == "1" setpos(3,0) addstr(sprintf("検索(一部でもOK)")) ptn = Regexp.new(getstr) words.each do |row| if ptn =~ row["en"] addstr(sprintf("%sの意味は%sです。\n",row["en"],row["jp"])) refresh end end elsif menu == "2" n = 0 while n <= 10 x = rand(words.length) setpos(6,0) addstr(sprintf("確認テストをします。英語の綴りを正しく入れてください。")) setpos(7,0) addstr(sprintf("%s=>\n",words[x]["jp"])) refresh l = getstr setpos(8,0) addstr(sprintf("%sといれました。正解は[%s]\n",l,words[x]["en"])) refresh n+=1 end end close_screen end end