プログラミング言語/Ruby/コードリーディング/しりとりゲーム

Playerクラス

リスト2-1 Player

class Player
  def initialize(id, dictionary=[], gm=nil)
    @id = id
    @dictionary = dictionary
    @gm = gm
  end
  
  def game_master=(gm)
    @gm = gm
  end
  
  attr_reader :id
  attr_accessor :dictionary
end

Playerクラスは、ManualPlayerクラスとAutoPlayerクラスの 基底クラスであり、実際には使わない。

コンストラクタは識別名id、単語を収めた配列dictionary、そして 自分が参加するしりとりのGameMasterオブジェクトを受け取る。

shiritori.rb本文ではManualPlayer.new("あなた")のように生成されている。 @dictionaryと@gmはアクセサで後から設定するからである。