diff --git a/curses.rb b/curses.rb new file mode 100755 index 0000000..25e60b2 --- /dev/null +++ b/curses.rb @@ -0,0 +1,49 @@ +#!/usr/koeki/bin/ruby +# -*- coding: utf-8 -*- + +require "curses" + +# Cursesの初期化 +Curses.init_screen + +begin + # 色の使用開始 + Curses.start_color + + # カラーペア番号を設定 + # 背景色を黒 + Curses.init_pair( 1, Curses::COLOR_BLUE, Curses::COLOR_BLACK) + Curses.init_pair( 2, Curses::COLOR_CYAN, Curses::COLOR_BLACK) + Curses.init_pair( 3, Curses::COLOR_GREEN, Curses::COLOR_BLACK) + Curses.init_pair( 4, Curses::COLOR_MAGENTA, Curses::COLOR_BLACK) + Curses.init_pair( 5, Curses::COLOR_RED, Curses::COLOR_BLACK) + Curses.init_pair( 6, Curses::COLOR_WHITE, Curses::COLOR_BLACK) + Curses.init_pair( 7, Curses::COLOR_YELLOW, Curses::COLOR_BLACK) + # 文字色を黒 + Curses.init_pair( 8, Curses::COLOR_BLACK, Curses::COLOR_BLUE) + Curses.init_pair( 9, Curses::COLOR_BLACK, Curses::COLOR_CYAN) + Curses.init_pair(10, Curses::COLOR_BLACK, Curses::COLOR_GREEN) + Curses.init_pair(11, Curses::COLOR_BLACK, Curses::COLOR_MAGENTA) + Curses.init_pair(12, Curses::COLOR_BLACK, Curses::COLOR_RED) + Curses.init_pair(13, Curses::COLOR_BLACK, Curses::COLOR_WHITE) + Curses.init_pair(14, Curses::COLOR_BLACK, Curses::COLOR_YELLOW) + + # カラーペア番号で順に処理 + # 文字の色をセット + Curses.attrset(Curses.color_pair(1)) + + # 文字列を出力 + Curses.setpos(0,0) + Curses.addstr(sprintf("カラーペア番号")) + + # 画面表示を更新 + Curses.refresh + + # キー入力があるまで待つ + Curses.getch + +ensure + # Cursesの終了処理 + Curses.close_screen +end + diff --git a/hap/happyou.rb b/hap/happyou.rb new file mode 100755 index 0000000..881b0a2 --- /dev/null +++ b/hap/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/hap/quiz.csv b/hap/quiz.csv new file mode 100644 index 0000000..83504e2 --- /dev/null +++ b/hap/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/hap/quiz1.png b/hap/quiz1.png new file mode 100644 index 0000000..4ca1bee --- /dev/null +++ b/hap/quiz1.png Binary files differ diff --git a/hap/quiz10.png b/hap/quiz10.png new file mode 100644 index 0000000..7f88afa --- /dev/null +++ b/hap/quiz10.png Binary files differ diff --git a/hap/quiz11.png b/hap/quiz11.png new file mode 100644 index 0000000..05db4aa --- /dev/null +++ b/hap/quiz11.png Binary files differ diff --git a/hap/quiz12.png b/hap/quiz12.png new file mode 100644 index 0000000..d54bc1c --- /dev/null +++ b/hap/quiz12.png Binary files differ diff --git a/hap/quiz2.png b/hap/quiz2.png new file mode 100644 index 0000000..56b2ed5 --- /dev/null +++ b/hap/quiz2.png Binary files differ diff --git a/hap/quiz3.png b/hap/quiz3.png new file mode 100644 index 0000000..5cc0140 --- /dev/null +++ b/hap/quiz3.png Binary files differ diff --git a/hap/quiz4.png b/hap/quiz4.png new file mode 100644 index 0000000..91a1591 --- /dev/null +++ b/hap/quiz4.png Binary files differ diff --git a/hap/quiz5.png b/hap/quiz5.png new file mode 100644 index 0000000..15fce75 --- /dev/null +++ b/hap/quiz5.png Binary files differ diff --git a/hap/quiz6.png b/hap/quiz6.png new file mode 100644 index 0000000..4d43602 --- /dev/null +++ b/hap/quiz6.png Binary files differ diff --git a/hap/quiz7.png b/hap/quiz7.png new file mode 100644 index 0000000..3d03614 --- /dev/null +++ b/hap/quiz7.png Binary files differ diff --git a/hap/quiz8.png b/hap/quiz8.png new file mode 100644 index 0000000..039b35e --- /dev/null +++ b/hap/quiz8.png Binary files differ diff --git a/hap/quiz9.png b/hap/quiz9.png new file mode 100644 index 0000000..9a1dae4 --- /dev/null +++ b/hap/quiz9.png Binary files differ diff --git a/happyou.rb b/happyou.rb deleted file mode 100755 index af6ef3a..0000000 --- a/happyou.rb +++ /dev/null @@ -1,109 +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_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["解説"] -} -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 = 2 - b = 1 - refresh - while true - setpos(b,a) - addstr(">") - c = getch - setpos(b,a) - addstr(" ") - 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) - setpos(10,0) - addch(order) - refresh - output("解説\n#{quiz_explanation[order]}\n",10,0) - picture = Magick::ImageList.new("quiz#{order + 1}.png") - new_picture = picture.resize(0.25) - new_picture.write("new_quiz#{order + 1}.png") - system("display -geometry +0+0 new_quiz#{order + 1}.png") - sleep(3) - clear - refresh - system('pkill magick -U `whoami`') - quiz_hash.delete(quiz_hash.keys[order]) - quiz_explanation.delete_at(order) - quiz_choice_all.delete_at(order) - break - end - end - ensure - close_screen - end -end -printf("正答数:%d/12\n",correct) -printf("正答率:%dパーセント",correct * 100 / 12) diff --git a/my.rb2 b/my.rb2 new file mode 100755 index 0000000..3beb669 --- /dev/null +++ b/my.rb2 @@ -0,0 +1,18 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- + +print("きのこorたけのこ\nどちらかを入力してください\n") + +while true +suki = gets.chomp + if suki == "きのこ" + print "きのこうまいよなぁ。チョコがしっかり味わえていいよなあ。最高だよなあ。\n" + break + elsif suki == "たけのこ" + print "たけのこうまいよなあ。クッキー感がたまらんよなあ。最高だよなあ。\n" + break + else + print "きのこかたけのこと打ってね。\n" + redo + end +end diff --git a/my5.rb b/my5.rb new file mode 100755 index 0000000..d4e9f20 --- /dev/null +++ b/my5.rb @@ -0,0 +1,12 @@ +#!usr/bin/env ruby +# -*- coding: utf-8 -*- +print("最初に学年を入れてな。\n") +print("次に名前を入れてな。\n") +print("最後に年齢を入れてな。\n") +first=gets.to_i +name=gets.chomp +age=gets.to_i +printf("酒田市立第六中学校%d年の%sです。%d歳です.\n",first,name,age) +car=gets.to_i +taiya=car*4 +printf("車が%d台、タイヤは%d個\n",car,taiya) diff --git a/quiz.csv b/quiz.csv deleted file mode 100644 index a3ec6d3..0000000 --- a/quiz.csv +++ /dev/null @@ -1,13 +0,0 @@ -クイズ,選択肢 1,選択肢 2,選択肢 3,答え,解説 -世界で最も多い名前は?,マイケル,ムハンマド,太郎,2,世界で最も多い名前は、「ムハンマド」である。 -1人あたりのコカ・コーラ消費量が多い国は?,イギリス人,アメリカ人,アイスランド人,3,アイスランド人は、どの国よりも1人あたりのコカ・コーラ消費量が多い。 -かたつむりの歯の数は?,650以上,1300以上,25000以上,3,かたつむりの歯は25000以上ある。 -一般人は1日に平均何回笑う?,10回,30回,200回,1,一般人は平均して一日10回笑う。 -ダチョウの卵をゆでるのに約何時間かかるか?,約30分間,約4時間,約12時間,2,ダチョウの卵をゆでるのには、約4時間かかる。 -地球では年間およそ何回の地震が起きてる?,800回,3000回,50000回,3,地球では1年間におよそ5万回の地震が起こっている。 -ミミズは何個の心臓を持つ?,3つ,5つ,8つ,2,ミミズは5つの心臓を持っている。 -満月は半月の何倍明るい?,4倍,9倍,13倍,2,満月は半月の9倍明るい。 -人間は1日に何本の頭髪を失っている?,50本,120本,200本,3,平均的な人間は1日に200本の頭髪を失っている。 -ナマケモノは食べたものを何時間かけて消化する?,12時間,3日,2週間,3,ナマケモノは食べたものを2週間かけて、ゆっくりと消化する。 -国旗が四角形ではない国は?,フィンランド,インドネシア,ネパール,3,ネパールの国旗は、世界で唯一四角形ではない。 -野生のライオンが一年で殺して食べる動物の数は?,20匹以下,50匹ぐらい,100匹以上,1,野生のライオンが殺して食べる動物の数は、1年でたいてい20匹以下である。 diff --git a/quiz1.png b/quiz1.png deleted file mode 100644 index 4ca1bee..0000000 --- a/quiz1.png +++ /dev/null Binary files differ diff --git a/quiz10.png b/quiz10.png deleted file mode 100644 index 7f88afa..0000000 --- a/quiz10.png +++ /dev/null Binary files differ diff --git a/quiz11.png b/quiz11.png deleted file mode 100644 index 05db4aa..0000000 --- a/quiz11.png +++ /dev/null Binary files differ diff --git a/quiz12.png b/quiz12.png deleted file mode 100644 index d54bc1c..0000000 --- a/quiz12.png +++ /dev/null Binary files differ diff --git a/quiz2.png b/quiz2.png deleted file mode 100644 index 56b2ed5..0000000 --- a/quiz2.png +++ /dev/null Binary files differ diff --git a/quiz3.png b/quiz3.png deleted file mode 100644 index 5cc0140..0000000 --- a/quiz3.png +++ /dev/null Binary files differ diff --git a/quiz4.png b/quiz4.png deleted file mode 100644 index 91a1591..0000000 --- a/quiz4.png +++ /dev/null Binary files differ diff --git a/quiz5.png b/quiz5.png deleted file mode 100644 index 15fce75..0000000 --- a/quiz5.png +++ /dev/null Binary files differ diff --git a/quiz6.png b/quiz6.png deleted file mode 100644 index 4d43602..0000000 --- a/quiz6.png +++ /dev/null Binary files differ diff --git a/quiz7.png b/quiz7.png deleted file mode 100644 index 3d03614..0000000 --- a/quiz7.png +++ /dev/null Binary files differ diff --git a/quiz8.png b/quiz8.png deleted file mode 100644 index 039b35e..0000000 --- a/quiz8.png +++ /dev/null Binary files differ diff --git a/quiz9.png b/quiz9.png deleted file mode 100644 index 9a1dae4..0000000 --- a/quiz9.png +++ /dev/null Binary files differ diff --git a/rubymy.rb3 b/rubymy.rb3 new file mode 100755 index 0000000..41352b2 --- /dev/null +++ b/rubymy.rb3 @@ -0,0 +1,4 @@ +#!/usr/bin/env ruby +member=["土門侑生","疋田和さん","芳賀寿真さん","斎藤煌さん"] +x=gets.to_i +puts member[x]