Newer
Older
Ruby / team-kuji.rb
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-

def change_item(teams)
  while true
    print "\n現在抽選する予定の中身は"
    teams.each{|t|
      printf("、%s",t) }
    print "です。\n"
    print "この内容で抽選してよろしいですか?\n"
    print "よろしくない場合は、追加または除外するものを入力してください[y or item] :"
    ans = gets.chomp
    return teams if ans == "y"
    tyoufuku = teams.intersection([ans]) 
    teams    = teams - tyoufuku
    if tyoufuku == []
      teams << ans
    end
  end
end

while true
  print "抽選結果を振り分ける人の人数を入れてください:"
  member_length = gets.to_i
  if member_length >= 2
    break
  else
    puts"2以上の整数で入れてください。"
  end
end

teams = %w[
           松 梅 桜 藤 菖蒲 牡丹 萩 芒 菊 紅葉
          ]
teams = change_item(teams).shuffle #圧倒的そうじゃない感

result = Array.new(member_length){|v|["member#{v+1}",[]]}
#image: [member1,[item1,item2,...],
#        member2,[item...        ],
#            ...
#       ]

#シャッフル後の 番号をかいたカードを振り分けるイメージ
teams.length.times do |t|
  result[t % member_length][1] << teams.pop
end

puts "\n抽選結果:"
result.to_h.each do|member,item|
  printf("  %s => %s\n", member, item)
end