ビンゴカードプログラム作成してみた(Ruby)
class Number def dimentional_number_array array_of_each_numbers = [] array_of_each_numbers.push(select_five_numbers_in_B, select_five_numbers_in_I, select_five_numbers_in_N, select_five_numbers_in_G, select_five_numbers_in_O) array_of_each_numbers.transpose end private def select_five_numbers_in_B (1..15).to_a.sample(5) end def select_five_numbers_in_I (16..30).to_a.sample(5) end def select_five_numbers_in_N (31..45).to_a.sample(4).insert(2, ' ') end def select_five_numbers_in_G (46..60).to_a.sample(5) end def select_five_numbers_in_O (61..75).to_a.sample(5) end end class Bingo def initialize @dimentional_number_array = Number.new.dimentional_number_array end def create_card enumerate_in_a_low(bingo_words) @dimentional_number_array.each do |number_array| enumerate_in_a_low(number_array) end end private def bingo_words 'BINGO'.split(//) end def enumerate_in_a_low(array) print ' ' array.each do |e| print e.to_s.rjust(2) if e == array[4] puts else print ' | ' end end end end Bingo.new.create_card
- コンソール表示
~ % ruby bingo.rb B | I | N | G | O 13 | 16 | 45 | 46 | 71 8 | 19 | 44 | 60 | 68 6 | 24 | | 56 | 61 15 | 22 | 34 | 49 | 63 2 | 29 | 33 | 55 | 72 ~ % ruby bingo.rb B | I | N | G | O 5 | 22 | 32 | 46 | 62 4 | 24 | 44 | 52 | 75 2 | 26 | | 50 | 73 15 | 17 | 35 | 51 | 69 12 | 20 | 40 | 55 | 65
オブジェクト指向実践ガイドを読んでいて、コードを書きたくなったので書いてみました。
実際に書くと難しいです。
悩んだ点は