#!/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