ruby勉強会の演習問題を解いてみた - rochefort's blog
これはrubyを書き始めた頃のソースですが
たまたま目にして、あまりにもアレだと思ったので、
カッとなって書き直してしまいました。
コード
class Game100Cell CELLS = (1..9).to_a.freeze def initialize setup end def ready render end def answer render(do_answer: true) end def reset setup end def set_easy_mode @x_axises = CELLS @y_axises = CELLS end private def setup @x_axises = CELLS.shuffle @y_axises = CELLS.shuffle end def render(do_answer: false) render_header render_body(do_answer) end def render_header puts " | #{@x_axises.join(' ')}" puts "--+---------------------------" end def render_body(do_answer) @y_axises.each do |y| line = "#{y} |" @x_axises.each { |x| line << ("%3d" % (x*y)) } if do_answer puts line end end end
実行結果
game = Game100Cell.new
game.ready
| 1 3 5 4 7 8 2 6 9 --+--------------------------- 3 | 8 | 5 | 1 | 2 | 9 | 4 | 7 | 6 |
game.answer
| 1 3 5 4 7 8 2 6 9 --+--------------------------- 3 | 3 9 15 12 21 24 6 18 27 8 | 8 24 40 32 56 64 16 48 72 5 | 5 15 25 20 35 40 10 30 45 1 | 1 3 5 4 7 8 2 6 9 2 | 2 6 10 8 14 16 4 12 18 9 | 9 27 45 36 63 72 18 54 81 4 | 4 12 20 16 28 32 8 24 36 7 | 7 21 35 28 49 56 14 42 63 6 | 6 18 30 24 42 48 12 36 54