余力のあるものは次の問題についてプログラムを作成し koeki MAILにて提出せよ。未完成で締切内に送ったものにコメントが 返された場合は新たな指定締切内に再送してよい。
次のいずれかを選び、お財布プログラムのpurse.rb, purse-use.rb の作り方にならって 実際に動くプログラムを作成せよ。
x = Serial.new したあと、x.next すると
     1回目は1、2回目は2、3回目は3、と1ずつ増えた数が返るクラス Serial
     (4)
j = Janken.new したあと、j.hand するたびに
     「グー」「チョキ」「パー」がランダムで出る Janken クラス
     (5)
以下のメソッドが必要。
上記の Janken クラスを拡張し、「前回出した手とは違うものを出す」
     ように工夫された NewJanken クラス
     (6)
必要なメソッドやインスタンス変数は以下の通り
(7)
醤油・味噌・塩ラーメンを提供する Ramen クラス
     ramen = Ramen.new(50, 30, 20)
     のように、「醤油ラーメンの仕込み数」、「味噌ラーメンの仕込み数」、
     「塩ラーメンの仕込み数」の3つを引数として初期化する。
     ramen.shoyu(3) とすると醤油ラーメン3杯を作って提供、
     同様に ramen.miso(N) は味噌ラーメン、
     ramen.shio(N) は塩ラーメンを指定された
     数だけ提供する。仕込み数を超える注文は「売り切れ」と表示する。
     (8)
好きな種目を選び、そのルールの2、3個をそれっぽく実装したクラス。
     クラス名はその種目の英語名の先頭を大文字にしたものとする(例:
     Baseball, Basketball, Football, Volleyball, Dancing, Fencing, Kendo,
     Shodo, PingPong, Swimming, Karuta, ...)
     (12)
括弧内の数値は、そのプログラムが正しく作れて自分の言葉で説明できた
場合の最高点である。
なお、クラス定義とそれを利用するプログラムファイルは別々とし、
利用する側は require_relative "定義ファイル"
として読み込む。クラス定義には 必ずinitialize
メソッド(コンストラクタ)を定義すること。つまりクラス定義側のプログラムは
以下のような構成となる。
class クラス名
  def initialize()
    # インスタンス変数を初期化するコードなど
  end
  def メソッド定義その1
    # 1つ目のメソッド定義
  end
  def メソッド定義その2
    # 2つ目のメソッド定義
  end
end
| 締切 | 5日後 | 
To: | 
  ruby-2-06@e.koeki-u.ac.jp | 
Subject: | クラス定義 選択番号 | 
宛先注意!
本文の先頭に
| クラス: | XX | 
| 学籍番号: | c123xxx | 
| 氏名: | ○×△□ | 
のように自分のクラス番号氏名を入れる。
レポート本体は以下の構成にすること。
参考文献は正しい書式で書くこと(違う書式は減点)。 GAIはためらわず利用してよいが、もらった説明を理解するまで質問を 繰り返し、レポートの説明には自分の言葉に直したものを書くこと。 またGAIへの質問は、偽名から始める指定の方法でやり取りをして、 その共有リンクを載せる。