# coding: utf-8 #このプログラムのテーマは英語が苦手な人のための英単語を覚えるプログラムです。 #このプログラムを作るきっかけは友達が英単語を覚えるのが苦手と言っていたのと、自分も英単語を覚えるのが苦手なので、そんな人でも英単語を覚えられるプログラムがあれば便利だと思ったからです。 #このプログラムは英和辞典と確認テストができます。英和辞典では #このプログラムを使ったらかなり英単語を覚えることができました。 # require'curses' include Curses require 'csv' words = CSV.read("new2.csv", headers:true) note = CSV.read("memo.csv", headers:true) init_screen cbreak begin setpos(0,0) addstr(sprintf(<<~home) メニュー 1.英和辞典 2.和英辞典 3.確認テスト 4.メモ帳 home ) menu = getstr if menu == "1" setpos(3,0) addstr(sprintf("検索(一部でもOK)")) pattern = STDIN.getch regexp = Regexp.new(pattern,nil) words.each do |row| if regexp =~ row["en"] addstr(sprintf("[%s]の意味は[%s]です。\n",row["en"],row["jp"])) refresh end end elsif menu == "2" setpos(3,0) addstr(sprintf("検索(一部でもOK)")) pattern = STDIN.getc regexp = Regexp.new(pattern,nil) words.each do |row| if regexp =~ row["jp"] addstr(sprintf("[%s]の意味は[%s]です。\n",row["jp"],row["en"])) refresh end end elsif menu == "3" 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 elsif menu == "4" addstr(sprintf(<<~memo) メモ帳を開きます。 何をしますか? 1.メモを確認 2.メモを追加 memo ) memo = getch if memo == "1" setpos(3,0) addstr(sprintf("メモを表示します")) refresh note.each do |row| addstr(sprintf("%s=>%s\n",row["en"],row["jp"])) refresh end elsif memo == "2" setpos(7,0) addstr(sprintf("足したい英単語:")) refresh eng = getstr addstr(sprintf("意味:")) refresh jpn = getstr CSV.open("memo.csv","a") do |c| c << [eng,jpn] end end end close_screen end