開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの機能制限無料版、light版)
- Script言語:Ruby
『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の 13章(新しいクラスの作成と既存クラスの変更), 13.6(練習問題の続き)、オレンジの木を解いてみる。
その他参考書籍
- 『プログラミング言語 Ruby』David Flanagan, まつもと ゆきひろ 著 、卜部 昌平 監訳、長尾 高弘 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-394-4)
オレンジの木
コード(TextWrangler)
#!/usr/bin/env ruby
#encoding: utf-8
class OrangeTree
def initialize
@age = 0
@height = 0
@orange_count = 0
@alive = true
puts 'オレンジの木を植えました。'
end
def age
if @alive
return @age
else
return '木はもう枯れています。'
end
end
def height
if @alive
return @height
else
return '木は枯れています'
end
end
def one_year_passes
@orange_count = 0
@alive = false if @age == 10
if @alive
@age += 1
@height = @age * 10
@orange_count = @age * 2 if @age >= 5
end
'1年経過しました。'
end
def count_the_orange
@orange_count
end
def pick_an_orange
if @orange_count > 0
@orange_count -= 1
return 'おいしいオレンジが採れました。'
else
if @alive
return '今年はもう採れる実がありません'
else
return '木はもう枯れています。'
end
end
end
end
ot = OrangeTree.new
11.times do
puts ot.one_year_passes
puts "樹齢: #{ot.age} 高さ: #{ot.height} 実の数: #{ot.count_the_orange}"
i = 1
(ot.count_the_orange + 1).times do
puts "#{i}個: #{ot.pick_an_orange}"
i += 1
end
end
入出力結果(Terminal)
$ ruby sample.rb オレンジの木を植えました。 1年経過しました。 樹齢: 1 高さ: 10 実の数: 0 1個: 今年はもう採れる実がありません 1年経過しました。 樹齢: 2 高さ: 20 実の数: 0 1個: 今年はもう採れる実がありません 1年経過しました。 樹齢: 3 高さ: 30 実の数: 0 1個: 今年はもう採れる実がありません 1年経過しました。 樹齢: 4 高さ: 40 実の数: 0 1個: 今年はもう採れる実がありません 1年経過しました。 樹齢: 5 高さ: 50 実の数: 10 1個: おいしいオレンジが採れました。 2個: おいしいオレンジが採れました。 3個: おいしいオレンジが採れました。 4個: おいしいオレンジが採れました。 5個: おいしいオレンジが採れました。 6個: おいしいオレンジが採れました。 7個: おいしいオレンジが採れました。 8個: おいしいオレンジが採れました。 9個: おいしいオレンジが採れました。 10個: おいしいオレンジが採れました。 11個: 今年はもう採れる実がありません 1年経過しました。 樹齢: 6 高さ: 60 実の数: 12 1個: おいしいオレンジが採れました。 2個: おいしいオレンジが採れました。 3個: おいしいオレンジが採れました。 4個: おいしいオレンジが採れました。 5個: おいしいオレンジが採れました。 6個: おいしいオレンジが採れました。 7個: おいしいオレンジが採れました。 8個: おいしいオレンジが採れました。 9個: おいしいオレンジが採れました。 10個: おいしいオレンジが採れました。 11個: おいしいオレンジが採れました。 12個: おいしいオレンジが採れました。 13個: 今年はもう採れる実がありません 1年経過しました。 樹齢: 7 高さ: 70 実の数: 14 1個: おいしいオレンジが採れました。 2個: おいしいオレンジが採れました。 3個: おいしいオレンジが採れました。 4個: おいしいオレンジが採れました。 5個: おいしいオレンジが採れました。 6個: おいしいオレンジが採れました。 7個: おいしいオレンジが採れました。 8個: おいしいオレンジが採れました。 9個: おいしいオレンジが採れました。 10個: おいしいオレンジが採れました。 11個: おいしいオレンジが採れました。 12個: おいしいオレンジが採れました。 13個: おいしいオレンジが採れました。 14個: おいしいオレンジが採れました。 15個: 今年はもう採れる実がありません 1年経過しました。 樹齢: 8 高さ: 80 実の数: 16 1個: おいしいオレンジが採れました。 2個: おいしいオレンジが採れました。 3個: おいしいオレンジが採れました。 4個: おいしいオレンジが採れました。 5個: おいしいオレンジが採れました。 6個: おいしいオレンジが採れました。 7個: おいしいオレンジが採れました。 8個: おいしいオレンジが採れました。 9個: おいしいオレンジが採れました。 10個: おいしいオレンジが採れました。 11個: おいしいオレンジが採れました。 12個: おいしいオレンジが採れました。 13個: おいしいオレンジが採れました。 14個: おいしいオレンジが採れました。 15個: おいしいオレンジが採れました。 16個: おいしいオレンジが採れました。 17個: 今年はもう採れる実がありません 1年経過しました。 樹齢: 9 高さ: 90 実の数: 18 1個: おいしいオレンジが採れました。 2個: おいしいオレンジが採れました。 3個: おいしいオレンジが採れました。 4個: おいしいオレンジが採れました。 5個: おいしいオレンジが採れました。 6個: おいしいオレンジが採れました。 7個: おいしいオレンジが採れました。 8個: おいしいオレンジが採れました。 9個: おいしいオレンジが採れました。 10個: おいしいオレンジが採れました。 11個: おいしいオレンジが採れました。 12個: おいしいオレンジが採れました。 13個: おいしいオレンジが採れました。 14個: おいしいオレンジが採れました。 15個: おいしいオレンジが採れました。 16個: おいしいオレンジが採れました。 17個: おいしいオレンジが採れました。 18個: おいしいオレンジが採れました。 19個: 今年はもう採れる実がありません 1年経過しました。 樹齢: 10 高さ: 100 実の数: 20 1個: おいしいオレンジが採れました。 2個: おいしいオレンジが採れました。 3個: おいしいオレンジが採れました。 4個: おいしいオレンジが採れました。 5個: おいしいオレンジが採れました。 6個: おいしいオレンジが採れました。 7個: おいしいオレンジが採れました。 8個: おいしいオレンジが採れました。 9個: おいしいオレンジが採れました。 10個: おいしいオレンジが採れました。 11個: おいしいオレンジが採れました。 12個: おいしいオレンジが採れました。 13個: おいしいオレンジが採れました。 14個: おいしいオレンジが採れました。 15個: おいしいオレンジが採れました。 16個: おいしいオレンジが採れました。 17個: おいしいオレンジが採れました。 18個: おいしいオレンジが採れました。 19個: おいしいオレンジが採れました。 20個: おいしいオレンジが採れました。 21個: 今年はもう採れる実がありません 1年経過しました。 樹齢: 木はもう枯れています。 高さ: 木は枯れています 実の数: 0 1個: 木はもう枯れています。 $
今回の周ではirb(インタラクティブRuby)も少しずつ活用してみることに。
まだ上記の本を入手してないのでまた最初から。
本書を続けつつ、上記の本を早く入手してそっちに切り替え。本書も飽きてきたから早く入手しないと。。
Learning Rubyを入手したので今周が終わったら切り替え。
0 コメント:
コメントを投稿