# 麻雀牌の山を作る require 'bundler' Bundler.require piType = [ (1..9).map { |i| "man#{i}" }, # 萬子 (1..9).map { |i| "pin#{i}" }, # 筒子 (1..9).map { |i| "sou#{i}" }, # 索子 (1..4).map { |i| "ji#{i}" }, # 東南西北 (5..7).map { |i| "ji#{i}" } # 發白中 ].flatten piMnt = [] 4.times do |i| piMnt += piType.dup end piMnt.shuffle! hand = [] 14.times do |i| hand << piMnt[i] end # 数牌と字牌をそれぞれ取り出してソートする numberTiles = hand.select { |item| item.match?(/\A(man|pin|sou)/) }.sort honorTiles = hand.select { |item| item.match?(/\Aji/) }.sort # 数牌と字牌を結合し、並び順を整えた手牌を作る sortedHand = numberTiles + honorTiles imgList = sortedHand.map do |item| "pai-images/#{item}-66-90-l.png" end image = Magick::ImageList.new(*imgList) image = image.append(false) t = Time.now image.write("result#{t.strftime("%Y%m%d_%H_%M_%S")}.png")