#!/usr/bin/ruby
module Game
class Die
class << self
def roll num, val, drop = 0
sto = Array.new num
0.upto(num - 1){ |a| sto[a] = rand(1 .. val) }
sum = 0
unless drop > 0
sto.each { |b| sum += b }
else
sto.sort!
0.upto(num - 1 - drop) { |b| sum += b }
end
sum
end
end
end
end
Name:
Anonymous2012-01-10 22:28
This is retarded. Why would you use OO for this shit. I can do better in two minutes. def die(sides=6):
from random import randrange
if (sides == 1):
return 1
elif (sides <= 0):
raise ValueError('Invalid number of sides: ' + str(sides))
else:
return (randrange(sides-1)+1)
def roll(sides=6, dice=1):
if (dice <= 0):
raise ValueError('Invalid number of dice: ' + str(dice))
elif (dice == 1):
return die(sides)
else:
result = []
for n in range(dice): result.append(die(sides))
return result