ビンゴの結果を整形表示
Posted feedbacks - Ruby
enumeratorで
1 2 3 4 5 6 7 8 9 10 11 12 13 | def bingo(num)
(1..num).to_a.sort_by{ rand }
end
require 'enumerator'
bingo(35).enum_slice(10).each_with_index{ |e,index|
num=index * 10 + 1
tmpl=(["%02s"] * e.size).join(' ')
puts tmpl % (num .. num + e.size).to_a
puts tmpl % e
puts ""
}
|
特にありません.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | N = 22
def put_bingo(n, col)
d = n.to_s.size + 1
index = Array.new(n){|i| i+1}
bingo = Array.new(n){|i| index.delete_at(rand(n-i).modulo(n-i))}.
map{|x| sprintf("% #{d}d", x)} #bingoの結果を生成
(n.div(col) + 1).times{|i|
size = bingo.size
index = Array.new(size >= col ? col : size){|j| sprintf("% #{d}d", i*10+j+1)}.join
result = bingo.slice!(0..(size >= col ? 9 : -1)).join
puts "#{index}\n#{result}\n\n" if result.size > 0
}
end
put_bingo(N, 10) #引数はbingoの大きさと出力時の列数の2つ
|


raynstard
#3403()
Rating1/1=1.00
「重複無し乱数」で作ったbingo関数の結果を下のように「何番目の乱数か」とセットにして10個ずつ折り返して表示するコードを書いてください。
[ reply ]