Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

LIEK MY DIE?

Name: Anonymous 2012-01-10 21:42


#!/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: Anonymous 2012-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

if (__name__ == "__main__"):
    from sys import argv
    try: print roll(sides=int(argv[1]))
    except IndexError: print roll()
    except: print "Invalid argument: " + str(argv[1])

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List