Skip to content

Instantly share code, notes, and snippets.

@Resisty
Created March 12, 2015 22:16
Show Gist options
  • Save Resisty/8e92c69df83a09a5789e to your computer and use it in GitHub Desktop.
Save Resisty/8e92c69df83a09a5789e to your computer and use it in GitHub Desktop.
def dice_roll(dicestr)
sets = dicestr.scan(/[0-9]+d[0-9]+/)
modifier = dicestr.scan(/for \w+ modifier ([+-])(\d+)/)
if !modifier.empty?
puts "Modifier is NOT empty\n\n"
if modifier[0][0] == '-'
mod = "#{modifier[0][0]}#{modifier[0][1]}".to_i
else
mod = "#{modifier[0][1]}".to_i
end
else
puts "Modifier is EMPTY\n\n"
mod = 0
end
puts "The modifier is #{mod}"
dice = []
if sets.empty?
num = dicestr.to_i
(1..num).each do |n|
dice.push(rand(6) + 1 + mod)
end
return dice
else
sets.each do |dset|
numdice, sizedie = dset.split('d')
dsetstr = "d#{sizedie}s: "
dsetstr += (1..numdice.to_i).collect{|x| rand(sizedie.to_i) + 1 + mod}.join(', ')
dice.push(dsetstr)
end
return dice
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment