class Puzzle15
  attr_accessor  :id
  attr_accessor :ncolumn
  attr_reader  :pic_name
  attr_accessor :nrow
  attr_accessor  :empty_tile
  attr_reader    :count_flag
  attr_reader    :enable_cancel
  attr_accessor  :variable 
  attr_accessor :max_count
  def initialize(id,ncolumn , nrow , pic_name , variable , enable_cancel, count_flag,max_count)
    @id = id
    @ncolumn = ncolumn
    @nrow = nrow
    @enable_cancel = enable_cancel
    @variable = variable
    @pic_name = pic_name
    @count_flag = count_flag
    @max_count = max_count  
  end  
  
  def size
    @ncolumn * @nrow
  end  

  def change_size(ncolumn,nrow)
    @ncolumn = ncolumn
    @nrow = nrow
  end  
  
  def max_count
    @max_count || max_count_formula
  end
  
  def max_count_formula
    a = (@ncolumn + @nrow ) - 2
    return 3 * a * (a + 1)  + 34 * (a - 3) - 60 + 42    
  end
end  