2012年2月22日水曜日

開発環境

『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の13章(新しいクラスの作成と既存クラスの変更), 13.6(練習問題の続き)オレンジの木の拡張を解いてみる。

その他参考書籍

オレンジの木の拡張

コード(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 コメント:

コメントを投稿