第7回 基礎プログラミング II レポート課題 氏名:xxxxxxxx 学籍番号:c109xxx 語学クラス:中国語1 コース(系):環境サイエンス 「最高傑作のページ(web_kaeru.html)のファイルの添付をしていませんでした ので、再提出させていただきました。ファイルの添付をし、また、感想も書き 直しました。どうぞ宜しくお願いします。」 1、最高傑作 A、最高傑作 a、 仕様書(web_siyousyo.txt) ================================= 仕様書 ==================================== << 企画の意図 >> 普段、ゲームなどでストーリが展開するものがあるが、そのプログラムがどのよ うな仕組みで展開されていくのかが気になった。なので、自分でプログラムを作 成し、ゲームを体験してみようと思ったため、このプログラムを作成した。 << プログラム作成前・作成後 >> 始めは、プログラム(ゲーム)がいきなり始まるような状態で、プログラムも一度 結果が表示されると終了されるような仕組みだったが、改良し、ゲームが始まる 前に、一段階前置きを置き、プログラムも一度結果が出た後にまた話が続くよう にした。 << 今後の課題 >> プログラムは計算を行いながらそれと一致している文章を表示させる仕組みだか、 それらを文章を計算結果を一致させることができなかったので、「この問を選ぶ と、この問がかえってくる」というようなことがいえるプログラムを作成したい。 そうすると、内容がバラエティーに富んでくるのではないかと思った。 << 連絡先 >> 御意見・質問がありましたら下記のアドレスまでご連絡ください。 c109067@e.koeki-u.ac.jp << ご注意 >> このプログラムの著作権は小松 由里が所有しています。 このプログラムは無償で配布しています。 プログラムのダウンロード・再配布・プログラムの変更は自由に行えますが、そ の際に生じた問題に対してこちらは一切責任は負いません。 ============================================================================== ***************************************************************************** 取扱説明書(web_setumeisyo.txt) ============================== 取扱説明書 =================================== このプログラムでは、カエルの世話をすることができる。 このプログラムを実施するには、 ★仕様書(web_siyousyo.txt) ★取扱説明書(web_setumeisyo.txt) ★ゲームプログラム(kaeru.rb) 上記の2つのファイルを同じディレクトリ内にダウンロードし、保存してくださ い。 ---------------- ファイルをダウンロード・保存した後の手順 -------------------- 1、Kterm を起動。 2、まず [cd]でホームにいることを確認し、[ls]でファイル名を表示させ、 [public_html]を打ち込む。 3、次に[./advertise2]と打ち込み、[chmod +x kaeru.rb]を打ち込む。 4、画面に表示される通りにしたがってボードから入力する。そうすると、ゲー ムをすることができる。 ============================================================================== ***************************************************************************** b、プログラムに関するレポート ●考えた設定 前回作成したプログラム(def_rollplaying_a.rb)に更に method を付け足し、話 がまた始まるプログラム。最終結果では、絵がその結果により変化する設定。 ●作成したプログラム(kaeru.rb) #!/usr/koeki/bin/ruby def cry(naku) # 数値をしまう変数。 naku.times do # 指定された回数だけ繰り返す。 print("げこ\t") # かえる の鳴き声。 end # def 終わり。 print("\n") # 改行。 sleep(0.5) # sleep させる。 end # def 終わり。 def message(name) STDERR.printf("%sの世話しよう!: \n", name) STDERR.print("[1]\t小粥を食べさせる?\n") STDERR.print("[2]\t花を食べさせる?\n") STDERR.print("[3]\t薬草を食べさせる?\n") end def grow(time, syurui) x = 4 * time - syurui printf("%d日目\n",time) # 日にち printf("体重増加分 %d\n", x) # 体重増加量 x.to_i end def message2(name) STDERR.printf("%sは元気になった!一応もう少し安静にさせておこう。: \n", name) STDERR.print("[1]\tパソコンをいじっていようかなー。\n") STDERR.print("[2]\t雨が降ってるし、読書でもしようかな。\n") STDERR.print("[3]\t暇だからこの部屋の掃除でもしてよっと。\n") end def grow2(time, syurui) x = 6 * time - syurui printf("%d日目\n",time) # 日にち printf("体重増加分 %d\n", x) # 体重増加量 x.to_i end print("シトシト…\n") print("\n") sleep(1) print("シトシト…\n") print("\n") sleep(1) print("主人公\n") print("「 今日は雨降りだなあ。。ん?」\n") print("\n") print("\n") print("家に帰ろうとしている矢先、弱って倒れているカエルを家の前で見つけた。\n") print("\n") print("\n") print("主人公\n") print("「かわいそうに。このカエルを助けて世話をしよう。 体力を付けるために なにか栄養があるような食べ物をあげてみよう!」\n") print("\n") print("\n") print("まずカエルを家の中にそっと運び入れた。\n") print("\n") STDERR.printf("うーん。そうだなあ。まず、名前を付けてあげよう!: ") print("\n") name = gets.chomp if name == "" # もし空白だったら name = "かえ太朗" # かえ太朗 と名付ける end # if 終わり printf("%sという名前を付けてあげた。\n",name) print("\n") manpuku = 1 # 満腹度 weight = 1 # 体重 day = 0 # 育てた日付 print("\n") printf("よく鳴くと元気になってきている証拠だ!\n") print("\n") while true # 繰り返す cry(manpuku) # 鳴き声 message(name) # 文章 a = gets.chomp.to_i # 値を取ってきて、改行を取り、整数にして a にいれる。 print "*" * 80 # アスタリスクを80こ表示させる。 manpuku += day * a printf("満腹度 manpuku = %d\n", manpuku) weight += grow(day,a) printf("体重 weight = %d\n", weight) day += 1 if manpuku > 4 # 満腹度が 4 より大きければ break # 繰り返しから抜ける end # if 終わり if weight > 4 # 体重が 4 より大きければ break end cry(a) end # while終わり。 cry(weight) # 最終段階の体重が鳴き声になる。 printf("%sは", name) if weight > 8 print("元気になり、餅肌の白い") # 鳴き声が 5 以上 8 以下なら、餅肌の白いかえるになる。 elsif weight <= 5 print("元気になり、しゃべる") # 5 以下なら、しゃべるかえるになる。 else print("元気になり、虹色の") # それ以外は虹色のかえるになる。 end print("かえるに進化しました!よかった!\n") print("\n") print("\n") print "=" * 80 print("\n") system('banner NEXT DAY') p manpuku, day, weight # 満腹度・日にち・体重の数値を表示させる。 while true # 繰り返す cry(manpuku) # 鳴き声 message2(name) # 文章 a = gets.chomp.to_i # 値を取ってきて、改行を取り、整数にして a にいれる。 print "=" * 80 # アスタリスクを80こ表示させる。 manpuku += day * a printf("満腹度 manpuku = %d\n", manpuku) weight += grow2(day, a) printf("体重 weight = %d\n", weight) if manpuku > 4 # 満腹度が 4 より大きければ break # 繰り返しから抜ける end # if 終わり if weight > 4 # 体重が 4 より大きければ break end cry(a) day += 1 end cry(weight) # 最終段階の体重が鳴き声になる.。 printf("%sは", name) if weight >= 23 print("なんとシンクロ並みの華麗な泳ぎを見せてくれた!") system('display http://roy.e.koeki-u.ac.jp/~c109067/advertise2/kaeru_swim.png&') # 画像の表示 sleep 3 system('pkill display -U `whoami`') # 画像を終了させる。 elsif weight <= 20 print("流れていた音楽に合わせて歌い出した!") system('display http://roy.e.koeki-u.ac.jp/~c109067/advertise2/kaeru.png&') sleep 3 system('pkill display -U `whoami`') else weight <= 22 print("テレビの電源を入れてニュースを見始めた!これはニュースだ!") system('display http://roy.e.koeki-u.ac.jp/~c109067/advertise2/kaeru_tv.png&') sleep 3 system('pkill display -U `whoami`') end print("カエルの新たな一面が垣間見えた瞬間だった。\n") ●もとにしたプログラム プログラム def_rollplaying_a.rb を参考にした。 method・print文・system・を付け足した。 ●実行結果 3通りの結果が出るように設定されているので、3通り分を表示する。 <<カエルが泳ぐ>> pan{c109067}% ./kaeru.rb [~/public_html/advertise2] シトシト… シトシト… 主人公 「 今日は雨降りだなあ。。ん?」 家に帰ろうとしている矢先、弱って倒れているカエルを家の前で見つけた。 主人公 「かわいそうに。このカエルを助けて世話をしよう。 体力を付けるために なにか栄養があるような食べ物をあげてみよう!」 まずカエルを家の中にそっと運び入れた。 うーん。そうだなあ。まず、名前を付けてあげよう!: かえ太朗という名前を付けてあげた。 よく鳴くと元気になってきている証拠だ! げこ かえ太朗の世話しよう!: [1] 小粥を食べさせる? [2] 花を食べさせる? [3] 薬草を食べさせる? 3 ********************************************************************************満腹度 manpuku = 1 0日目 体重増加分 -3 体重 weight = -2 げこ げこ げこ げこ かえ太朗の世話しよう!: [1] 小粥を食べさせる? [2] 花を食べさせる? [3] 薬草を食べさせる? 2 ********************************************************************************満腹度 manpuku = 3 1日目 体重増加分 2 体重 weight = 0 げこ げこ げこ げこ げこ かえ太朗の世話しよう!: [1] 小粥を食べさせる? [2] 花を食べさせる? [3] 薬草を食べさせる? 2 ********************************************************************************満腹度 manpuku = 7 2日目 体重増加分 6 体重 weight = 6 げこ げこ げこ げこ げこ げこ かえ太朗は元気になり、虹色のかえるに進化しました!よかった! ================================================================================ # # ####### # # ####### ## # # # # # # # # # # # # # # # ##### # # # # # # # # # # ## # # # # # # ####### # # # ###### # # # # # # # # # # # # # # # # # # # # # # ####### # # # # # # ###### # # # 7 3 6 げこ げこ げこ げこ げこ げこ げこ かえ太朗は元気になった!一応もう少し安静にさせておこう。: [1] パソコンをいじっていようかなー。 [2] 雨が降ってるし、読書でもしようかな。 [3] 暇だからこの部屋の掃除でもしてよっと。 1 ================================================================================満腹度 manpuku = 10 3日目 体重増加分 17 体重 weight = 23 げこ げこ げこ げこ げこ げこ げこ げこ げこ げこげこ げこ げこ げこ げこ げこ げこ げこ げこ げこげこ げこ げこ かえ太朗はなんとシンクロ並みの華麗な泳ぎを見せてくれた!カエルの新たな一面が垣間見えた瞬間だった。 <<カエルが歌う>> pan{c109067}% ./kaeru.rb [~/public_html/advertise2] シトシト… シトシト… 主人公 「 今日は雨降りだなあ。。ん?」 家に帰ろうとしている矢先、弱って倒れているカエルを家の前で見つけた。 主人公 「かわいそうに。このカエルを助けて世話をしよう。 体力を付けるために なにか栄養があるような食べ物をあげてみよう!」 まずカエルを家の中にそっと運び入れた。 うーん。そうだなあ。まず、名前を付けてあげよう!: かえ太朗という名前を付けてあげた。 よく鳴くと元気になってきている証拠だ! げこ かえ太朗の世話しよう!: [1] 小粥を食べさせる? [2] 花を食べさせる? [3] 薬草を食べさせる? 3 ******************************************************************************** 満腹度 manpuku = 1 0日目 体重増加分 -3 体重 weight = -2 げこ げこ げこ げこ かえ太朗の世話しよう!: [1] 小粥を食べさせる? [2] 花を食べさせる? [3] 薬草を食べさせる? 3 ********************************************************************************満腹度 manpuku = 4 1日目 体重増加分 1 体重 weight = -1 げこ げこ げこ げこ げこ げこ げこ かえ太朗の世話しよう!: [1] 小粥を食べさせる? [2] 花を食べさせる? [3] 薬草を食べさせる? 3 ********************************************************************************満腹度 manpuku = 10 2日目 体重増加分 5 体重 weight = 4 げこ げこ げこ げこ かえ太朗は元気になり、しゃべるかえるに進化しました!よかった! ================================================================================ # # ####### # # ####### ## # # # # # # # # # # # # # # # ##### # # # # # # # # # # ## # # # # # # ####### # # # ###### # # # # # # # # # # # # # # # # # # # # # # ####### # # # # # # ###### # # # 10 3 4 げこ げこ げこ げこ げこ げこ げこ げこ げこ げこ かえ太朗は元気になった!一応もう少し安静にさせておこう。: [1] パソコンをいじっていようかなー。 [2] 雨が降ってるし、読書でもしようかな。 [3] 暇だからこの部屋の掃除でもしてよっと。 3 ================================================================================満腹度 manpuku = 19 3日目 体重増加分 15 体重 weight = 19 げこ げこ げこ げこ げこ げこ げこ げこ げこ げこげこ げこ げこ げこ げこ げこ げこ げこ げこ かえ太朗は流れていた音楽に合わせて歌い出した!カエルの新たな一面が垣間見えた瞬間だった。 <<カエルがテレビを見る>> pan{c109067}% ./kaeru.rb [~/public_html/advertise2] シトシト… シトシト… 主人公 「 今日は雨降りだなあ。。ん?」 家に帰ろうとしている矢先、弱って倒れているカエルを家の前で見つけた。 主人公 「かわいそうに。このカエルを助けて世話をしよう。 体力を付けるために なにか栄養があるような食べ物をあげてみよう!」 まずカエルを家の中にそっと運び入れた。 うーん。そうだなあ。まず、名前を付けてあげよう!: かえ太朗という名前を付けてあげた。 よく鳴くと元気になってきている証拠だ! げこ かえ太朗の世話しよう!: [1] 小粥を食べさせる? [2] 花を食べさせる? [3] 薬草を食べさせる? 3 ********************************************************************************満腹度 manpuku = 1 0日目 体重増加分 -3 体重 weight = -2 げこ げこ げこ げこ かえ太朗の世話しよう!: [1] 小粥を食べさせる? [2] 花を食べさせる? [3] 薬草を食べさせる? 2 ********************************************************************************満腹度 manpuku = 3 1日目 体重増加分 2 体重 weight = 0 げこ げこ げこ げこ げこ かえ太朗の世話しよう!: [1] 小粥を食べさせる? [2] 花を食べさせる? [3] 薬草を食べさせる? 3 ********************************************************************************満腹度 manpuku = 9 2日目 体重増加分 5 体重 weight = 5 げこ げこ げこ げこ げこ かえ太朗は元気になり、しゃべるかえるに進化しました!よかった! ================================================================================ # # ####### # # ####### ## # # # # # # # # # # # # # # # ##### # # # # # # # # # # ## # # # # # # ####### # # # ###### # # # # # # # # # # # # # # # # # # # # # # ####### # # # # # # ###### # # # 9 3 5 げこ げこ げこ げこ げこ げこ げこ げこ げこ かえ太朗は元気になった!一応もう少し安静にさせておこう。: [1] パソコンをいじっていようかなー。 [2] 雨が降ってるし、読書でもしようかな。 [3] 暇だからこの部屋の掃除でもしてよっと。 2 ================================================================================満腹度 manpuku = 15 3日目 体重増加分 16 体重 weight = 21 げこ げこ げこ げこ げこ げこ げこ げこ げこ げこげこ げこ げこ げこ げこ げこ げこ げこ げこ げこげこ かえ太朗はテレビの電源を入れてニュースを見始めた!これはニュースだ!カエルの新たな一面が垣間見えた瞬間だった。 ●考察 bc -l で確かめの計算をしたところ、計算がプログラムの結果の数値と一致して いるものもあれば、一致していない数値もあった。何度も計算してみたが、数値 が全て一致しなかった。 プログラムを確認すると、計算部分の def の名前が同一のものが2つ存在してい たために、計算が正しく行われていないということが分かった。なので、def の 名前を変更し、プログラムを実行して求められた値で再度計算を確かめる。 <<カエルが泳ぐ>> pan{c109067}% bc -l [~/public_html/advertise2] 4 * 0 - 3 -3 4 * 1 - 2 2 4 * 2 - 2 6 6 * 3 - 1 17 <<カエルが歌う>> 4 * 0 - 1 -1 4 * 1 - 3 1 4 * 2 - 3 5 6 * 3 - 3 15 (20以下は) <<カエルがテレビを見る>> 4 * 0 - 1 -1 4 * 1 - 2 2 4 * 2 - 3 5 6 * 3 - 2 16 quit 3つとも設定した基準通りの表示が提示されたので、このプログラムは正しいと いえる。 d、広告ページ リンク先 : http://roy/~c109067/advertise2/web_kaeru.html ●作成したページ ******** Help Me ! ********

******** Help Me ! ********

*。+ このプログラムではゲームをすることができます +。*

あなた(主人公)の家の目の前に弱ったカエルが倒れていました。

カエルの看病をして助けてあげてください!もしかするといいことがあるかも?!

このプログラム『 Help Me ! 』を実施するには、下記のプログラム一覧からプログラムをダウンロードして、ユーザーのパソコンに取り込んでください。

・・・・・・・・・・・プログラム一覧・・・・・・・・・・・・・

こちらからプログラムをダウンロードしてください。


仕様書(web_siyousyo.txt)
取り扱い説明書(web_setumeisyo.txt)
ゲームプログラム(kaeru.rb)

お問い合わせ先

このプログラムに何か不具合やご意見・ご感想がありましたら、

c109067@e.koeki-u.ac.jp

までご連絡ください。

このプログラムの著作権は小松 由里が所有しており、このプログラムは無償で配布しています。

プログラムのダウンロード・再配布・プログラムの変更は自由に行えますが、そ の際に生じた問題に対してこちらは一切責任は負いません。

ホームページに戻る ●作成した css h1{ color: #ffffff ; font-size: 2em; text-align: center; background: #339900 ; } h2{ color: #ffffff; font-size: 1.5em; text-align: center; background: #000000 ; } B、ホームページでの作業 a、トップページへのリンク リンク先 : http://roy/~c109067/ b、仕様書・取り扱い説明書へのリンク 仕様書リンク先 : http://roy/~c109067/advertise2/web_siyousyo.txt 取り扱い説明書リンク先 : http://roy/~c109067/advertise2/web_setumeisyo.txt c、最高傑作のプログラムへのリンク リンク先 : http://roy/~c109067/advertise2/kaeru.rb d、以前のプログラムと提出したレポートへのリンク プログラムのリンク先 : http://roy/~c109067/advertise2/0kaeru.rb レポートのリンク先 : http://roy/~c109067/advertise2/repo-to.txt 2、感想 今回のプログラム作成はとても大変だった。私は前回作成したプログラムをもと に今回のプログラムを作成したが、考察の計算部分が上手くいかなかったところ が一番苦戦した。プログラムを確認すると、def の名前が同一のものが存在して いたため、計算が正しく行われなかったということが判明した。友達にその点を 指摘してもらえたお陰で、正しい計算結果を導き出すことができた。 今回学んだこを機に、今後のプログラム作成の際に活かしていきたい。 また、ゲームプログラムで、カエルの飼育の日付が 1 ずつ増えていくはずが、 途中から数値が増えていかなくなってしまうことがあった。何故か分からなか ったため、友達に教えてもらったところ、その原因は、day += 1 の設置されて いる場所が if 文の前の方に設置されていた為だということが分かった。 前回ではできなかった絵の表示に今回取り組めたのが良かった。久々 tgif を 操作したので、忘れていた操作方法を確認しながら絵を作成することができた。 3、参考文献 西村 まどか 基礎プログラミング II 第6回 目的に応じて使ってみよう http://roy/~madoka/2010/r2/06/ 「るびおっち」 http://roy/~madoka/2010/r2/prog/def_rubiocci.rb 共同学習者 青木 千紗 久保田 瑛一郎 横山 広樹