diff --git a/after1.jpg b/after1.jpg new file mode 100644 index 0000000..869bd59 --- /dev/null +++ b/after1.jpg Binary files differ diff --git a/after2.jpg b/after2.jpg new file mode 100644 index 0000000..cf38a52 --- /dev/null +++ b/after2.jpg Binary files differ diff --git a/after3.jpg b/after3.jpg new file mode 100644 index 0000000..96b41d6 --- /dev/null +++ b/after3.jpg Binary files differ diff --git a/animal.rb b/animal.rb index ee03723..1fbc504 100644 --- a/animal.rb +++ b/animal.rb @@ -1,11 +1,60 @@ -#!/usr/bin/env ruby +#!/usr/koeki/bin/ruby # -*- coding: utf-8 -*- -print "お湯を入れました\n" -nokori = 3 +#初期設定 -while nokori > 0 -sleep(3) #60秒プログラムを止める -nokori = nokori - 1 +require 'curses' +include Curses + +init_screen +cbreak +noecho + +rt = [] + +begin + sleep(0) + + 10.times do + system("display -geometry +0+0 before.jpg&") + sleep(2) + system('pkill magick -U `whoami`') + srand + i = rand(3)+1 + if i == 1 + system("display -geometry +0+0 after1.jpg&") + elsif i == 2 + system("display -geometry +0+0 after2.jpg&") + elsif i == 3 + system("display -geometry +0+0 after3.jpg&") + end + setpos(0,0) + addstr("\n 1:安全 2:危険") + refresh + start = Time.now + answer = getch + stop = Time.now + rt << [i,answer,stop.to_f - start.to_f] + refresh + + system('pkill magick -U `whoami`') + setpos(0,0) + addstr("\n ") + refresh + sleep(2) + end + + correct = 0 + total = 0 + for j in rt + total += j[2] + if (j[0] == 1 && j[1] == "1") || (j[0] != 1 && j[1] == "2") + correct += 1 + end + end + +ensure + close_screen end -print "いただきまーす!\n" + +printf("正答%d回  反応時間%5.3f秒\n", correct, total/10) diff --git a/before.jpg b/before.jpg new file mode 100644 index 0000000..660e13f --- /dev/null +++ b/before.jpg Binary files differ diff --git a/cafe.csv b/cafe.csv new file mode 100644 index 0000000..6f3c838 --- /dev/null +++ b/cafe.csv @@ -0,0 +1,4 @@ +店名,人気メニュー,住所,電話番号,バス停,バス線名 +Le-Monde,塩汁スパゲティー,山形県酒田市北新橋2-11-8,0234-23-0373,北新橋,市内循環D線 +ギャラリー喫茶ヴィヨン,鉄板ナポリタン,山形県酒田市千石町2-11-15,0234-24-8300,酒田リハビリ病院前,市内循環A線 +珈琲貴族,担々麺,山形県酒田市東泉町1-13-13,0234-24-7811,東泉町二丁目,市内循環A線・市内循環B線 diff --git a/cafe.rb b/cafe.rb new file mode 100644 index 0000000..9b84433 --- /dev/null +++ b/cafe.rb @@ -0,0 +1,37 @@ +#!/usr/koeki/bin/ruby +#-*-coding: utf-8-*- + +require 'csv' +data = CSV.read("cafe.csv", headers: true) +while true + puts "酒田市のカフェについてのページだよ!" + puts "何を知りたい?" + puts "1 カフェの場所" + puts "2 カフェ近くのバス停(るんるんバス)" + puts "0 終了" + print("番号を選んでね!:") + input=gets.to_i + if input == 0 then + break + elsif input == 1 then + n=0 + data.each{|row| + printf("%d %s: %sが有名のカフェだよ\n",n+=1, row["店名"],row["人気メニュー"]) + printf("住所は、%s。電話番号は、%s。\n", row["住所"],row["電話番号"]) + print("-------------------------------------------------------------\n")} + elsif input == 2 then + s=0 + data.each{|row| + printf("%d %s \n",s+=1,row["店名"])} + print("どのバス停が知りたい?(番号で答えてね):") + num = gets.to_i-1 + if num >= 0 && num < data.length + printf("%sに近いバス停は、 %sです\n", data[num]["店名"],data[num]["バス停"]) + printf("そのバス停は%sのバス線にあります\n", data[num]["バス線名"]) + print("------------------------------------------------------\n") + end + else + print("0〜2から選んでね\n") + end +end + diff --git a/fruits.csv b/fruits.csv new file mode 100644 index 0000000..73e65dc --- /dev/null +++ b/fruits.csv @@ -0,0 +1,7 @@ +品物,価格,生産地 +りんご,200,青森 +さくらんぼ,500,山形 +みかん,100,愛媛 +もも,1000,福島 +バナナ,300,沖縄 +ぶどう,700,山梨 diff --git a/fruits.rb b/fruits.rb new file mode 100644 index 0000000..0630c12 --- /dev/null +++ b/fruits.rb @@ -0,0 +1,12 @@ +#!/usr/bin/env ruby +# coding: utf-8 +Encoding.default_external = "utf-8" # CSVファイルがutf-8のとき +require "csv" +data = CSV.read("fruits.csv",headers: true) + +data.each{|row| + printf("%sは、%d円で生産地は%sです\n", + row["品物"],row["価格"],row["生産地"])} + + + diff --git a/kensaku.csv b/kensaku.csv new file mode 100644 index 0000000..8577746 --- /dev/null +++ b/kensaku.csv @@ -0,0 +1,6 @@ +name,gakko,gakunen,kozukai +公益太郎,三川八中,2,2000 +飯森花子,余目百中,1,4000 +鶴岡一人,タキタロウ小,4,200 +鶴岡二子,タキタロウ小,2,300 +遊佐梅花,丸池小,6,900 diff --git a/kensaku.rb b/kensaku.rb new file mode 100644 index 0000000..fa29cf1 --- /dev/null +++ b/kensaku.rb @@ -0,0 +1,10 @@ +#!/usr/bin/env ruby +#coding: utf-8 + +Encoding.default_external = 'utf-8' +require 'csv' + +data = CSV.read('moji.csv', headers: true) +data.each do |row| + puts row['moji'] +end diff --git a/kensaku1.rb b/kensaku1.rb new file mode 100644 index 0000000..7ddaf3a --- /dev/null +++ b/kensaku1.rb @@ -0,0 +1,12 @@ +#!/usr/bin/env ruby +# coding: utf-8 + +Encoding.default_external = 'utf-8' +require 'csv' + +data = CSV.read('moji.csv', headers:true) +data.each do |row| + if /i/ =~ row['moji'] + puts row['moji'] + end +end diff --git a/kensaku2.rb b/kensaku2.rb new file mode 100644 index 0000000..db220f4 --- /dev/null +++ b/kensaku2.rb @@ -0,0 +1,31 @@ +#!/usr/bin/env ruby +# coding: utf-8 + +require 'csv' +data = CSV.read("kensaku.csv", headers: true) + +puts "学校で探す:1" +puts "金額で探す:2" +print "どれにしますか:" +sel = gets.to_i +if sel == 1 + print "探したい学校名を入れてください:" + ptn = Regexp.new(gets.chomp) + data.each do |row| + if ptn =~ row["gakko"] + printf("%sさんは%s%s年です\n", row["name"], row["gakko"], row["gakunen"]) + end + end + +elsif sel == 2 + print "絞り込みたい金額を入れてください:" + gaku = gets.to_i + data.each do |row| + if gaku < row["kozukai"].to_i + printf("%sさんは%d円もらっています\n", row["name"], row["kozukai"].to_i) + end + end + +else + printf("%d番はありません。さようなら。\n", sel) +end diff --git a/kyoutsuugo.txt b/kyoutsuugo.txt new file mode 100644 index 0000000..4f07c3e --- /dev/null +++ b/kyoutsuugo.txt @@ -0,0 +1,13 @@ +いや~今日のテストわからなくて苦労したよ +わからなくても大丈夫さ +大丈夫なんてお前たちダメでしょう +しっかり勉強しないと偉くなれないよ +偉くなんてならなくてもいいよ +ぺらぺら言わないで早く勉強しなさい +お父さんはいつもうるさいね~ +いいか言うこと聞かないと怒るぞ +でも今日のテストのプリントどこにやったかわからないんだもの +わからないなんてきちんとさがして勉強しなさい +勉強の前にご飯食べさせて +たくさん食べなさい +はい食べます \ No newline at end of file diff --git a/moji.csv b/moji.csv new file mode 100644 index 0000000..4f7b043 --- /dev/null +++ b/moji.csv @@ -0,0 +1,6 @@ +moji +i +Programming +Application +I +Image diff --git a/program.rb b/program.rb new file mode 100644 index 0000000..1fbc504 --- /dev/null +++ b/program.rb @@ -0,0 +1,60 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- + +#初期設定 + +require 'curses' +include Curses + +init_screen +cbreak +noecho + +rt = [] + +begin + sleep(0) + + 10.times do + system("display -geometry +0+0 before.jpg&") + sleep(2) + system('pkill magick -U `whoami`') + srand + i = rand(3)+1 + if i == 1 + system("display -geometry +0+0 after1.jpg&") + elsif i == 2 + system("display -geometry +0+0 after2.jpg&") + elsif i == 3 + system("display -geometry +0+0 after3.jpg&") + end + setpos(0,0) + addstr("\n 1:安全 2:危険") + refresh + start = Time.now + answer = getch + stop = Time.now + rt << [i,answer,stop.to_f - start.to_f] + refresh + + system('pkill magick -U `whoami`') + setpos(0,0) + addstr("\n ") + refresh + sleep(2) + end + + correct = 0 + total = 0 + for j in rt + total += j[2] + if (j[0] == 1 && j[1] == "1") || (j[0] != 1 && j[1] == "2") + correct += 1 + end + end + +ensure + close_screen +end + +printf("正答%d回  反応時間%5.3f秒\n", correct, total/10) diff --git a/program_advanced.rb b/program_advanced.rb new file mode 100644 index 0000000..d740d94 --- /dev/null +++ b/program_advanced.rb @@ -0,0 +1,66 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- + +#初期設定 + +require 'curses' +include Curses + +init_screen +cbreak +noecho + +rt = [] + +begin + sleep(0) + + 10.times do + system("display -geometry +0+0 before.jpg&") + sleep(2) + system('pkill magick -U `whoami`') + srand + i = rand(3)+1 + if i == 1 + system("display -geometry +400+0 quiz1.jpg&") + sleep(0.5) + system("display -geometry +0+0 after1.jpg&") + elsif i == 2 + system("display -geometry +400+0 quiz1.jpg") + sleep(0.5) + system("display -geometry +0+0 after2.jpg&") + elsif i == 3 + system("display -geometry +400+0 quiz1.jpg&") + sleep(0.5) + system("display -geometry +0+0 after3.jpg&") + end + setpos(0,0) + addstr("\n 1:安全 2:危険") + refresh + start = Time.now + answer = getch + stop = Time.now + rt << [i,answer,stop.to_f - start.to_f] + refresh + + system('pkill magick -U `whoami`') + setpos(0,0) + addstr("\n ") + refresh + sleep(2) + end + + correct = 0 + total = 0 + for j in rt + total += j[2] + if (j[0] == 1 && j[1] == "1") || (j[0] != 1 && j[1] == "2") + correct += 1 + end + end + +ensure + close_screen +end + +printf("正答%d回  反応時間%5.3f秒\n", correct, total/10) diff --git a/ramen.CSV b/ramen.CSV new file mode 100644 index 0000000..5323bca --- /dev/null +++ b/ramen.CSV @@ -0,0 +1,17 @@ +[["味", "店名", " おすすめ"," 住所", " 電話番号"] + + ["しょうゆ", "銀河", "銀河ラーメン","山形県鶴岡市下山添一里塚152", "0235-57-4645"] + + ["しょうゆ", "田代食堂", "チャーシューメン", "山形県鶴岡市田代大坂山309", "0235-57-4614"] + + ["しょうゆ", "久太", "ラーメン", "山形県鶴岡市湯温海湯之尻518", "0235-43-3315"] + + ["しお", "千石や", "塩ラーメン", "山形県鶴岡市大宝寺字日本国378-10", "0235-25-7242"] + + ["しお", "晴天の風", "しおワンタン麺", "山形県鶴岡市伊勢原町2-24", "0235-23-8508"] + + ["みそ", "満び", "辛味噌ラーメン","山形県鶴岡市日出一丁目22-8", "0235-25-5338"] + + ["みそ","つるおか家", "みそホルモンめん","山形県鶴岡市小淀川地田5-1","0235-23-5727"] + + ["みそ","龍上海" "赤湯からみそラーメン", "山形県鶴岡市日出2丁目3-51","0235-77-4000"] diff --git a/ramen.rb b/ramen.rb new file mode 100755 index 0000000..3158681 --- /dev/null +++ b/ramen.rb @@ -0,0 +1,60 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- + +require 'csv' +data = CSV.read("ramen.csv", headers:true) +while true + puts "好きなラーメンの味をえらんでね!" + puts "1:しょうゆ" + puts "2:しお" + puts "3:みそ" + puts "0:終了" + print("0〜3の数字を入力してね!:") + input=gets.to_i + if input == 0 then + break + elsif input == 1 then + data.each{|row| + printf("%d %s: %sがおすすめのラーメンだよ¥n", row["店名"]) + printf("住所は, %s 電話番号は, %s ¥n", row ["住所"],row["電話番号"]) + print ("---------------------------------------------------------------¥n")} + elsif input == 2 then + data.esch{|row| + printf("%d %s: %sがおすすめのラーメンだよ¥n", row["店名"]) + printf("住所は, %s 電話番号は, %s。¥n", row ["住所"],row["電話番号"]) + print ("--------------------------------------------------------------¥n")} + elsif input == 3 then + date.each{|row| + printf("%d %s: %sがおすすめのラーメンだよ¥n", row["店名"]) + printf("住所は, %s 電話番号は, %s。¥n", row ["住所"],row ["電話番号"]) + print ("-------------------------------------------------------------¥n")} + end + print("1〜3から選んでね") + end + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ramen2.rb b/ramen2.rb new file mode 100755 index 0000000..e61d574 --- /dev/null +++ b/ramen2.rb @@ -0,0 +1,6 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- + +print("味を入力してね。\n") + + diff --git a/ramen3.rb b/ramen3.rb new file mode 100755 index 0000000..574e836 --- /dev/null +++ b/ramen3.rb @@ -0,0 +1,51 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- + +require 'csv' +data = CSV.read("ramen.csv", headers:true) +while true + puts "好きなラーメンの味をえらんでね!" + puts "1:しょうゆ" + puts "2:しお" + puts "3:みそ" + puts "0:終了" + print("0〜3の数字を入力してください") + input=gets.to_i + if input == 0 then + break + elsif input == 1 then + printf("銀河と田代食堂がおすすめです。\n") + elsif input == 2 then + printf("千石やと晴天の風がおすすめです。\n") + elsif input == 3 then + printf("満びとつるおか家がおすすめです。\n") + end + + end + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/shonaiben_translator.rb b/shonaiben_translator.rb new file mode 100644 index 0000000..18ce909 --- /dev/null +++ b/shonaiben_translator.rb @@ -0,0 +1,44 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- + +def levenshtein(string1, string2, memo={}) # レーベンシュタイン距離を計算するメソッド + return memo[[string1, string2]] if memo[[string1, string2]] + return string2.size if string1.empty? + return string1.size if string2.empty? + return levenshtein(string1[1..], string2[1..], memo) if string1[0] == string2[0] + min_dist = 1 + [levenshtein(string1[1..], string2, memo), + levenshtein(string1, string2[1..], memo), + levenshtein(string1[1..], string2[1..], memo) + ].min + memo[[string1, string2]] = min_dist + min_dist +end + +source = File.readlines("shounaiben.txt") # 庄内弁の文章をファイルから読み込み、配列に保存 +candidates = File.readlines("kyoutsuugo.txt") # 共通語の訳文をファイルから読み込み、配列に保存 + +i = 0 +while i < source.length # 庄内弁の文章ごとに同じ処理を繰り返す + dist2target = levenshtein(source[i].chomp, candidates[i].chomp) # 正解訳文への編集距離の計算 + min_dist = dist2target # 最短編集距離の初期値(=正解訳文への編集距離) + count_same_or_lower = 0 # 編集距離が正解への距離以下である文章の総数の初期値 + best_cand = candidates[i].chomp # 最短編集距離の訳文の初期値(=正解訳文) + for cand in candidates # それぞれの共通語の文章への編集距離を調べる + dist = levenshtein(source[i].chomp, cand.chomp) + if dist < min_dist + min_dist = dist + best_cand = cand + end + if dist <= dist2target + count_same_or_lower += 1 + end + end + printf("庄内弁の文章: %s\n", source[i].chomp) + printf("共通語の訳文(正解): %s\n", candidates[i].chomp) + printf("最短編集距離の訳文: %s\n", best_cand.chomp) + printf("正解訳文への編集距離: %d\n", dist2target) + printf("最短編集距離: %d\n", min_dist) + printf("編集距離が正解訳文への距離以下である文章の総数: %d\n", count_same_or_lower) + puts + i += 1 +end \ No newline at end of file diff --git a/shounaiben.txt b/shounaiben.txt new file mode 100644 index 0000000..8266081 --- /dev/null +++ b/shounaiben.txt @@ -0,0 +1,13 @@ +いや~今日のテストわがらねぐでよいでねけ~ +わがらねたってなんでもね~ +なんでもでねんでろおめだだめだんねあんが +ちゃんと勉強しねど偉ぐならんねさげの~ +偉ぐなんてなんねぐてもいさげ +しゃべっちょこいでねでちゃっちゃど勉強せ +だだはいっつもやがましちゃ +いがの~言うごど聞がねどごげっぞ +したって今日のテストのプリントどごさやたがわがらねもの~ +わがらねどちゃんとさがして勉強せ +勉強の前さままかせでくれ +ほれいっぺけ~ +せばく~ \ No newline at end of file