開発環境
- 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
puts 'オレンジの木を植えました'
@height = 0
@age = 0
@alive = true
@orange = 0
end
def height
@height
end
def one_year_passes
return '木はもう枯れています。' if !@alive
@orange = 0
@age += 1
if @age > 10
@height = "ぼろぼろ"
@alive = false
return '1年経過しました。木は枯れてしまいました'
else
@height += 10
@orange = @age * 2 if @age >= 5
return "1年経過しました。"
end
end
def count_the_orange
@orange
end
def pick_an_orange
if @orange >= 1
@orange -= 1
return "おいしい!(残り#{@orange}個)"
else
return "今年はもう採れる実がありません"
end
end
end
ot = OrangeTree.new
12.times do
puts "高さ: #{ot.height} 実: #{ot.count_the_orange}個"
(ot.count_the_orange + 1).times do
puts ot.pick_an_orange
end
puts ot.one_year_passes
end
入出力結果(Terminal)
$ ./ruby_program.rb オレンジの木を植えました 高さ: 0 実: 0個 今年はもう採れる実がありません 1年経過しました。 高さ: 10 実: 0個 今年はもう採れる実がありません 1年経過しました。 高さ: 20 実: 0個 今年はもう採れる実がありません 1年経過しました。 高さ: 30 実: 0個 今年はもう採れる実がありません 1年経過しました。 高さ: 40 実: 0個 今年はもう採れる実がありません 1年経過しました。 高さ: 50 実: 10個 おいしい!(残り9個) おいしい!(残り8個) おいしい!(残り7個) おいしい!(残り6個) おいしい!(残り5個) おいしい!(残り4個) おいしい!(残り3個) おいしい!(残り2個) おいしい!(残り1個) おいしい!(残り0個) 今年はもう採れる実がありません 1年経過しました。 高さ: 60 実: 12個 おいしい!(残り11個) おいしい!(残り10個) おいしい!(残り9個) おいしい!(残り8個) おいしい!(残り7個) おいしい!(残り6個) おいしい!(残り5個) おいしい!(残り4個) おいしい!(残り3個) おいしい!(残り2個) おいしい!(残り1個) おいしい!(残り0個) 今年はもう採れる実がありません 1年経過しました。 高さ: 70 実: 14個 おいしい!(残り13個) おいしい!(残り12個) おいしい!(残り11個) おいしい!(残り10個) おいしい!(残り9個) おいしい!(残り8個) おいしい!(残り7個) おいしい!(残り6個) おいしい!(残り5個) おいしい!(残り4個) おいしい!(残り3個) おいしい!(残り2個) おいしい!(残り1個) おいしい!(残り0個) 今年はもう採れる実がありません 1年経過しました。 高さ: 80 実: 16個 おいしい!(残り15個) おいしい!(残り14個) おいしい!(残り13個) おいしい!(残り12個) おいしい!(残り11個) おいしい!(残り10個) おいしい!(残り9個) おいしい!(残り8個) おいしい!(残り7個) おいしい!(残り6個) おいしい!(残り5個) おいしい!(残り4個) おいしい!(残り3個) おいしい!(残り2個) おいしい!(残り1個) おいしい!(残り0個) 今年はもう採れる実がありません 1年経過しました。 高さ: 90 実: 18個 おいしい!(残り17個) おいしい!(残り16個) おいしい!(残り15個) おいしい!(残り14個) おいしい!(残り13個) おいしい!(残り12個) おいしい!(残り11個) おいしい!(残り10個) おいしい!(残り9個) おいしい!(残り8個) おいしい!(残り7個) おいしい!(残り6個) おいしい!(残り5個) おいしい!(残り4個) おいしい!(残り3個) おいしい!(残り2個) おいしい!(残り1個) おいしい!(残り0個) 今年はもう採れる実がありません 1年経過しました。 高さ: 100 実: 20個 おいしい!(残り19個) おいしい!(残り18個) おいしい!(残り17個) おいしい!(残り16個) おいしい!(残り15個) おいしい!(残り14個) おいしい!(残り13個) おいしい!(残り12個) おいしい!(残り11個) おいしい!(残り10個) おいしい!(残り9個) おいしい!(残り8個) おいしい!(残り7個) おいしい!(残り6個) おいしい!(残り5個) おいしい!(残り4個) おいしい!(残り3個) おいしい!(残り2個) おいしい!(残り1個) おいしい!(残り0個) 今年はもう採れる実がありません 1年経過しました。木は枯れてしまいました 高さ: ぼろぼろ 実: 0個 今年はもう採れる実がありません 木はもう枯れています。 $
本書を続けつつ、上記の本を入手したらそっちに切り替え。
0 コメント:
コメントを投稿