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 100755 index 0000000..f6882d4 --- /dev/null +++ b/cafe.rb @@ -0,0 +1,39 @@ + +#!/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..f8b8507 --- /dev/null +++ b/fruits.csv @@ -0,0 +1,4 @@ +漫画,作者,登場人物 +ダンガンロンパ,小高和剛,モノクマ +推しの子,赤坂アカ,アイ +呪術廻戦,茶見下々,虎杖悠二 diff --git a/fruits.rb b/fruits.rb new file mode 100755 index 0000000..2e7a306 --- /dev/null +++ b/fruits.rb @@ -0,0 +1,9 @@ +#!/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の作者%sです。登場人物は%sです\n", + row["漫画"],row["作者"],row["登場人物"])} diff --git a/kukiko.rb b/kukiko.rb new file mode 100755 index 0000000..e3b2450 --- /dev/null +++ b/kukiko.rb @@ -0,0 +1,66 @@ + + + + +shonaiben_translator.rb + + + +

[[ RAW TEXT(DOWNLOAD here) ]]

+
+#!/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
+
+ + diff --git a/pennginn.png b/pennginn.png new file mode 100644 index 0000000..d51ef08 --- /dev/null +++ b/pennginn.png Binary files differ diff --git a/sasu.rb b/sasu.rb new file mode 100755 index 0000000..935527d --- /dev/null +++ b/sasu.rb @@ -0,0 +1,16 @@ +#!usr/bin/env ruby +# -*- coding: utf-8 -*- + +puts"何を知りたい" +puts"サッカー選手の名前を打とう(ひらがな)" + +while true + print"答え入力:" + kotae=gets.chomp + + if kotae=="みとまかおる" + puts"楽しん選手" + break + end +end + diff --git a/supoutu.csv b/supoutu.csv new file mode 100644 index 0000000..f9590ac --- /dev/null +++ b/supoutu.csv @@ -0,0 +1,4 @@ +選手,ポジション +アイタツヤ,MF +アイカワシンヤ,FW +アイザワタカシ,GK diff --git a/supoutu.rb b/supoutu.rb new file mode 100755 index 0000000..68e78ec --- /dev/null +++ b/supoutu.rb @@ -0,0 +1,35 @@ +#!/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だよ\n",n+=1, row["選手"])} + 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]["ポジション"]) + print("------------------------------------------------------\n") + end + else + print("0〜2から選んでね\n") + end +end + + diff --git a/tanosii.rb b/tanosii.rb new file mode 100755 index 0000000..14b37bc --- /dev/null +++ b/tanosii.rb @@ -0,0 +1,35 @@ +#!/usr/bin/env ruby +#-*- coding: utf-8 -*- + +puts"サッカー選手図鑑" +puts"1:三苫薫(みとまかおる)" +puts"2:登里 享平(のぼりざと・きょうへい)" +puts"3:大南 拓磨(おおみなみ・たくま)" +puts"4:車屋 紳太郎(くるまや・しんたろう)" + +while true + print"答え入力:" + kotae=gets.chomp.to_i + if kotae==1 + puts"ニックネーム:カオル" + puts"1997年5月20日/神奈川県川崎市" + break + elsif kotae==2 + puts"ニックネーム: ノボリ" + puts"1990年11月13日/大阪府東大販市" + break + elsif kotae==3 + puts"ニックネーム:たくま" + puts"1997年12月13日/愛知県刈谷市" + break + elsif kotae==4 + puts"ニックネーム:しんたろう" + puts"1992年4月5日/熊本県熊本市" + break + + else + puts"その選択肢はないよ!!" + redo + end +end + diff --git a/tasukeru.rb b/tasukeru.rb new file mode 100755 index 0000000..bde9804 --- /dev/null +++ b/tasukeru.rb @@ -0,0 +1,12 @@ +#!/usr/bin/env ruby +#-*- coding: utf-8 -*- + +printf"日本は、アジアヨーロッパアフリカどこにあるでしょう\n" +print"答え入力:" +suki=gets.chomp + +if suki =="アジア" + puts"正解" +else + puts"不正解" +end diff --git a/tukumo.rb b/tukumo.rb new file mode 100644 index 0000000..ed37830 --- /dev/null +++ b/tukumo.rb @@ -0,0 +1,65 @@ + + + +shonaiben_translator.rb + + + +

[[ RAW TEXT(DOWNLOAD here) ]]

+
+#!/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
+
+ + diff --git a/zi.rb b/zi.rb new file mode 100755 index 0000000..5006b4e --- /dev/null +++ b/zi.rb @@ -0,0 +1,56 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- +yakusyoku = ["人狼","占い師","村人","霊媒師"] +yakusyoku2 = ["人狼","占い師","村人","霊媒師"] +play = ["play1","play2","play3","play4"] + +play1=yakusyoku.sample +printf("あなたの役職は%sです。 \n",play1) +yakusyoku.delete(play1) +p yakusyoku + +play2=yakusyoku.sample +printf("あなたの役職は%sです。 \n",play2) +yakusyoku.delete(play2) +p yakusyoku + +play3=yakusyoku.sample +printf("あなたの役職は%sです。 \n",play3) +yakusyoku.delete(play3) +p yakusyoku + +play4=yakusyoku.sample +printf("あなたの役職は%sです。 \n",play4) +yakusyoku.delete(play4) +p yakusyoku + +hiniti=1 +while true + printf("%d日目が来た。\n",hiniti) + for i in play + printf("%s,",i) + end + puts"がいます." + + puts"誰が人狼だと思いますか?" + print"答え入力:" + kotae=gets.chomp + puts"皆さんが選んだのは,この人ですね。" + puts"では、さようなら。" + puts"夜がやってきた" + sininn=play.sample + printf("%sが死にました。\n",sininn) + play.delete(sininn) + p play + if sininn == + puts"村人の勝利" + break + end + hiniti+=1 +end + + + + + + diff --git a/zikkenn.rb b/zikkenn.rb index 6ed4886..45b81ce 100755 --- a/zikkenn.rb +++ b/zikkenn.rb @@ -9,9 +9,10 @@ printf("%s!\n",x) y=janken printf("%s!\n",y) +n=janken +printf("%s!\n",n) if x==y puts"当たり" end -