2012年3月24日土曜日

開発環境

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

その他参考書籍

オレンジの木

コード(TextWrangler)

#!/usr/bin/env ruby
#encoding: utf-8

class OrangeTree
  def initialize
    @height = 0
    @age = 0
    @alive = true
    @orange_count = 0
  end
  
  def height
    @height
  end
  
  def one_year_passes
    @orange_count = 0
    if @age == 10
      @height = 0
      @alive = false
      return '木は枯れています。'
    end
    if @alive
      @age += 1
      @height += 10
      @orange_count = @age if @age >= 5
    end
    return '1年経過しました'
  end
  
  def count_the_orange
    @orange_count
  end
  
  def pick_an_orange
    if @orange_count > 0
      @orange_count -= 1
      return 'とてもおいしい実がとれました。'
    else
      return '採れる実がありません。'
    end
  end
end

ot = OrangeTree.new
i = 1
11.times do
  puts ot.one_year_passes
  puts "樹齢: #{i}"
  puts "高さ: #{ot.height}"
  puts "実の数: #{ot.count_the_orange}"
  j = 1
  while 1
    puts "#{j}個目: #{ot.pick_an_orange}"
    break if ot.count_the_orange == 0
    j += 1
  end
  i += 1
end

入出力結果(Terminal)

$ ./ruby_program.rb
1年経過しました
樹齢: 1
高さ: 10
実の数: 0
1個目: 採れる実がありません。
1年経過しました
樹齢: 2
高さ: 20
実の数: 0
1個目: 採れる実がありません。
1年経過しました
樹齢: 3
高さ: 30
実の数: 0
1個目: 採れる実がありません。
1年経過しました
樹齢: 4
高さ: 40
実の数: 0
1個目: 採れる実がありません。
1年経過しました
樹齢: 5
高さ: 50
実の数: 5
1個目: とてもおいしい実がとれました。
2個目: とてもおいしい実がとれました。
3個目: とてもおいしい実がとれました。
4個目: とてもおいしい実がとれました。
5個目: とてもおいしい実がとれました。
1年経過しました
樹齢: 6
高さ: 60
実の数: 6
1個目: とてもおいしい実がとれました。
2個目: とてもおいしい実がとれました。
3個目: とてもおいしい実がとれました。
4個目: とてもおいしい実がとれました。
5個目: とてもおいしい実がとれました。
6個目: とてもおいしい実がとれました。
1年経過しました
樹齢: 7
高さ: 70
実の数: 7
1個目: とてもおいしい実がとれました。
2個目: とてもおいしい実がとれました。
3個目: とてもおいしい実がとれました。
4個目: とてもおいしい実がとれました。
5個目: とてもおいしい実がとれました。
6個目: とてもおいしい実がとれました。
7個目: とてもおいしい実がとれました。
1年経過しました
樹齢: 8
高さ: 80
実の数: 8
1個目: とてもおいしい実がとれました。
2個目: とてもおいしい実がとれました。
3個目: とてもおいしい実がとれました。
4個目: とてもおいしい実がとれました。
5個目: とてもおいしい実がとれました。
6個目: とてもおいしい実がとれました。
7個目: とてもおいしい実がとれました。
8個目: とてもおいしい実がとれました。
1年経過しました
樹齢: 9
高さ: 90
実の数: 9
1個目: とてもおいしい実がとれました。
2個目: とてもおいしい実がとれました。
3個目: とてもおいしい実がとれました。
4個目: とてもおいしい実がとれました。
5個目: とてもおいしい実がとれました。
6個目: とてもおいしい実がとれました。
7個目: とてもおいしい実がとれました。
8個目: とてもおいしい実がとれました。
9個目: とてもおいしい実がとれました。
1年経過しました
樹齢: 10
高さ: 100
実の数: 10
1個目: とてもおいしい実がとれました。
2個目: とてもおいしい実がとれました。
3個目: とてもおいしい実がとれました。
4個目: とてもおいしい実がとれました。
5個目: とてもおいしい実がとれました。
6個目: とてもおいしい実がとれました。
7個目: とてもおいしい実がとれました。
8個目: とてもおいしい実がとれました。
9個目: とてもおいしい実がとれました。
10個目: とてもおいしい実がとれました。
木は枯れています。
樹齢: 11
高さ: 0
実の数: 0
1個目: 採れる実がありません。
$

今回の周ではirb(インタラクティブRuby)も少しずつ活用してみることに。

本書を続けつつ、上記の本を入手したらそっちに切り替え。

0 コメント:

コメントを投稿