第 7 回 ゼミ紹介 レポート課題 氏名:吉田 栞 学籍番号:c1101997 語学クラス:英語クラス6 コース(系):政策マネジメントコース 1. A a.仕様書 [ 企画意図 ] 普段、ゲームなどでストーリが展開するものがありますが、そのプログラムが どのような仕組みで展開されていくのか、自分でプログラムを作成し、体験し てみようと思ったため、このプログラムを作成しました。 [ 取扱説明書 ] ------------------- program.rb について ------------------- このプログラムは、金魚を育成するゲームです。 名前を付け、3つの選択肢から選んで育成していきます。 また、最終的に育成した金魚の画像がパソコンの画面上に出ます。 ------------ ダウンロード ------------ プログラムを保存したディレクトリに移動し、プログラムを実行します。 例えばpublic_html / advertise2 にプログラムを保存した場合、 cd public_html / advertise2 と打ち込んでください。 そして、実行するために chmod +x program.rb と入力し、チェンジモードを おこなってください。 最後に、 ./program.rb で起動して、プログラムの指示にしたがって下さい。 b.プログラムに関する部分 -------------- 解説 -------------- 前回の課題のプログラムを改良しました。 しあわせ度 と 水を跳ねる音 を表示出来るようにしました。 また、最終的に育った金魚の画像を表示するようにしました。 --------------- プログラム --------------- #!/usr/koeki/bin/ruby def cry(naku) naku.times do print("ぴちっ\t") #金魚が水を跳ねている音 end print("\n") sleep(0.5) #スリープさせる end def message(name) # 文章メソッド STDERR.printf("\n%sのお世話をしましょう: \n", name) STDERR.print("[1]\t餌をあげる\n") STDERR.print("[2]\t話しかける\n") STDERR.print("[3]\t水槽の掃除をする\n") end def big(day,exercise) # 日にちと体重増加量の計算メソッド x = 4 * day - exercise printf("%d日目\n",day) #日にち printf("体重増加分 %d\n",x) #体重増加分 x.to_i # 数値を返す end print("縁日で金魚を一匹買ってもらいました。\n") print("\n") print("小さな子供の金魚です。\n") print("大切に育ててあげて下さい。\n") print("では、さっそく名前を付けてあげましょう。\n") print("\n") STDERR.printf("どんな名前にしますか?") name = gets.chomp if name == "" # もしnameが""だったら"" name = "キンちゃん" # もしcolorが何もなかったら"キンちゃん" end printf("%sという名前になりました。\n",name) happy = 1 # しあわせ度 weight = 1 # 体重 day = 0 # 育てた日 print("\n") printf("水を跳ねている音が聞こえる…\n") sleep(0.5) printf("ここが気に入ったようですね!\n") print("\n") while true #繰り返す cry(happy) #金魚が水を跳ねている音 message(name) y = gets.chomp.to_i # 答えを求める print"-"*40 #"-"を40個表示させる happy += day * y printf("しあわせ度 happy = %d\n",happy) weight += big(day,y) printf("体重 weight = %d\n", weight) if happy > 4 # もし、しあわせ度が4より大きければ break # 繰り返しから抜ける。 end if weight > 4 # もし、体重が4より大きければ break # 繰り返しから抜ける。 end day += 1 cry(y) end cry(weight) # 最終段階の体重の数と同じ回数の水を跳ねている音が表示される printf("%sは", name) if weight > 7 print("少し大きくなりすぎてしまいましたね。") print("ダイエットが必要かもしれません。") system('display kin.xcf') #画像を表示する elsif weight > 5 print("とても元気そうです、愛情の賜物ですね。") system('display kin2.xcf') #画像を表示する else print("ずいぶんスリムになってしまいましたね。") print("もう少し餌を増やしても大丈夫ですよ。\n") system('display kin3.xcf') #画像を表示する end ------------- 実行結果 ------------- ( 1回目 ) pan{c110199}% ./kingyo.rb [~/public_html/advertise2] 縁日で金魚を一匹買ってもらいました。 小さな子供の金魚です。 大切に育ててあげて下さい。 では、さっそく名前を付けてあげましょう。 どんな名前にしますか?kin kinという名前になりました。 水を跳ねている音が聞こえる… ここが気に入ったようですね! ぴちっ kinのお世話をしましょう: [1] 餌をあげる [2] 話しかける [3] 水槽の掃除をする 1 ----------------------------------------しあわせ度 happy = 1 0日目 体重増加分 -1 体重 weight = 0 ぴちっ ぴちっ kinのお世話をしましょう: [1] 餌をあげる [2] 話しかける [3] 水槽の掃除をする 2 ----------------------------------------しあわせ度 happy = 3 1日目 体重増加分 2 体重 weight = 2 ぴちっ ぴちっ ぴちっ ぴちっ ぴちっ kinのお世話をしましょう: [1] 餌をあげる [2] 話しかける [3] 水槽の掃除をする 3 ----------------------------------------しあわせ度 happy = 9 2日目 体重増加分 5 体重 weight = 7 ぴちっ ぴちっ ぴちっ ぴちっ ぴちっ ぴちっ ぴちっ kinはとても元気そうです、愛情の賜物ですね。 ( 2回目 ) pan{c110199}% ./kingyo.rb [~/public_html/advertise2] 縁日で金魚を一匹買ってもらいました。 小さな子供の金魚です。 大切に育ててあげて下さい。 では、さっそく名前を付けてあげましょう。 どんな名前にしますか?kin kinという名前になりました。 水を跳ねている音が聞こえる… ここが気に入ったようですね! ぴちっ kinのお世話をしましょう: [1] 餌をあげる [2] 話しかける [3] 水槽の掃除をする 1 ----------------------------------------しあわせ度 happy = 1 0日目 体重増加分 -1 体重 weight = 0 ぴちっ ぴちっ kinのお世話をしましょう: [1] 餌をあげる [2] 話しかける [3] 水槽の掃除をする 1 ----------------------------------------しあわせ度 happy = 2 1日目 体重増加分 3 体重 weight = 3 ぴちっ ぴちっ ぴちっ kinのお世話をしましょう: [1] 餌をあげる [2] 話しかける [3] 水槽の掃除をする 2 ----------------------------------------しあわせ度 happy = 6 2日目 体重増加分 6 体重 weight = 9 ぴちっ ぴちっ ぴちっ ぴちっ ぴちっ ぴちっ ぴちっ ぴちっ ぴちっ kinは少し大きくなりすぎてしまいましたね。ダイエットが必要かもしれません。% ---------- 考察 ---------- 実行結果が合っているかbc-lで確かめ算を行った。 ( 1回目 ) pan{YOSHIDA Shiori}% bc -l [~] 4*0-1 -1 4*1-2 2 4*2-3 5 -1+2+5 6 計算の答えは、6 となる。 よって、実行結果は合っているといえる。 ( 2回目 ) pan{YOSHIDA Shiori}% bc -l [~] 4*0-1 -1 4*1-1 3 4*2-2 6 -1+3+6 8 計算の答えは、8 となる。 よって、実行結果は合っているといえる。 2.感想 今回の最高傑作は今までで1番時間をかけて作成しました。 元にしたプログラムはあるものの、いつもよりプログラムを工夫して作成 できたと思います。 しかし、それでもこれまでの講評のプログラムに比べて、自分のプログラム は難易度が低いと感じました。 少しずつでも、みんなのレベルに追いつけるように頑張りたいです。 3.参考文献 西村 までか 基礎プログラミング II 第 6 回 「目的に応じて使ってみよう」