Class: Mjai::Furo

Inherits:
Object
  • Object
show all
Extended by:
WithFields
Defined in:
lib/mjai/furo.rb

Overview

副露

Constant Summary collapse

FURO_TYPE_TO_MENTSU_TYPE =
{
  :chi => :shuntsu,
  :pon => :kotsu,
  :daiminkan => :kantsu,
  :kakan => :kantsu,
  :ankan => :kantsu,
}

Instance Attribute Summary

Attributes included from WithFields

#field_names

Instance Method Summary collapse

Methods included from WithFields

define_fields

Constructor Details

#initialize(fields) ⇒ Furo

Returns a new instance of Furo.



23
24
25
# File 'lib/mjai/furo.rb', line 23

def initialize(fields)
  @fields = fields
end

Instance Method Details

#inspectObject



51
52
53
# File 'lib/mjai/furo.rb', line 51

def inspect
  return "\#<%p %s>" % [self.class, to_s()]
end

#paisObject



27
28
29
# File 'lib/mjai/furo.rb', line 27

def pais
  return (self.taken ? [self.taken] : []) + self.consumed
end

#to_mentsuObject



31
32
33
34
35
36
37
# File 'lib/mjai/furo.rb', line 31

def to_mentsu()
  return Mentsu.new({
      :type => FURO_TYPE_TO_MENTSU_TYPE[self.type],
      :pais => self.pais,
      :visibility => self.type == :ankan ? :an : :min,
  })
end

#to_sObject



39
40
41
42
43
44
45
46
47
48
49
# File 'lib/mjai/furo.rb', line 39

def to_s()
  if self.type == :ankan
    return '[# %s %s #]' % self.consumed[0, 2]
  else
    return "[%s(%p)/%s]" % [
        self.taken,
        self.target && self.target.id,
        self.consumed.join(" "),
    ]
  end
end