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

module DICE

  def dice_roll(data1,data2="なし")
    if not data2 == "なし"
      
      count = data1
      sided = data2
      if count.to_i == 0 || sided.to_i == 0
        p "0または数値以外が含まれています"
      end

    else
      dice_data=data1.split("D")
      if not dice_data.length == 2
        p "回数D面数で入力してください"
        return
      end
      2.times do |n|
        dice_data[n] = dice_data[n].to_i
      end
      count = dice_data[0]
      sided = dice_data[1]
    end
    spots = 0
    count.times do 
      spots += rand(1..sided)
    end
    return spots
  end

  def judgment(success,denominator = nil,over="OK")
    
    if denominator==nil
    denominator = if(success.to_s.include?("."))
                    10**success.to_s.length-1
                  else
                    10**success.to_s.length
                  end
    end
    
    p denominator

    result = rand(1..denominator)
    p result
    if success.to_s.delete(".").to_i > denominator && over!="OK"
      puts "分子が分母を上回っています"
    end
    return result <= success.to_s.delete(".").to_i
    
  end

end