2012年9月14日金曜日

開発環境

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

その他参考書籍

オレンジの木

コード(TextWrangler)

sample.rb

#!/usr/bin/env ruby1.9
# -*- coding: utf-8 -*-

class OrangeTree
  def initialize
    @height = 0
    @orange_count = 0
    @alive = true
    @age = 0
    puts "オレンジの木を植えました。"
  end
  
  def height
    @height
  end
  
  def one_year_passes
    @orange_count = 0
    @age += 1
    @alive = false if @age > 10
    @age = nil unless @alive
    @orange_count = @age * 1 if @alive
    @height =  5 * @age if @alive
    @height = nil unless @alive
  end
  
  def count_the_orange
    @orange_count
  end
  
  def pick_an_orange
    return 'もう木は枯れています。' unless @alive
    if @orange_count > 0
      @orange_count -= 1
      return "おいしいオレンジが採れました!"
    else
      return "今年はもう採れる実がありません。"
    end
  end
end


ot = OrangeTree.new

11.times do
  ot.one_year_passes
  puts "1年経過しました。"
  puts "木の高さ: #{ot.height}、実の数: #{ot.count_the_orange}"
  (ot.count_the_orange + 1).times do
    puts ot.pick_an_orange
  end
end

入出力結果(Terminal)

$ ./sample.rb
オレンジの木を植えました。
1年経過しました。
木の高さ: 5、実の数: 1
おいしいオレンジが採れました!
今年はもう採れる実がありません。
1年経過しました。
木の高さ: 10、実の数: 2
おいしいオレンジが採れました!
おいしいオレンジが採れました!
今年はもう採れる実がありません。
1年経過しました。
木の高さ: 15、実の数: 3
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
今年はもう採れる実がありません。
1年経過しました。
木の高さ: 20、実の数: 4
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
今年はもう採れる実がありません。
1年経過しました。
木の高さ: 25、実の数: 5
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
今年はもう採れる実がありません。
1年経過しました。
木の高さ: 30、実の数: 6
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
今年はもう採れる実がありません。
1年経過しました。
木の高さ: 35、実の数: 7
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
今年はもう採れる実がありません。
1年経過しました。
木の高さ: 40、実の数: 8
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
今年はもう採れる実がありません。
1年経過しました。
木の高さ: 45、実の数: 9
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
今年はもう採れる実がありません。
1年経過しました。
木の高さ: 50、実の数: 10
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
おいしいオレンジが採れました!
今年はもう採れる実がありません。
1年経過しました。
木の高さ: 、実の数: 0
もう木は枯れています。
$

0 コメント:

コメントを投稿