gotagota日記

「面白きことは良きことなり」

「プログラミング入門 - Rubyを使って」 Lesson9

プログラミング入門 - Rubyを使って -, by Chris Pine, 日本語ver. by S. Nishiyama

今回のRubyの学習はLesson9「クラス」です。
赤ちゃんドラゴンのプログラムはなんかたまごっちみたいな感じで楽しかったです。
では早速。

練習問題1

• 10億(One billion)秒... (もし記録が残っているなら)あなたの生まれた 正確な時刻を見つけ、いつ10億秒歳になる(あるいはなった)のかを 計算してみなさい。

「プログラミング入門 - Rubyを使って」 Lesson9

実行結果
0809-03-15 08:53:47 +0900
練習問題2

• ハッピーバースデー!  生まれた年、月、そして日を順に訊いて そこから年齢を計算します。そして、過ごしてきた誕生日それぞれに対して 大きなおめでとう!をプレゼントしましょう。

「プログラミング入門 - Rubyを使って」 Lesson9

実行結果
生まれた年は?
1777
生まれた月は?
7
生まれた日は?
7
1778年7月7日 誕生日おめでとう!
1779年7月7日 誕生日おめでとう!
1780年7月7日 誕生日おめでとう!
1781年7月7日 誕生日おめでとう!
1782年7月7日 誕生日おめでとう!

...中略...

2011年7月7日 誕生日おめでとう!
2012年7月7日 誕生日おめでとう!
2013年7月7日 誕生日おめでとう!
練習問題3

• OrangeTreeクラスを作ってみなさい。 このクラスには、木の高さを返すheightメソッドと、 メソッドを呼ぶことで、1年分時間を進めるoneYearPassesメソッドがあります。 毎年、この木は成長し大きくなります(オレンジの木が1年に伸びる分だけ)。 そして、ある年限が来たら(これもメソッド呼び出しによります) その木は死んでしまいます。最初の2,3年は実をつけませんが、その後は 実がなる様にします。で、成長した木は若い木よりたくさん実をつけます。 このあたりはあなたが納得するよう調節してみましょう。 そして、もちろんcountTheOranges(木になっているオレンジの数を返す)メソッドと、 pichAnOrange(オレンジをひとつ摘むメソッド。このメソッドで @orangeCountが、1だけ小さくなり、いかにおいしいオレンジだったかを告げる文字列か あるいは、もう木にオレンジがなっていないことを告げる文字列かを返します。)を 実行できるようにしなければいけません。 それと、ある年に取り残したオレンジは次の年には落ちてしまうようにしましょう。

「プログラミング入門 - Rubyを使って」 Lesson9

実行結果

省略

練習問題4

• 赤ちゃんドラゴンと会話が出来るようなプログラムを書いてみましょう。 feedやwalkのようなコマンドを入力できるようにして ドラゴンに対してそれらのメソッドが呼ばれるようにします。 もちろん、入力されたものは文字列なので、ある種のメソッドに転送する処理 をしなくてはならないでしょう。つまり、何の文字が入力されたかをチェックして適切な メソッドを呼び出すという処理です。

※赤ちゃんドラゴンのプログラムについてはリンク先を参照してください。 ->

プログラミング入門 - Rubyを使って -, by Chris Pine, 日本語ver. by S. Nishiyama

「プログラミング入門 - Rubyを使って」 Lesson9

実行結果

省略