2012年5月25日金曜日

開発環境

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

その他参考書籍

オレンジの木

コード(TextWrangler)

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

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

ot = OrangeTree.new
11.times do
  puts ot.one_year_passes
  puts "樹齢: #{ot.age} 高さ: #{ot.height} 実の数: #{ot.count_the_orange}"
  i = 1
  (ot.count_the_orange + 1).times do
    puts "#{i}個: #{ot.pick_an_orange}"
    i += 1
  end
end

入出力結果(Terminal)

$ ruby sample.rb
オレンジの木を植えました。
1年経過しました。
樹齢: 1 高さ: 10 実の数: 0
1個: 今年はもう採れる実がありません
1年経過しました。
樹齢: 2 高さ: 20 実の数: 0
1個: 今年はもう採れる実がありません
1年経過しました。
樹齢: 3 高さ: 30 実の数: 0
1個: 今年はもう採れる実がありません
1年経過しました。
樹齢: 4 高さ: 40 実の数: 0
1個: 今年はもう採れる実がありません
1年経過しました。
樹齢: 5 高さ: 50 実の数: 10
1個: おいしいオレンジが採れました。
2個: おいしいオレンジが採れました。
3個: おいしいオレンジが採れました。
4個: おいしいオレンジが採れました。
5個: おいしいオレンジが採れました。
6個: おいしいオレンジが採れました。
7個: おいしいオレンジが採れました。
8個: おいしいオレンジが採れました。
9個: おいしいオレンジが採れました。
10個: おいしいオレンジが採れました。
11個: 今年はもう採れる実がありません
1年経過しました。
樹齢: 6 高さ: 60 実の数: 12
1個: おいしいオレンジが採れました。
2個: おいしいオレンジが採れました。
3個: おいしいオレンジが採れました。
4個: おいしいオレンジが採れました。
5個: おいしいオレンジが採れました。
6個: おいしいオレンジが採れました。
7個: おいしいオレンジが採れました。
8個: おいしいオレンジが採れました。
9個: おいしいオレンジが採れました。
10個: おいしいオレンジが採れました。
11個: おいしいオレンジが採れました。
12個: おいしいオレンジが採れました。
13個: 今年はもう採れる実がありません
1年経過しました。
樹齢: 7 高さ: 70 実の数: 14
1個: おいしいオレンジが採れました。
2個: おいしいオレンジが採れました。
3個: おいしいオレンジが採れました。
4個: おいしいオレンジが採れました。
5個: おいしいオレンジが採れました。
6個: おいしいオレンジが採れました。
7個: おいしいオレンジが採れました。
8個: おいしいオレンジが採れました。
9個: おいしいオレンジが採れました。
10個: おいしいオレンジが採れました。
11個: おいしいオレンジが採れました。
12個: おいしいオレンジが採れました。
13個: おいしいオレンジが採れました。
14個: おいしいオレンジが採れました。
15個: 今年はもう採れる実がありません
1年経過しました。
樹齢: 8 高さ: 80 実の数: 16
1個: おいしいオレンジが採れました。
2個: おいしいオレンジが採れました。
3個: おいしいオレンジが採れました。
4個: おいしいオレンジが採れました。
5個: おいしいオレンジが採れました。
6個: おいしいオレンジが採れました。
7個: おいしいオレンジが採れました。
8個: おいしいオレンジが採れました。
9個: おいしいオレンジが採れました。
10個: おいしいオレンジが採れました。
11個: おいしいオレンジが採れました。
12個: おいしいオレンジが採れました。
13個: おいしいオレンジが採れました。
14個: おいしいオレンジが採れました。
15個: おいしいオレンジが採れました。
16個: おいしいオレンジが採れました。
17個: 今年はもう採れる実がありません
1年経過しました。
樹齢: 9 高さ: 90 実の数: 18
1個: おいしいオレンジが採れました。
2個: おいしいオレンジが採れました。
3個: おいしいオレンジが採れました。
4個: おいしいオレンジが採れました。
5個: おいしいオレンジが採れました。
6個: おいしいオレンジが採れました。
7個: おいしいオレンジが採れました。
8個: おいしいオレンジが採れました。
9個: おいしいオレンジが採れました。
10個: おいしいオレンジが採れました。
11個: おいしいオレンジが採れました。
12個: おいしいオレンジが採れました。
13個: おいしいオレンジが採れました。
14個: おいしいオレンジが採れました。
15個: おいしいオレンジが採れました。
16個: おいしいオレンジが採れました。
17個: おいしいオレンジが採れました。
18個: おいしいオレンジが採れました。
19個: 今年はもう採れる実がありません
1年経過しました。
樹齢: 10 高さ: 100 実の数: 20
1個: おいしいオレンジが採れました。
2個: おいしいオレンジが採れました。
3個: おいしいオレンジが採れました。
4個: おいしいオレンジが採れました。
5個: おいしいオレンジが採れました。
6個: おいしいオレンジが採れました。
7個: おいしいオレンジが採れました。
8個: おいしいオレンジが採れました。
9個: おいしいオレンジが採れました。
10個: おいしいオレンジが採れました。
11個: おいしいオレンジが採れました。
12個: おいしいオレンジが採れました。
13個: おいしいオレンジが採れました。
14個: おいしいオレンジが採れました。
15個: おいしいオレンジが採れました。
16個: おいしいオレンジが採れました。
17個: おいしいオレンジが採れました。
18個: おいしいオレンジが採れました。
19個: おいしいオレンジが採れました。
20個: おいしいオレンジが採れました。
21個: 今年はもう採れる実がありません
1年経過しました。
樹齢: 木はもう枯れています。 高さ: 木は枯れています 実の数: 0
1個: 木はもう枯れています。
$

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

まだ上記の本を入手してないのでまた最初から。

本書を続けつつ、上記の本を早く入手してそっちに切り替え。本書も飽きてきたから早く入手しないと。。

Learning Rubyを入手したので今周が終わったら切り替え。

0 コメント:

コメントを投稿