diff --git a/intro/j2106_intro.rb b/intro/j2106_intro.rb index 500e0f8..a3e42b1 100755 --- a/intro/j2106_intro.rb +++ b/intro/j2106_intro.rb @@ -47,7 +47,7 @@ File.readlines("j2106_intro_ziten.txt").each do |line| #テキストファイルの文章をファイルから読み込み、 ziten << line.chomp #改行文字を切り取り、順に配列"ziten"に保存 end #doのend - if divide_input.length == 0 #もし仮引数"divide_input"の長さが0なら + if divide_input.length == 0 #1.もし仮引数"divide_input"の長さが0なら shortest = ziten.sort_by(&:length).first #配列"ziten"の要素の中で一番文字数が少ない語を変数"shortest"に代入 distance << shortest.length #配列"distance"に変数"shortest"の文字列の長さを代入 else #それ以外だったら @@ -70,7 +70,7 @@ time. times do #変数"time"回繰り返す comparison_ziten_mini << comparison_ziten[order] #変数"comparison_ziten"の変数"order"番目を配列"comparison_ziten_mini"に保存 comparison_input_mini << comparison_input[order] #変数"comparison_input"の変数"order"番目を配列"comparison_input_mini"に保存 - if comparison_ziten_mini != comparison_input_mini #もし配列"comparison_ziten_mini"が配列"comparison_mini"と等しくなければ + if comparison_ziten_mini != comparison_input_mini #4.もし配列"comparison_ziten_mini"が配列"comparison_mini"と等しくなければ distance2 += 1 #変数"distance2"に1を足す(代入演算) end #ifのend comparison_ziten_mini.slice!(0,comparison_ziten.length) #配列"comparison_ziten_mini"を空にする @@ -85,6 +85,15 @@ return distance.min #配列"distance"の要素の中で一番小さい要素を返す end #ifのend end #メソッド"levenshtein_distance"を抜けるend +#参考にした"レーベンシュタイン距離のアルゴリズム" +#1.AとBのどちらかが空なら、もう一方の長さを編集距離に足して終了 +#2.AとBの1文字目を比べる +#3.同じなら次の文字に進んで、1へ戻る +#4.異なるなら編集距離に1を足す +#5.分岐: +# Bから1文字を削除(=挿入)し、1へ戻る +# Aから1文字を削除(=挿入)し、1へ戻る +# AとBから1文字を削除(=挿入)し、1へ戻る def search(search_word) #メソッド"search"と仮引数"search_word"を指定 search = Regexp.new(search_word) #仮引数"search_word"を正規表現に変換して、変数"search"に代入 @@ -95,15 +104,6 @@ end #ifのend end #doのend end #メソッド"search"を抜けるend -#参考にした"レーベンシュタイン距離のアルゴリズム" -#1.AとBのどちらかが空なら、もう一方の長さを編集距離に足して終了 -#2.AとBの1文字目を比べる -#3.同じなら次の文字に進んで、1へ戻る -#4.異なるなら編集距離に1を足す -#5.分岐: -# Bから1文字を削除(=挿入)し、1へ戻る -# Aから1文字を削除(=挿入)し、1へ戻る -# AとBから1文字を削除(=挿入)し、1へ戻る now #メソッド"now"の参照 puts "土門侑生とは\n何について見る?" #説明 @@ -123,13 +123,13 @@ noecho #入力した文字を画面に表示しない begin #処理の開始 correct = 0 #変数"correct"を0にする - quiz_number = ["1","2","3"] - while 0 < quiz_number.length - srand() - number = rand(quiz_number.length) - quiz = quiz_number[number] - quiz_number.shift[number] - if quiz == "1" + quiz_number = ["1","2","3"] #配列"quiz_number"を作成 + while 0 < quiz_number.length #配列"quiz_number"の長さが0より大きい間繰り返す + srand() #乱数の種を初期化 + number = rand(quiz_number.length) #配列"quiz_number"の中の要素をランダムに変数"number"に代入 + quiz = quiz_number[number] #取り出した値を変数"quiz"に代入 + quiz_number.shift[number] #取り出した値を配列"quiz_number"の中から取り除く + if quiz == "1" #もし変数"quiz"が"1"だったら setpos(0,0) #文字を表示する場所の指定 addstr("私はなんと呼ばれているでしょうか。\n1.MP3\n2.ZIP\n3.PDF\n") #問題 refresh #画面の更新 @@ -137,17 +137,17 @@ if answer1 == "3" #もし変数"answer1"が"3"ならば correct += 1 #変数"correct"に1を足す(代入演算) end #ifのend - elsif quiz == "2" + elsif quiz == "2" #もし変数"quiz"が"2"だったら setpos(0,0) #文字を表示する場所の指定 - addstr("私の得意な教科は何でしょうか。\n1.国語\n2.数学\n3.英語\n") #問題 + addstr("私の得意な教科は何でしょうか。\n1.国語\n2.数学\n3.英語\n") #問題 refresh #画面の更新 answer2 = getch #入力した1文字を取得し、変数"answer2"に代入 if answer2 == "2" #もし変数"answer2"が"2"ならば correct += 1 #変数"correct"に1を足す(代入演算) end #ifのend - else + else #それ以外だったら setpos(0,0) #文字を表示する場所の指定 - addstr("私が寝る前に必ず行うことは何でしょうか。\n1.音楽を聴く\n2.アニメを見る\n3.漫画を読む\n") #問題 + addstr("私が寝る前に必ず行うことは何でしょうか。\n1.音楽を聴く\n2.アニメを見る\n3.漫画を読む\n") #問題 refresh #画面の更新 answer3 = getch #入力した1文字を取得し、変数"answer3"に代入 if answer3 == "1" #もし変数"answer3"が"1"ならば @@ -158,12 +158,12 @@ picture = spawn "display -geometry +0+0 walkman1.jpg" #画像の表示 sleep(3) #3秒待つ Process.kill(:INT,picture) #画像の削除 - end - end - end #ifのend - ensure #例外処理 - close_screen #画面をもとに戻す - end #beginを抜けるend + end #ifのend + end #ifのend + end #whileのend + ensure #例外処理 + close_screen #画面をもとに戻す + end #beginを抜けるend printf("正答数:%d\n",correct) #文字と変数"correct"の値を表示 correct_percent = correct * 100 * 1/3 #変数"correct"に100と1/3をかけて変数"correct_percent"に代入 printf("正答率:%dパーセント\n",correct_percent) #文字と変数"correct_percent"の値を表示 diff --git a/intro/yobi.rb b/intro/yobi.rb deleted file mode 100644 index 0f5f8ed..0000000 --- a/intro/yobi.rb +++ /dev/null @@ -1,5 +0,0 @@ -ziten = [] -File.readlines("j2106_intro_ziten.txt").each do |line| - ziten << line.chomp -end -p ziten