第 7 回 ゼミ紹介 レポート課題 氏名:照井さつき 学籍番号:c1101589 語学クラス:中国語3 コース(系):政策マネジメント --------------------------- 添付したファイル : jiyuu.rb --------------------------- =============== 1-A .---------- (a) 企画意図 ---------- 何かmethodを使ったプログラムを作りたいと思い、作成した。 以前作ったmethodを使って選択しによってルートが変わる育成ゲームの、 指摘された部分などを改良した。 ---------- 遊び方 ---------- 最初に名前をつけ、3つの選択肢から一つ選んで育てていきます。 選んだ内容によって成長が決まります。 名前が記入されない場合は、既定の名前になります。 ---------- 連絡先 ---------- 御意見・質問がありましたら下記のアドレスまでご連絡ください。 c110158@e.koeki-u.ac.jp ---------- 注意 ---------- このプログラムは照井さつきが著作権を保有しています。 このプログラムの入手・実行・改変・再配布は、いずれも無料で自由に行 なうことができます。 ただしこのプログラムを取り扱うことで生じた、いかなる結果に対しても 著作権者は責任を負いません。 =============== 元にしたプログラム : def_rollplaying_a.rb 改良点 : 結果に応じて画像を表示できるようにした。 =============== 1-A .---------- (b) 作成したプログラム ---------- #!/usr/koeki/bin/ruby def plant(hana) #成長量表示メソッド hana.times do print("\n") #積み上げて表示 print("\t↑") sleep(0.4) #スリープさせる end print("\n ----------------- ( ※地面 )") print("\n") print("\n") end def message(name) # 文章メソッド STDERR.printf("%sを世話しよう: \n", name) STDERR.print("1,\t水をあげる\n") STDERR.print("2,\t肥料を与える\n") STDERR.printf("3,\t%sに声をかける\n",name) end def raise(perday,choice) #日数と成長量計算メソッド x = 2 * choice - perday print("\n") printf("%d日目\n",perday) printf("成長量 + ( %d )\n", x) #増加量表示 x end print("\n") print("友人から一つの球根を貰いました。\n") print("\n") print("植物でも話しかけて育てると、\n") print("綺麗に育つと聞いたあなたは\n") print("球根に名前を付けることにしました。\n") print("\n") STDERR.printf("どんな名前にしますか? : ") name = gets.chomp # 名前入力 if name == "" # 名前が入力されなかった場合、 name = "花子" # 自動的に花子になる。 end printf("%sという名前になりました。\n",name) happy = 1 # 愛情 hight = 1 # 成長量 day = 0 # 育てた日数 print("\n") print("さて、どんな花が咲くでしょうか。\n") print("※ 順調に育っているとどんどん伸び「↑」ます!\n") print("\n") print("-" * 8 + "\n") print("\n") while true message(name) # 文章メソッド内容表示 grow = gets.chomp.to_i # 番号を選び入力 hight += raise(day,grow) # 成長量計算メソッドの計算式でdayとgrowを使って計算 printf("成長量 hight=%d\n", hight) happy += day * grow + 1 # 日数と番号をかけ、合計を愛情に代入 printf(" 愛情 happy=%d\n", happy) if happy > 10 # 愛情が10より大きい場合、 break # 繰り返しから抜ける。 end # if hight > 5 # 成長量が5より大きい場合、 # break # 繰り返しから抜ける。 # end plant(grow) day += 1 #一日ずつ増える。 end plant(hight) # 繰り返しが終わったあとの成長量の数だけ↑が表示される。 printf("%sは", name) if hight > 13 # hight が 14 以上だった場合表示 print("綺麗なチューリップに育った!\n") print("\n") system'banner beautiful!' url="http://roy/~c110158/advertise2/beautiful.jpg" system "firefox -remote 'OpenURL(#{url},new-window)'" print("※画像がでます\n") elsif hight >8 # hight が 13 以下 8 以上だった場合表示 print("チューリップに育った!\n") print("\n") system'banner tulip' url="http://roy/~c110158/advertise2/tulip.jpg" system "firefox -remote 'OpenURL(#{url},new-window)'" print("※画像がでます\n") else # hight が 8 以下だった場合表示 print("枯れてしまった…\n") print("\n") system'banner wither...' end print("\n") print("\n") 1-A. ---------- (c) 実行結果 ---------- ---------- A.hight > 13 だった場合 ---------- pan{c110158}% ./jiyuu.rb [~/public_html/advertise2] 友人から一つの球根を貰いました。 植物でも話しかけて育てると、 綺麗に育つと聞いたあなたは 球根に名前を付けることにしました。 どんな名前にしますか? : はな はなという名前になりました。 さて、どんな花が咲くでしょうか。 ※ 順調に育っているとどんどん伸び「↑」ます! -------- はなを世話しよう: 1, 水をあげる 2, 肥料を与える 3, はなに声をかける 3 0日目 成長量 + ( 6 ) 成長量 hight=7 愛情 happy=2 ↑ ↑ ↑ ----------------- ( ※地面 ) はなを世話しよう: 1, 水をあげる 2, 肥料を与える 3, はなに声をかける 3 1日目 成長量 + ( 5 ) 成長量 hight=12 愛情 happy=6 ↑ ↑ ↑ ----------------- ( ※地面 ) はなを世話しよう: 1, 水をあげる 2, 肥料を与える 3, はなに声をかける 1 2日目 成長量 + ( 0 ) 成長量 hight=12 愛情 happy=9 ↑ ----------------- ( ※地面 ) はなを世話しよう: 1, 水をあげる 2, 肥料を与える 3, はなに声をかける 3 3日目 成長量 + ( 3 ) 成長量 hight=15 愛情 happy=19 ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ----------------- ( ※地面 ) はなは綺麗なチューリップに育った! ### ##### ###### ## # # ##### # ###### # # # ### # # # # # # # # # # # # # ### ##### ##### # # # # # # ##### # # # # # # # ###### # # # # # # # # # # # # # # # # # # # # # ### ##### ###### # # #### # # # #### ###### ### ※画像がでます ---------- B.13 > hight > 8 だった場合 ---------- pan{c110158}% ./jiyuu.rb [~/public_html/advertise2] 友人から一つの球根を貰いました。 植物でも話しかけて育てると、 綺麗に育つと聞いたあなたは 球根に名前を付けることにしました。 どんな名前にしますか? : はな はなという名前になりました。 さて、どんな花が咲くでしょうか。 ※ 順調に育っているとどんどん伸び「↑」ます! -------- はなを世話しよう: 1, 水をあげる 2, 肥料を与える 3, はなに声をかける 1 0日目 成長量 + ( 2 ) 成長量 hight=3 愛情 happy=2 ↑ ----------------- ( ※地面 ) はなを世話しよう: 1, 水をあげる 2, 肥料を与える 3, はなに声をかける 2 1日目 成長量 + ( 3 ) 成長量 hight=6 愛情 happy=5 ↑ ↑ ----------------- ( ※地面 ) はなを世話しよう: 1, 水をあげる 2, 肥料を与える 3, はなに声をかける 3 2日目 成長量 + ( 4 ) 成長量 hight=10 愛情 happy=12 ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ----------------- ( ※地面 ) はなはチューリップに育った! ##### # # # # ##### # # # # # # # # # # # # # # # # # # # ##### # # # # # # # #### ###### # # ※画像がでます ---------- C.hight < 8 だった場合 + 名前入力無し ---------- pan{c110158}% ./jiyuu.rb [~/public_html/advertise2] 友人から一つの球根を貰いました。 植物でも話しかけて育てると、 綺麗に育つと聞いたあなたは 球根に名前を付けることにしました。 どんな名前にしますか? : 花子という名前になりました。 さて、どんな花が咲くでしょうか。 ※ 順調に育っているとどんどん伸び「↑」ます! -------- 花子を世話しよう: 1, 水をあげる 2, 肥料を与える 3, 花子に声をかける 1 0日目 成長量 + ( 2 ) 成長量 hight=3 愛情 happy=2 ↑ ----------------- ( ※地面 ) 花子を世話しよう: 1, 水をあげる 2, 肥料を与える 3, 花子に声をかける 1 1日目 成長量 + ( 1 ) 成長量 hight=4 愛情 happy=4 ↑ ----------------- ( ※地面 ) 花子を世話しよう: 1, 水をあげる 2, 肥料を与える 3, 花子に声をかける 1 2日目 成長量 + ( 0 ) 成長量 hight=4 愛情 happy=7 ↑ ----------------- ( ※地面 ) 花子を世話しよう: 1, 水をあげる 2, 肥料を与える 3, 花子に声をかける 1 3日目 成長量 + ( -1 ) 成長量 hight=3 愛情 happy=11 ↑ ↑ ↑ ----------------- ( ※地面 ) 花子は枯れてしまった… # # # ##### # # ###### ##### # # # # # # # # # # # # # ###### ##### # # # ## # # # # # # ##### ### ### ### ## ## # # # # # # # ### ### ### # # # # # # ###### # # ### ### ### --------------- 1-A. ---------- (d) 考察 ---------- プログラム通りに実行されているか確かめるために、計算の確かめ算をした。 ---------- A の場合 ---------- 成長量の計算は pan{TERUI Satsuki}% bc -l [~] 2*3-0+1 7 2*3-1+7 12 2*1-2+12 12 2*3-3+12 15 となり、3日目で15になる。 また愛情の計算は、 0*3+1+1 2 1*3+1+2 6 2*1+1+6 9 3*3+1+9 19 と、なる。 愛情が 10 以上になった場合繰り返しから抜けるため、 3日目に19になった為抜ける。 ---------- B の場合 ---------- 成長量の計算は 2*1-0+1 3 2*2-1+3 6 2*3-2+6 10 となり、2日目で10になる。 また愛情の計算は、 0*1+1+1 2 1*2+1+2 5 2*3+1+5 12 と、なる。 愛情が 10 以上になった場合繰り返しから抜けるため、 2日目に12になった為抜ける。 ---------- C の場合 ---------- 成長量の計算は 2*1-0+1 3 2*1-1+3 4 2*1-2+4 4 2*1-3+4 3 となり、3日目で3になる。 また、愛情の計算は、 0*1+1+1 2 1*1+1+2 4 2*1+1+4 7 3*1+1+7 11 と、なる。 愛情が 10 以上になった場合繰り返しから抜けるため、 3日目11になった為抜ける。 また、文字・画像も表示されていることから プログラミング通りに計算、実行されていることがわかる。 --------------- =============== 1-A .---------- (e) 広告ホームページ ---------- http://roy/~c110158/advertise2/index.html =============== =============== 2. 感想 ---------- 以前指摘された部分も偶然もあったが改良することができた。 もう少し複雑な計算をいれると、育成ももっと面白くできるかも知れない と思ったので、計算面も大事だと感じた。 広告HPも長時間見ると目が痛くなりそうな色だが、デザインとしては 見やすくできたと思う。 =============== --------------- 3. 参考文献 --------------- 基礎プログラミング第10回 プログラムの公開 http://roy/~naoya/ruby/10.html 神田直弥 カラーコード - CGIレンタルサービス http://www.finitojapan.com/cltable.html