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 @@ + + + + +
[[ 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 @@
+
+
+
+[[ 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
-