第9回 基礎プログラミング I レポート課題 氏名:川島 哲 学籍番号:c1090489 語学クラス:英語3 コース(系):政策マネ 1. A)0x13+0x24=?? 10進数にふたつの数を変換 0x13=0d19 0x24=0d36 0d19+0d36=0d55 0d55=0x?? 計算 余り 16)55 7 16)48 3 0d55=0x37 もともとがアルファベットが入っていないので10進数に直す必要はないが念のた め変換してから計算した 解答:0x37 B)0x23+0x1e=?? 0x23=0d35 0x1e=0d30 0d35+0d30=65 16)65 1 16)64 4 0d65=0x41 解答:0x41 C)0xaa-0x33=0x 0xaa=0d170 0x33=0d51 0d170-0d51=0d119 16)119 7 16)112 7 0d119=0x77 解答:0x77 参考 10進数から16進数に変換する|基本情報技術者講座| http://www.it-license.com/cardinal_number/DecimalToHexa.html 2. A) 広告URL:http://roy/~c109048/advertise/ ゲーム部門希望 B) ・プログラム設定 従来のタイピングソフトとは違う全く新しいものを作りたかった プログラム名:typeX.rb(名称:ハードタイプ) #!/usr/koeki/bin/ruby letter =["あいうえお","なにぬねの","ちゃちゅちょ","マサオ","Jリーグカレー よ","おかわり","ミキプルーン"] #ミスOKな部分 STDERR.print("長い長いタイピングの始まり\n") start = Time.now.to_i #時間測定スタート i = 0 #8つのワードまではここで計算される while i < letter.length printf("\v%s:", letter[i]) input = gets.chomp if input == letter[i] i += 1 end end STDERR.print("[NO TYPING]ここからは間違えれば即終了だ!\n") #一発アウト 予告のメッセージ STDERR.print("\n1+1=??:") #ひっかけ文1 kazu=gets.chomp #↑の変数をしまう if kazu=="1+1=??" STDERR.print("\v\t\t\tヒマだなあ:") #惑わし文だが入力しないと進めない clush=gets.chomp #↑の変数をしまう if clush=="ヒマだなあ" STDERR.print("\vじゃんけんをしようか:")#惑わし文2 type=gets.chomp #変数をしまう if type=="じゃんけんをしようか" STDERR.print("\v[NO TYPING]最初はグー!じゃんけん!\n")#惑わし文だが入 力しないよう指示 STDERR.print("\v1でチョキ、2でパー、3でグー:") #ひっかけ2 baka=gets.chomp if baka=="1でチョキ、2でパー、3でグー" STDERR.print("\v[NO TYPING]くそ...騙されなかったか...\n[NO TYPING]だがこれならどうだ!\n") STDERR.printf("\v%c[%dm黒:",0x1b,32)#ひっかけ3、色を変えて惑わす black=gets.chomp if black=="黒" STDERR.printf("\v%c[%dm赤:",0x1b,33)#ひっかけ4 red=gets.chomp if red=="赤" STDERR.printf("\v%c[%dm青:",0x1b,35)#ひっかけ5 blue=gets.chomp if blue=="青" STDERR.printf("\v%c[%dm赤%c[%dm青%c[%dm紫%c[%dm緑%c[%dm黄 %c[%dm:",0x1b,36,0x1b,33,0x1b,32,0x1b,30,0x1b,31,0x1b,39)#最 終問題、一文字ずつ色を変えて:以降は白に戻す rainbow=gets.chomp if rainbow=="赤青紫緑黄" stop = Time.now.to_i #タイムを止める print("\v敗けたよ…君の勝ちだ。\n") #クリア文 printf("今回の得点は%d点でした。\n",(stop-start)*50)#得点 画面、停止時間から開始時間を引いたものに50を掛けたものスコ アにする print("\n") else print("\v最後の最後で惜しかったねえ\n")#最終問題失敗画面 print("\n") end else print("-----------GAME OVER----------\n") print("\vピンクだよ…\n")#ひっかけ5失敗文 print("\n") end else print("-----------GAME OVER----------\n") print("\v黄色だと思ったかい\n")#ひっかけ4失敗文 print("\n") end else print("-----------GAME OVER----------\n") print("\vこれは緑だ\n")#ひっかけ3失敗文 print("\n") end else print("-----------GAME OVER----------\n") print("\v騙されたね、もしくはタイプミスかな?\n")#ひっかけ2失敗文 print("\n") end else print("-----------GAME OVER----------\n") print("\vここまできてタイプミスなんて…\n")#惑わし文2失敗 print("\n") end else print("\v----GAME OVER----\n")#惑わし文1失敗 end elsif kazu=="2" #ひっかけ文1でもし"2"が入力された場合の分岐点 STDERR.print("\v423+624=??:") #以下の計算問題はトラップなので正解 不正解でも進む kazu=gets.to_i STDERR.print("\v8654+4532=??:") kazu=gets.chomp.to_i print("\vここまで計算してもらって悪いけどこれはタイピングソフトだから意 味ないんだよね\n") #計算問題を全て解いた時の終了文、ゲームオー バーにする print("\v----GAME OVER---\n") print("\n") else print("\v----GAME OVER---\n")#ひっかけ文1がただのタイプミスだった場合に 表示 end #ところどころにあるprint("\n")は日本語入力時にでてくるカーソルの上の[あ] でprint文が隠れるのをふせぐため ・参考にしたプログラム 講義中にDLしたtimeup.rbにif文とcolor.rbから色のサンプルプログラムを作り それをもとに文に色を付けた。また讃岐先輩の意見を参考にif文の構成をバラバ ラにして書いていたif文を組み換えた。 ・実行画面 )全て成功した場合 pan{c109048}% ./typeX.rb [~/public_html/advertise] 長い長いタイピングの始まり あいうえお:あいうえお なにぬねの:なにぬねの ちゃちゅちょ:ちゃちゅちょ マサオ:マサオ Jリーグカレーよ:Jリーグカレーよ おかわり:おかわり ミキプルーン:ミキプルーン [NO TYPING]ここからは間違えれば即終了だ! 1+1=??:1+1=?? ヒマだなあ:ヒマだなあ じゃんけんをしようか:じゃんけんをしようか [NO TYPING]最初はグー!じゃんけん! 1でチョキ、2でパー、3でグー:1でチョキ、2でパー、3でグー [NO TYPING]くそ...騙されなかったか... [NO TYPING]だがこれならどうだ! 黒:黒 赤:赤 青:青 赤青紫緑黄:赤青紫緑黄 敗けたよ…君の勝ちだ。 今回の得点は6850点でした。 )計算問題で"2"を入力してしまった場合 pan{c109048}% ./typeX.rb [~/public_html/advertise] 長い長いタイピングの始まり あいうえお:あいうえお なにぬねの:なにぬねの ちゃちゅちょ:ちゃちゅちょ マサオ:マサオ Jリーグカレーよ:Jリーグカレーよ おかわり:おかわり ミキプルーン:ミキプルーン [NO TYPING]ここからは間違えれば即終了だ! 1+1=??:2 423+624=??:1047 8654+4532=??:134444 ここまで計算してもらって悪いけどこれはタイピングソフトだから意味ないんだよね ----GAME OVER--- )ヒマだなあの部分で間違えた場合 pan{c109048}% ./typeX.rb [~/public_html/advertise] 長い長いタイピングの始まり あいうえお:あいうえお なにぬねの:なにぬねの ちゃちゅちょ:ちゃちゅちょ マサオ:マサオ Jリーグカレーよ:Jリーグカレーよ おかわり:おかわり ミキプルーン:ミキプルーン [NO TYPING]ここからは間違えれば即終了だ! 1+1=??:1+1=?? ヒマだなあ:k ----GAME OVER---- <以下からは間違えてない部分は省略し最後の5行前後のみ表示する> )"じゃんけんをしようか"で間違えた場合 NO TYPING]ここからは間違えれば即終了だ! 1+1=??:1+1=?? ヒマだなあ:ヒマだなあ じゃんけんをしようか:うん -----------GAME OVER---------- ここまできてタイプミスなんて… )じゃんけんの部分で間違えた場合( ヒマだなあ:ヒマだなあ じゃんけんをしようか:じゃんけんをしようか [NO TYPING]最初はグー!じゃんけん! 1でチョキ、2でパー、3でグー:1 -----------GAME OVER---------- 騙されたね、もしくはタイプミスかな? 後は色を扱っているので実行して参照されたし 考察) タイプソフトととしては異質なものだがテストプレイ時に長すぎるという意見も あった、タイマーで終了するコードがあれば良かったかもしれない。 感想) 様々な人の協力もあって完成することが出来た、それにデバッグする人の苦労が 分かったのが一番大きいかもしれない。 参考 基礎プログラミング I 第9回 Ruby であそぼ / 広告ページの作成 「色をつけよ う」 (講義ノート) /西村まどか http://roy/~madoka/2010/r1/09/09_07_theme_05_ansi.html 2009年度情報リテラシー2 第7回/ 山本直美 http://roy/~yamamoto/text09/k207.html 礎プログラミング I 第9回 Ruby であそぼ / 広告ページの作成 「かかった時間 を調べる」 (講義ノート) /西村まどか http://roy/~madoka/2010/r1/09/09_05_theme_03_timeup.html 及川雄寛のワールドカップ注目選手検索: /及川雄寛 http://roy/~c109030/advertise/ 協力してくれた先輩 讃岐彩華 共同学習者 及川雄寛