6 月 13 日のレポートについて 語学クラス:XXXX語XX 系: XXXX系 学籍番号:c106XXXX 氏名:XXXXXXXX 1,A,0x11+0x22=?? 0x11を10進数に変換 (1*16**1)+(1*16**0)=16+1 =17 ...[1] 0x22を10進数に変換 (2*16**1)+(2*16**0)=32+2 =34 ...[2] [1]+[2] 17+34=51 ...[3] [3]を16進数に変換 51/16=3...3 → 3 3/16=0...3 → 3 余りをしたから読むと 33 となるので 0x11+0x22=0x33 となる。 B,0x11+0xee=?? 0x11を10進数に変換 1-A[1]より 17 ... [1] 0xeeを10進数に変換 e → 14 となる。 (14*16**1)+(14*16**0)=224+14 =238 ... [2] [1]+[2] 17+238=255 ... [3] [3]を16進数に変換 255/16=15...15 → f 15/16=0...15 → f 余りを16進数に変換したものをしたから読むと ff となるので 0x11+0xee=0xff となる。 C,0xaa-0x11=0x?? 0xaaを10進数に変換 a → 10 となる。 (10*16**1)+(10*16**0)=160+16 =176 ... [1] 0x1110進数に変換 1-A[1]より 17 ... [2] [1]-[2] 176-17=159 ... [3] [3]を16進数に変換 159/16=9...15 → f 9/16=0...9 → 9 余りを16進数に変換したものをしたから読むと 9f となるので 0xaa-0x11=0x9f となる。 [参考資料] 神田先生のホームページ http://roy/~naoya/ruby/10.htm 2, http://roy/~c106109/advertise/ プログラム #!/usr/koeki/bin/ruby srand kanzi = ["月","空"] # 漢字を用意する。配列 kanzi mondai = rand(kanzi.size) # kanzi.size でデータの個数を調べる # mondai にデータの個数を代入 kanzi2 = ["軌道","鍛練","悔恨"] #漢検3級の問題 mondai2 = rand(3) #rand(3) mondai2の0,1,2からランダムにとりだす kanzi3 = ["靄","建立","氷雨","琴線"] mondai3 = rand(4) #rand(4) mondai3の0,1,2,3からランダムにとりだす kanzi4 = ["扶桑","逓減","数奇屋","山車"] #漢字検定2級の問題 mondai4 = rand(4) #rand(4) mondai4の0,1,2,3からランダムにとりだす print("説明を始めますか? < y / n >\n") geme = gets.chomp # geme にgets.chomp した文字列を代入する if geme == "n" STDERR.print("ゲームを開始します。\n") else STDERR.print("ゲームの説明を始めます。\n") STDERR.print("問題である漢字が出てきます。それに答えられれば次のステップへ。\n") STDERR.print("でも、間違うと……。\n") sleep(2) #2秒間停止する STDERR.print("\v" * 1) #1行行間をあける STDERR.print("終了です。\n") STDERR.print("\v" * 1) #1行行間をあける STDERR.print("漢字は徐々に難しくなるよ。\n") STDERR.print("さあ、頑張って答えてみたまえ!!!\n") end #ifに対するend STDERR.print("\v" * 2) #2行行間をあける STDERR.print ("読み方を書きなさい。: ") STDERR.printf("[%s]\n",kanzi[mondai]) yomi = gets.chomp # yomi に gets.chomp した文字列を代入する。 if mondai == 0 if yomi == "つき" print("正解\n") else print("不正解\n") exit(1) #強制終了 end #if yomi == 0 に対するend elsif mondai == 1 if yomi == "そら" print("正解\n") else print("不正解\n") exit(1) #強制終了 end #if yomi == "そら" に対応するend end #if mondai == 0 に対応する end sleep(1) #1秒間停止する print("\v" * 1) #1行行間をあける print("level up!!\n") sleep(2) #2秒間停止する STDERR.print("読み方を書きなさい。: ") STDERR.printf("[%s]\n",kanzi2[mondai2]) yomi2 = gets.chomp #yomi2 に gets.chomp した文字列を代入する if mondai2 == 0 if yomi2 == "きどう" print("正解\n") else print("不正解\n") eixt(1) #強制終了 end #if yomi2 == "きどう" に対する end elsif mondai2 == 1 if yomi2 == "たんれん" print("正解\n") else print("不正解\n") exit(1) #強制終了 end #if yomi2 == "たんれん" に対応する end elsif mondai2 == 2 if yomi2 == "かいこん" print("正解\n") else print("不正解\n") exit(1) #強制終了 end #if nomi2 == "かいこん" に対応する end end #if mondai2 == 0 に対応する end sleep(1) #1秒間停止 print("\v" * 1) #1行行間をあける print("level up!!\n") sleep(2) #2秒間停止 STDERR.print("読み方を書きなさい。: ") STDERR.printf("[%s]\n",kanzi3[mondai3]) yomi3 = gets.chomp #yomi3 に gets.chomp した文字列を代入する if mondai3 == 0 if yomi3 == "もや" print("正解\n") else print("不正解\n") exit(1) #強制終了 end #if yomi3 == "もや" に対応する end elsif mondai3 == 1 if yomi3 == "こんりゅう" print("正解\n") else print("不正解\n") exit(1) #強制終了 end #if yomi3 == "こんりゅう" に対応する end elsif mondai3 == 2 if yomi3 == "ひさめ" print("正解\n") else print("不正解\n") exit(1) #強制終了 end #if yomi3 == "ひさめ" に対応する end elsif mondai3 == 3 if yomi3 == "きんせん" print("正解\n") else print("不正解\n") exit(1) #強制終了 end #if yomi3 == "きんせん" に対応する end end #if mondai3 == 0 に対応する end sleep(1) #1秒間停止 print("\v" * 1) #1行行間をあける print("level up!!\n") sleep(2) #2秒間停止 STDERR.print("読み方を書きなさい。: ") STDERR.printf("[%s]\n",kanzi4[mondai4]) yomi4 = gets.chomp #yomi4 に gets.chomp した文字列を代入する if mondai4 == 0 if yomi4 == "ふそう" print("正解\n") system 'banner good!' #system'banner good' で good を大きく表示 print("これで問題はお仕舞い。最後の問題は漢字検定2級レベルの問題よ。すごいわ!!\n") else print("不正解\n") print("おしい!!これで最後だったのに\n") exit(1) #強制終了 end #if yomi4 == "ふそう" に対応する end elsif mondai4 == 1 if yomi4 == "ていげん" print("正解\n") system 'banner good!' #system'banner good' で good を大きく表示 print("これで問題は終わり。おめでとう!!\n") else print("不正解\n") print("また挑戦してきてね!!\n") exit(1) #強制終了 end #if yomi4 == "ていげん" に対応する end elsif mondai4 == 2 if yomi4 == "すきや" print("正解\n") system 'banner good!' #system'banner good' で good を大きく表示 print("これで問題は終わり。すごい!!\n") else print("不正解\n") print("次があるわ!! ファイト!!\n") exit(1) #強制終了 end #if yomi4 == "すきや" に対応する end elsif mondai4 == 3 if yomi4 == "だし" print("正解\n") system 'banner good!' #system'banner good' で good を大きく表示 print("良く頑張ったわ。おめでとう!!\n") else print("不正解\n") print("あと少しだったのに残念\n") exit(1) #強制終了 end #if yomi4 == "だし" に対応する end end #if mondai4 == 0 に対応する end print("\v" * 1) #1行行間をあける print("これでゲームは終了です\n") 企画書 □企画書□ **************************** 乱数を使い漢字をランダムに表示させ、その読みを答えさえさせると言うプログ ラムを考えた。 漢字検定レベルの問題を作成し、それを解いてもらうことによって漢字により深 く親しんでもらおうと考えた。そのため、正解するごとに漢字のレベルを上げる ようした。 最後まで行った人にはメッセージを送れるようにし、それが間違った人であって もメッセージが表示されるようにしようと考えた。 ホームページのデザインとして、出来るだけ見やすいように作るようにしたい。 漢字に対して暗いイメージを持ってもらわないように明るいデザインにしたいと 考えている。 **************************** 完成させてみると、もっと漢字を沢山使えば良かったと思っている。文字に色 をつけたりすればもっと見やするなるだろうとも思った。時間制限をつければ、 緊張感も高まりもっとおもしろくなったのだろうと考えている。 取り扱い説明書 *********************** 漢字ゲーム!! *********************** このゲームは表示された漢字の読みを答えて行く簡単なゲームです。 [ Home Page ] 漢字ゲーム!! [ プログラム ] kanzi.rb [ Download ] ・00readme ・kanzi.rb 上記の二つをダウンロードしていただくとこのゲームで遊ぶことが出来ます。 [ How to play ] 遊び方は簡単です。 kterm で % chmod +x kanzi.rb でゲームの準備ができ、開始するには % ./kanzi.rb とすれば遊ぶことが出来ます。 [ 注意事項 ] このソフトウェアは無償です。 しかし、このソフトウェアに生じた傷害や損害などについては一切の責任を負いません。そのことを了解した上でお使いになるようにお願い致します。 [ Specil Thanks ] madoka nishimura techear [ mail ] 以下のアドレスまで感想や要望等お待ちしております。 c106109@f.koeki-u.ac.jp ----------------- Copyright (C) 2007 c106109 All Rights Reserved [ 参考資料 ] 漢字検定で漢字能力を鍛えよう http://kanji-a.seesaa.net/ 西村先生のホームページ http://roy/~madoka/2007/r1/09/ Rubyで遊ぼう 4、感想 企画書にも書いた通り、もっとできることがいっぱいあったと思う。特に時間 制限をつけることが出来なくてくやしかった。system banner で英単語をいれ ようとしたら、長すぎてはいらなかったこともくやしい。もう少し改良してもっ と出来の良いものが作りたいと思う。 今までの習ってきたことを少しでも使うことが出来て良かった。