2013年3月15日金曜日

開発環境

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

その他参考書籍

オレンジの木

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

コメントを投稿