diff --git a/hap/happyou.rb b/hap/happyou.rb deleted file mode 100755 index 881b0a2..0000000 --- a/hap/happyou.rb +++ /dev/null @@ -1,113 +0,0 @@ -#!/usr/bin/env ruby -# -*- coding: utf-8 -*- - -require "csv" -require "rmagick" -require "curses" -include Curses - -init_screen - -def output(word,x,y) - setpos(x,y) - addstr(word) - refresh -end - -quiz_key_ary = [] -quiz_key_value = [] -quiz_choice = [] -quiz_choice_all = [] -quiz_explanation = [] -quiz_picture = [] -quiz_csv = CSV.read("quiz.csv",:headers => true) #CSVファイル読み込み -quiz_csv.each{|row| - quiz_key_ary << row["クイズ"] - quiz_key_value << row["答え"].to_i - quiz_choice << "1.#{row["選択肢 1"]}" - quiz_choice << "2.#{row["選択肢 2"]}" - quiz_choice << "3.#{row["選択肢 3"]}" - quiz_choice_all << quiz_choice - quiz_choice = [] - quiz_explanation << row["解説"] - quiz_picture << row["写真"] -} -ary = [quiz_key_ary,quiz_key_value].transpose -quiz_hash = Hash[*ary.flatten] - -output("クイズ",0,0) -sleep(3) -clear -refresh -correct = 0 -quiz_hash.length. times do - order = rand(quiz_hash.length) - srand() - output(quiz_hash.keys[order],0,0) - x = 1 - y = 4 - for i in quiz_choice_all[order] - output(i,x,y) - x += 2 - end - begin - curs_set(0) - noecho - stdscr.keypad(true) - choice = 1 - a = 1 - b = 1 - refresh - while true - setpos(b,a) - addstr(">>") - refresh - c = getch - setpos(b,a) - addstr(" ") - refresh - case c - when Curses::KEY_UP - if choice > 1 - b -= 2 - choice -= 1 - end - when Curses::KEY_DOWN - if choice < 3 - b += 2 - choice += 1 - end - when Curses::KEY_LEFT - sleep(3) - right_answer = quiz_hash.values[order] - if choice.to_i == right_answer - output("正解",9,0) - correct += 1 - else - output("不正解",9,0) - end - sleep(1) - output("解説\n",10,0) - sleep(3) - output(quiz_explanation[order].to_s,11,0) - picture = Magick::ImageList.new(quiz_picture[order]) - new_picture = picture.resize(0.25) - new_picture.write("new_picture.png") - picture = spawn "display -geometry +0+0 new_picture.png" - sleep(5) - Process.kill(:INT,picture) - clear - refresh - quiz_hash.delete(quiz_hash.keys[order]) - quiz_explanation.delete_at(order) - quiz_choice_all.delete_at(order) - quiz_picture.delete_at(order) - break - end - end - ensure - close_screen - end -end -printf("正答数:%d/12\n",correct) -printf("正答率:%dパーセント",correct * 100 / 12) diff --git a/hap/quiz.csv b/hap/quiz.csv deleted file mode 100644 index 83504e2..0000000 --- a/hap/quiz.csv +++ /dev/null @@ -1,13 +0,0 @@ -,クイズ,選択肢 1,選択肢 2,選択肢 3,答え,解説,写真 -第1問,世界で最も多い名前は?,マイケル,ムハンマド,太郎,2,世界で最も多い名前は、「ムハンマド」である。,quiz1.png -第2問,1人あたりのコカ・コーラ消費量が多い国は?,イギリス人,アメリカ人,アイスランド人,3,アイスランド人は、どの国よりも1人あたりのコカ・コーラ消費量が多い。,quiz2.png -第3問,かたつむりの歯の数は?,650以上,1300以上,25000以上,3,かたつむりの歯は25000以上ある。 ,quiz3.png -第4問,一般人は1日に平均何回笑う?,10回,30回,200回,1,一般人は平均して一日10回笑う。,quiz4.png -第5問,ダチョウの卵をゆでるのに約何時間かかるか?,約30分間,約4時間,約12時間,2,ダチョウの卵をゆでるのには、約4時間かかる。 ,quiz5.png -第6問,地球では年間およそ何回の地震が起きてる?,800回,3000回,50000回,3,地球では1年間におよそ5万回の地震が起こっている。,quiz6.png -第7問,ミミズは何個の心臓を持つ?,3つ,5つ,8つ,2,ミミズは5つの心臓を持っている。 ,quiz7.png -第8問,満月は半月の何倍明るい?,4倍,9倍,13倍,2,満月は半月の9倍明るい。,quiz8.png -第9問,人間は1日に何本の頭髪を失っている?,50本,120本,200本,3,平均的な人間は1日に200本の頭髪を失っている。,quiz9.png -第10問,ナマケモノは食べたものを何時間かけて消化する?,12時間,3日,2週間,3,ナマケモノは食べたものを2週間かけて、ゆっくりと消化する。,quiz10.png -第11問,国旗が四角形ではない国は?,フィンランド,インドネシア,ネパール,3,ネパールの国旗は、世界で唯一四角形ではない。 ,quiz11.png -第12問,野生のライオンが一年で殺して食べる動物の数は?,20匹以下,50匹ぐらい,100匹以上,1,野生のライオンが殺して食べる動物の数は、1年でたいてい20匹以下である。,quiz12.png diff --git a/hap/quiz1.png b/hap/quiz1.png deleted file mode 100644 index 4ca1bee..0000000 --- a/hap/quiz1.png +++ /dev/null Binary files differ diff --git a/hap/quiz10.png b/hap/quiz10.png deleted file mode 100644 index 7f88afa..0000000 --- a/hap/quiz10.png +++ /dev/null Binary files differ diff --git a/hap/quiz11.png b/hap/quiz11.png deleted file mode 100644 index 05db4aa..0000000 --- a/hap/quiz11.png +++ /dev/null Binary files differ diff --git a/hap/quiz12.png b/hap/quiz12.png deleted file mode 100644 index d54bc1c..0000000 --- a/hap/quiz12.png +++ /dev/null Binary files differ diff --git a/hap/quiz2.png b/hap/quiz2.png deleted file mode 100644 index 56b2ed5..0000000 --- a/hap/quiz2.png +++ /dev/null Binary files differ diff --git a/hap/quiz3.png b/hap/quiz3.png deleted file mode 100644 index 5cc0140..0000000 --- a/hap/quiz3.png +++ /dev/null Binary files differ diff --git a/hap/quiz4.png b/hap/quiz4.png deleted file mode 100644 index 91a1591..0000000 --- a/hap/quiz4.png +++ /dev/null Binary files differ diff --git a/hap/quiz5.png b/hap/quiz5.png deleted file mode 100644 index 15fce75..0000000 --- a/hap/quiz5.png +++ /dev/null Binary files differ diff --git a/hap/quiz6.png b/hap/quiz6.png deleted file mode 100644 index 4d43602..0000000 --- a/hap/quiz6.png +++ /dev/null Binary files differ diff --git a/hap/quiz7.png b/hap/quiz7.png deleted file mode 100644 index 3d03614..0000000 --- a/hap/quiz7.png +++ /dev/null Binary files differ diff --git a/hap/quiz8.png b/hap/quiz8.png deleted file mode 100644 index 039b35e..0000000 --- a/hap/quiz8.png +++ /dev/null Binary files differ diff --git a/hap/quiz9.png b/hap/quiz9.png deleted file mode 100644 index 9a1dae4..0000000 --- a/hap/quiz9.png +++ /dev/null Binary files differ diff --git a/happyou.rb b/happyou.rb new file mode 100755 index 0000000..881b0a2 --- /dev/null +++ b/happyou.rb @@ -0,0 +1,113 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- + +require "csv" +require "rmagick" +require "curses" +include Curses + +init_screen + +def output(word,x,y) + setpos(x,y) + addstr(word) + refresh +end + +quiz_key_ary = [] +quiz_key_value = [] +quiz_choice = [] +quiz_choice_all = [] +quiz_explanation = [] +quiz_picture = [] +quiz_csv = CSV.read("quiz.csv",:headers => true) #CSVファイル読み込み +quiz_csv.each{|row| + quiz_key_ary << row["クイズ"] + quiz_key_value << row["答え"].to_i + quiz_choice << "1.#{row["選択肢 1"]}" + quiz_choice << "2.#{row["選択肢 2"]}" + quiz_choice << "3.#{row["選択肢 3"]}" + quiz_choice_all << quiz_choice + quiz_choice = [] + quiz_explanation << row["解説"] + quiz_picture << row["写真"] +} +ary = [quiz_key_ary,quiz_key_value].transpose +quiz_hash = Hash[*ary.flatten] + +output("クイズ",0,0) +sleep(3) +clear +refresh +correct = 0 +quiz_hash.length. times do + order = rand(quiz_hash.length) + srand() + output(quiz_hash.keys[order],0,0) + x = 1 + y = 4 + for i in quiz_choice_all[order] + output(i,x,y) + x += 2 + end + begin + curs_set(0) + noecho + stdscr.keypad(true) + choice = 1 + a = 1 + b = 1 + refresh + while true + setpos(b,a) + addstr(">>") + refresh + c = getch + setpos(b,a) + addstr(" ") + refresh + case c + when Curses::KEY_UP + if choice > 1 + b -= 2 + choice -= 1 + end + when Curses::KEY_DOWN + if choice < 3 + b += 2 + choice += 1 + end + when Curses::KEY_LEFT + sleep(3) + right_answer = quiz_hash.values[order] + if choice.to_i == right_answer + output("正解",9,0) + correct += 1 + else + output("不正解",9,0) + end + sleep(1) + output("解説\n",10,0) + sleep(3) + output(quiz_explanation[order].to_s,11,0) + picture = Magick::ImageList.new(quiz_picture[order]) + new_picture = picture.resize(0.25) + new_picture.write("new_picture.png") + picture = spawn "display -geometry +0+0 new_picture.png" + sleep(5) + Process.kill(:INT,picture) + clear + refresh + quiz_hash.delete(quiz_hash.keys[order]) + quiz_explanation.delete_at(order) + quiz_choice_all.delete_at(order) + quiz_picture.delete_at(order) + break + end + end + ensure + close_screen + end +end +printf("正答数:%d/12\n",correct) +printf("正答率:%dパーセント",correct * 100 / 12) diff --git a/quiz/new_picture.png b/quiz/new_picture.png new file mode 100644 index 0000000..b4bf68f --- /dev/null +++ b/quiz/new_picture.png Binary files differ diff --git a/quiz/quiz.csv b/quiz/quiz.csv new file mode 100644 index 0000000..83504e2 --- /dev/null +++ b/quiz/quiz.csv @@ -0,0 +1,13 @@ +,クイズ,選択肢 1,選択肢 2,選択肢 3,答え,解説,写真 +第1問,世界で最も多い名前は?,マイケル,ムハンマド,太郎,2,世界で最も多い名前は、「ムハンマド」である。,quiz1.png +第2問,1人あたりのコカ・コーラ消費量が多い国は?,イギリス人,アメリカ人,アイスランド人,3,アイスランド人は、どの国よりも1人あたりのコカ・コーラ消費量が多い。,quiz2.png +第3問,かたつむりの歯の数は?,650以上,1300以上,25000以上,3,かたつむりの歯は25000以上ある。 ,quiz3.png +第4問,一般人は1日に平均何回笑う?,10回,30回,200回,1,一般人は平均して一日10回笑う。,quiz4.png +第5問,ダチョウの卵をゆでるのに約何時間かかるか?,約30分間,約4時間,約12時間,2,ダチョウの卵をゆでるのには、約4時間かかる。 ,quiz5.png +第6問,地球では年間およそ何回の地震が起きてる?,800回,3000回,50000回,3,地球では1年間におよそ5万回の地震が起こっている。,quiz6.png +第7問,ミミズは何個の心臓を持つ?,3つ,5つ,8つ,2,ミミズは5つの心臓を持っている。 ,quiz7.png +第8問,満月は半月の何倍明るい?,4倍,9倍,13倍,2,満月は半月の9倍明るい。,quiz8.png +第9問,人間は1日に何本の頭髪を失っている?,50本,120本,200本,3,平均的な人間は1日に200本の頭髪を失っている。,quiz9.png +第10問,ナマケモノは食べたものを何時間かけて消化する?,12時間,3日,2週間,3,ナマケモノは食べたものを2週間かけて、ゆっくりと消化する。,quiz10.png +第11問,国旗が四角形ではない国は?,フィンランド,インドネシア,ネパール,3,ネパールの国旗は、世界で唯一四角形ではない。 ,quiz11.png +第12問,野生のライオンが一年で殺して食べる動物の数は?,20匹以下,50匹ぐらい,100匹以上,1,野生のライオンが殺して食べる動物の数は、1年でたいてい20匹以下である。,quiz12.png diff --git a/quiz/quiz1.png b/quiz/quiz1.png new file mode 100644 index 0000000..4ca1bee --- /dev/null +++ b/quiz/quiz1.png Binary files differ diff --git a/quiz/quiz10.png b/quiz/quiz10.png new file mode 100644 index 0000000..7f88afa --- /dev/null +++ b/quiz/quiz10.png Binary files differ diff --git a/quiz/quiz11.png b/quiz/quiz11.png new file mode 100644 index 0000000..05db4aa --- /dev/null +++ b/quiz/quiz11.png Binary files differ diff --git a/quiz/quiz12.png b/quiz/quiz12.png new file mode 100644 index 0000000..d54bc1c --- /dev/null +++ b/quiz/quiz12.png Binary files differ diff --git a/quiz/quiz2.png b/quiz/quiz2.png new file mode 100644 index 0000000..56b2ed5 --- /dev/null +++ b/quiz/quiz2.png Binary files differ diff --git a/quiz/quiz3.png b/quiz/quiz3.png new file mode 100644 index 0000000..5cc0140 --- /dev/null +++ b/quiz/quiz3.png Binary files differ diff --git a/quiz/quiz4.png b/quiz/quiz4.png new file mode 100644 index 0000000..91a1591 --- /dev/null +++ b/quiz/quiz4.png Binary files differ diff --git a/quiz/quiz5.png b/quiz/quiz5.png new file mode 100644 index 0000000..15fce75 --- /dev/null +++ b/quiz/quiz5.png Binary files differ diff --git a/quiz/quiz6.png b/quiz/quiz6.png new file mode 100644 index 0000000..4d43602 --- /dev/null +++ b/quiz/quiz6.png Binary files differ diff --git a/quiz/quiz7.png b/quiz/quiz7.png new file mode 100644 index 0000000..3d03614 --- /dev/null +++ b/quiz/quiz7.png Binary files differ diff --git a/quiz/quiz8.png b/quiz/quiz8.png new file mode 100644 index 0000000..039b35e --- /dev/null +++ b/quiz/quiz8.png Binary files differ diff --git a/quiz/quiz9.png b/quiz/quiz9.png new file mode 100644 index 0000000..9a1dae4 --- /dev/null +++ b/quiz/quiz9.png Binary files differ diff --git a/quiz/trivia_quiz.rb b/quiz/trivia_quiz.rb old mode 100644 new mode 100755 index ab87051..77af5e8 --- a/quiz/trivia_quiz.rb +++ b/quiz/trivia_quiz.rb @@ -1,4 +1,19 @@ -# coding: utf-8 +#!usr/bin/env ruby +# -*- coding: utf-8 -*- + +require "csv" +require "rmagick" +require "curses" +include Curses +init_screen + +def output(word,x,y) + setpos(x,y) + addstr(word) + refresh +end + +quiz_key_ary = [] quiz_key_value = [] quiz_choice = [] quiz_choice_all = [] @@ -8,9 +23,9 @@ quiz_csv.each{|row| quiz_key_ary << row["クイズ"] quiz_key_value << row["答え"].to_i - quiz_choice << "1.#{row["選択肢 1"]}" - quiz_choice << "2.#{row["選択肢 2"]}" - quiz_choice << "3.#{row["選択肢 3"]}" + quiz_choice << "1:#{row["選択肢 1"]}" + quiz_choice << "2:#{row["選択肢 2"]}" + quiz_choice << "3:#{row["選択肢 3"]}" quiz_choice_all << quiz_choice quiz_choice = [] quiz_explanation << row["解説"] @@ -19,28 +34,34 @@ ary = [quiz_key_ary,quiz_key_value].transpose quiz_hash = Hash[*ary.flatten] -output("クイズ",0,0) +output("豆知識クイズ",1,5) sleep(3) +output("いろんな豆知識についてのクイズが出題されるよ。",3,1) +sleep(3) +output("上下キーで操作、左矢印で答え合わせ",5,1) +sleep(5) clear refresh correct = 0 quiz_hash.length. times do order = rand(quiz_hash.length) srand() - output(quiz_hash.keys[order],0,0) - x = 1 - y = 4 + output(quiz_hash.keys[order],1,1) + sleep(2) + x = 10 + y = 3 for i in quiz_choice_all[order] - output(i,x,y) - x += 2 + output(i,y,x) + y += 2 + sleep(0.5) end begin curs_set(0) noecho stdscr.keypad(true) choice = 1 - a = 1 - b = 1 + a = 5 + b = 3 refresh while true setpos(b,a) @@ -65,15 +86,15 @@ sleep(3) right_answer = quiz_hash.values[order] if choice.to_i == right_answer - output("正解",9,0) + output("正解",9,1) correct += 1 else - output("不正解",9,0) + output("不正解",9,1) end sleep(1) - output("解説\n",10,0) + output("解説\n",12,1) sleep(3) - output(quiz_explanation[order].to_s,11,0) + output(quiz_explanation[order].to_s,14,1) picture = Magick::ImageList.new(quiz_picture[order]) new_picture = picture.resize(0.25) new_picture.write("new_picture.png")