開発^3

Web開発、宇宙開発、ゲーム開発の3種類についてつらつらと

出遅れたけどBingoカード生成問題書いてみた

blog.jnito.com

RSS整理してたら再発見したので書いてみた。 回答締切どころか既に模範解答まで出てるけどまぁ、それはそれ。

class Bingo
  def self.generate_card
    values = (1..75).each_slice(15).map(&:shuffle).transpose.first(5)
    values[2][2] = ''

    header = %w(B I N G O)
    ([header] + values).each do |row|
      puts row.map { |col| col.to_s.rjust(2) }.join(' | ')
    end
  end
end

Bingo.generate_card

行列を転置することで割ときれいに書けた気がする。満足。