開発環境
- OS X Lion - Apple(OS)
- BBEdit - Bare Bones Software, Inc.(Text Editor)
- プログラミング言語: Ruby
『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の 13章(新しいクラスの作成と既存クラスの変更), 13.6(練習問題)オレンジの木 を解いてみる。
その他参考書籍
- 『プログラミング言語 Ruby』David Flanagan, まつもと ゆきひろ 著 、卜部 昌平 監訳、長尾 高弘 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-394-4)
- Rubyクックブック ―エキスパートのための応用レシピ集
オレンジの木
コード(BBEdit)
sample.rb
#!/usr/bin/env ruby1.9
#-*- coding: utf-8 -*-
class OrangeTree
def initialize
@height = 0
@age = 0
@orange_count = 0
@alive = true
puts "オレンジの木を植えました。"
end
def height
if @alive
return @height
else
return "木は枯れています。"
end
end
def one_year_passes
if @alive
@orange_count = 0
@age += 1
if @age <= 5
@height += 2
if @age >= 2
@orange_count = 2 * @age
end
else
@height = nil
@age = nil
@orange_count = 0
@alive = false
end
end
end
def count_the_orange
return @orange_count
end
def pick_an_orange
if @alive
return "まだ実がなるほど成長していません。" if @age < 2
if @orange_count > 0
@orange_count -= 1
return "おいしいオレンジの実が採れました。"
end
return "もう採れる実がありません。"
end
return "木は枯れています。"
end
end
ot = OrangeTree.new
1.upto(6) do |i|
puts "#{i}年経過"
ot.one_year_passes
puts "木の高さ: #{ot.height}"
puts "オレンジの実の数: #{ot.count_the_orange}個"
(1 + ot.count_the_orange).times do
puts ot.pick_an_orange
end
end
入出力結果(Terminal)
$ ./sample.rb オレンジの木を植えました。 1年経過 木の高さ: 2 オレンジの実の数: 0個 まだ実がなるほど成長していません。 2年経過 木の高さ: 4 オレンジの実の数: 4個 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 もう採れる実がありません。 3年経過 木の高さ: 6 オレンジの実の数: 6個 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 もう採れる実がありません。 4年経過 木の高さ: 8 オレンジの実の数: 8個 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 もう採れる実がありません。 5年経過 木の高さ: 10 オレンジの実の数: 10個 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 おいしいオレンジの実が採れました。 もう採れる実がありません。 6年経過 木の高さ: 木は枯れています。 オレンジの実の数: 0個 木は枯れています。 $
0 コメント:
コメントを投稿