から継承する Grid クラスに取り組んでいMatrix
ます:
class Grid < Matrix
def self.[](x,y=x)
if x.is_a? String
ary = x.lines.map { |l| l.strip.split('|') }.map.with_index do |col,x|
col.map.with_index { |cell,y| ::Cell.new x: x, y: y, alive: !!(cell =~ /O/i) }
end
super *ary
else
super *Array.new(y) { [::Cell.new(x: x, y: y, alive: [true,false].sample)] * x }
end
end
end
::initialize
プライベートなので上書きできないようです。上記は機能しますがMatrix
、カスタムクラスではなくクラスのインスタンスを生成するため、行き詰まっています。何かを呼び出しto_s
たり受け取ったりするときに、クラスがインスタンス化されていないことに"Matrix[[X,O],[O,O]]"
気付きました。私は何が欠けていますか?