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

Rate my Die class

Name: Anonymous 2012-06-30 5:37

module DMT

    # Custom die class to take into account
    # Multiple dice, bonuses added to dice and dropped dice
    class Die

        # Standard initializer
        def self.[] str
            raise TypeError, "Argument must be a String" unless str.is_a? String
            raise ArgumentError, "Error: Malformed Argument\
                \nUsage:\
                \n\t<Number>d<Die>\
                \n\t<Number>d<Die><+ or -><Bonus>\
                \n\t<Number>d<Die><+ or -><Bonus> drop <NumDropped>\
                \nExamples:\
                \n\tDMT::Die[\"3d6\"]\
                \n\tDMT::Die[\"3d6+4\"], DMT::Die[\"3d6-2\"]\
                \n\tDMT::Die[\"4d6 drop 1\"], DMT::Die[\"4d6-2 drop 1\"]\
                \n" unless str.match /\A(\d+d\d+\ ?([\+\-]\ ?\d+)?(\ drop\ \d+)?)\z/
            args = (str.split /\D/).reject{|s| s.empty?}.map{|i| i.to_i}
            if str.include? "drop" then
                if str.include? "-" then
                    new args[0], args[1], -args[2], args[3]
                else
                    (args.size.eql? 3) ? (new args[0], args[1], 0, args[2]) : (new *args)
                end
            else
                if str.include? "-" then
                    new args[0], args[1], -args[2]
                else
                    new *args
                end
            end
        end

        # Die roller, produces a random number
        def roll
            damage = @bonus
            dies = []
            @number.times { dies.push (rand @value) + 1 }
            (dies.sort.last dies.size - @drop).each { |d| damage += d }
            damage
        end

        def inspect
            "<Die: #{@number}d#{@value}" +
                (@bonus.zero?? "" : @bonus < 0 ? @bonus.to_s : "+#{@bonus}") +
                (@drop.zero?? "" : " Drop #{@drop}") + ">"
        end
    protected
        def initialize num, val, bonus = 0, drop = 0
            @number = num
            @value = val
            @bonus = bonus
            @drop = drop
        end
    end
end

Name: Anonymous 2012-07-02 6:36

>>40
#

Name: Anonymous 2012-07-02 8:33

module Main where

import System.Random
import Data.List

data Die = Die { number :: Integer
               , die :: Integer
               , bonus :: Integer
               , drop :: Integer
               , rnd :: StdGen
               }

instance Show Die where
    show (Die n d b dr _) = show n ++ ('d':show d) ++
                            if b == 0 then "" else ('+':show b) ++
                            if dr == 0 then "" else (" drop " ++ show dr)

roll :: Die -> (Integer, Die)
roll (Die n d b dr g) = (b + sum (sort rnds), Die n d b dr ng)
                      where (rnds, ng) = rndlist g (n - dr)
                            rndlist g 0 = ([], g)
                            rndlist g i = (a:a', g'')
                                        where (a, g') = randomR (1, d) g
                                              (a', g'') = rndlist g' (i - 1)

rolls :: Die -> [Integer]
rolls d = n : rolls nd
        where (n, nd) = roll d

Stop using your shitty unintelligible languages of yesterday.

Name: Anonymous 2012-07-02 9:52

>>40
Also possible

dmt::weapon longsword("longsword", std::bind(dmt::die, 1, 8, 0, 0));



>>42
haskell
intelligible

Name: Anonymous 2012-07-02 18:36

搸饲䝕靦饢瘉镆楗ሸ⡕恇晲֙ࡘͤ剑څ㔡閕愥㘳␨䢆焀∉㝱顂ࡴ阑䝢蘲⁵靓㌰␕焧ቁၶ襖䠧䐡㐠炗茔蠶匲焳Ĩ礱垅䄱蝑桥芕戢⤕匷祐蜨圴䥨㑔ࡵ̂ᢉ⥔ᅦ䍕卤䂇ፉ倠刦瞑㞓肉ւ犉鄉芅㉶睙顰ᜈܒ鍹㔓㙂㥡ց儠䘲䕤䂕䍑䉩ᒁ㖙ĸ啘♐႕ㅶ怅⡘ᑥ析〶⦑㌖癉᎐Չ醈䝱琲栢院坠昷䑣☱⊑獱栘ᙨ咃ኗ䂃坑璅ኔ鉩树楐荇⠨鐉⥳瑕♱ቑ䖓䤰Łᡐ硸艥ݲ撆疀१ঐ䄄☠葂挡ᒈ❢ঐ列ℇ☀顑畅ၳ耶堇䀀颀⡵捑睉䆒ᎈ᥀ख䉥⦂ᝤ犖ᔈ墈敹煔瑄卷榔⁸ⅈူ᥸㌐₇㐨唘静㌗梐䖁呈ف艘杈ᎈ捘慣त獐椆甉㜱ₐ䥶襖酂晢唦耶䀢䐲鐥8㥲栉皂⥔⠒㑂䈘⍢怴䉅䄰榑Ѧቷ匸ᝳ䦅⢂䂓极㄂逗眣啣G䍘䊂睖␰⅁䌲㠉皈ႀ⁕銅茡ࠂᑧ暓䁤瘆ᕦ䙂㑤ㅂᙁ吩攃頄框ࢅ她ᠳ砃癄䆈Ք慆፧ॐ襩挰暕Ȃ脐冗❳椉钇䖅癇㍴猷典鈖

Name: Anonymous 2012-07-02 18:37

㒑ᡑ㆘爃蕵錆㖕呰ڑ䂉楆ᅄ恉ᕹ脘ȇ䜳萸聓㍹瘐䕠颗ȸ㚖㡨ݹ䥔㦈∄艇ᐖᅅ鈃Д斂恒蔲ᦀ撅䜕墅硧⍐楈⢂䡕楹㉅ 萗萕㎘晴䝀虵餀炁愩鄓䆀圲G咕吒呁䐢䠙ᑩ霹း祔覔爅畖扐或⅕慤㘶ħ࢒⡰套ᑂ㕢ᘹ∀Ԉ㡄㒀㡷䠄㞉ŃЉᢄ䍖萃ऑ搁❸戇᠀Д䉤憉䅆㈄В錹ᦒ癗椨⅓ⅲ ᔇ㘸銆ᎁ┹ᑀ碈搡✃瘡疑ㅦ䘕㌡䍥ᅶС敤㌩聂⤁␶陣焀䄱ᕹ衃呸䅖ኒᑲ喙䔓र⡔鑨④⊒霸⁦ℓ蠧࠵鑠腹焰嘁褢₂ᙩ獷荐题垀葩㙄礒葰❣և芉䁡♖熑顙㝕㒀蠢煕〢噄㌖倖呗刴蘂መ杄⌉鄸㌨蕃ፅ牰䊗䐈畇㔙㞀饹脧撈ࡧ脹抙࢈⑐钉卩㥙Ƈ瀀瘥㊖薇䑤獁鍅暃⤩㆐ኇ㑆‡ᔴ數蠘剘覃䂄⠅䎐㉷ᘇ♴㄰ƙ礥܇䎖ↄ倷璃餶慗㠉犓ও蝩ㅔ晅㑑艧䈩蕕玖荩♒㍩瘅䅔到㕲ↁ捱ᕈ塰ࢅ虅眥镐᜵⍄朗塳ᑙԄ摧嚗☩頀䖒㐴兆䉃螙镖托ɗ剣坴椔蚄

Name: Anonymous 2012-07-02 18:38

䎙㐩癴᠃蘦䥥枕顢ᑔ䡤吐领癉䠁ဵ褖䅅肓㙳霗ࡄ䑗扉㠧眶鐔搀隂蝅倶奒㌅夗㤩Д夈ɂ褓析䉖坄匂艕⠣朳⁓愥ᅩ悀椉灒撇㝈瀷ձ䤘㕕ኑ㌉鄇覓ㅢ陴桠╠遰除㈀蠣㚒䁒ցᔉᤖ㑠枇憘䍡典偳堰Β蝉梇砇ᕤ≘顱鈴衱㌆♙錒Ē⁣䌈抗耦襐猲䔨Ԇ奀ᥧ陈瘕猂閖䁅犓艠Ҙ鉔化所ℴ锒ጙ劂℥炑蔄爹䜕䅕陂㌨ᄕ獹襔⡠恐 㤩ᜥ㊄元碑ࡩ㍑䔐➙桗⎔愶㒙鍉➑摓⁠咘蚂饦ܦ倓⍁覅Ȇؠũ隘梆ࡕ煔䍣灓㜴䡠⦓䞅ᕉ䔒䊆ㅩ㘐祥面鑠㕷⥣❈⡶⠴奰舨悕頷璆锗䁴䔳䊑餒ٓ␐腈⊔酇䍦䚕刀悈᥄閂ᥳ颅䝷⤦ذ琔䔳覇⎅琂Ͷ䆀慗艧霉㌇䢗Ń瘂䀢砗鄲栂蜖䔐杳㡸熆吃ሲᜐ䉃晖⚐搓∓蠠ℕ⑦ࠗ鐱₄ā襡捲褂鍸葄ᄴ脦儥兘ぶࠠ搲荁酙邘㘇嘱ޔ㌨᠁ᑉ錗锁Ő䄇Ը産ᦑ灸㐐厇儳ڃᄡ⑨ဃ䐦᜴䙓⌑圤㝰②戃薔㝥鑢፸锨霱礰充≓

Name: Anonymous 2012-07-02 18:49

⠸祔陒㒑ᐙू♁怖ᙆ䜕摶㠨鞒钉ㄕ猢䢀眥剑睙ᤐ偸墙錵ሡဇᘹ撃ė㍳薗㠄㍙ˆ霅皗儳鄷㥆͠˜Ɨ楁⤱ℳ領⑄3⁕ㅇ琄❡䡦䝐ঈ䝅蘴∳坘栃㝣䅀ሂへ牵倕慢锉❤㙕Ɉ猥㝸ㅡ锐⍨ᅔ㙉蜕䉁摆畡䙕ㄡ蘡䁙煹砢ⅲ䜸眙剙杧̧ᄀ頨p虸剰㜘Ζ碘折؆ɓ酃ࡘ⑵Ѓ⍙癤䈕着⤶耄ᘉ┑摃顈阖厔ᜑऩ㍙蝖脱⤇ᚓ⥰Ŧ鈥ᤲᘕ昢ʄ霃掔㙩餴䎗䙩↉䐑椀遣摃㠨督⠹茇ቘ墖锈聩酁ĵ皕ᦀ❔梓Ↄ⠅衷聳桢ŕ☂螕偀Ɨ䕘≣刄䥨邔㞒堰杈᠑㕁褂茖䐉Ŵᠢ茩葇ᄠ蕤晄癹↘ޒ聰䤦㆙頲鑁҄℡畓抂䙗㄃攙䜈ᄈ镳鐓墖㥢ऒ閒ܳ㐑ࡳݦ䘗塙䈠戰灴褁ㄓ䅡❐㥂❑愧ᜅ奒䑦ᎂᤨ鈀恕疀蝰塣⤩冁㈔厕ɖd腉Ȗᆈ桁皑昆杆搈㚙8唶舉⤔⁉偈㚆⤆ぢ㠓傁ဂ⊙㠡鑃鐷䅦奐偔敃蝳䂑㍷ဣ材䆓执褖ᙷᔀᙹ霢嚁ဂ錶理璈灳ʒ卖墉疇䘉昷噁癅

Name: Anonymous 2012-07-02 18:59

ͲЇ݄全ថ衅䀂敃露蝗䅰ဃࡓ嚀ታ␙ँِٹ祙椰牲᠑ង᠕禅瀆畔ȳኙᒀ鉇㤁☳卶霂᝵㉷s頤顧爳坧䔦ᐹ颇℆挃᥄熔折ᐈ蝃䁣怰晦㢈㜃須蠸衵ႂ䒖椙ݰٵعㅶ熙馗塵ᢆ冀吰須㠧蜇∳ℹ敓摃ᆉ灩嘩茐䢅㡢虉栃陀㞆㎓䕅䅰靠扷塴嘘∥䑅頃♖➃唆䚇䒘頥Љ䁧ↁᠴ♑褄䔢堨肀瀕爁Ȧ䒖䞖禒獀楈褉9鍘➀楒䥶醐㕲ᠨ䥠㜰᥉甹ᐙ㔷䡨堡䡢Ⅵᙡ晅瘀䡴琳Ըܑ焘镶㄄䔓怲厖昘ᤇ畑耸䔆噐単摐✥⚗䡁儷᝸⦒戳ᆘ陵̢ᝠٖ②␶㎆鉁皅⤅儈‐震扇㌇椕Ȇᠱ枃撄䕔₀憔ㅦ衦钀阒鑴ĸ琙颖呤顸փ祰䙥᝙朐焰̀器 椈ᔣន℧瞀᠉⌹ࡀ䉉爰堨㥦茰霗卅⍔㦁ᄰ搃备♹䄐愃げ⑂撂㥃陙䘦悀䠂斁饗敦螗Է␂〇ᜇ葲锲瘡رՆ㑣劗∴䅷⢅㦆ᑠ銗舩袒砃㑄ࠃ睉␸蝸扠㈓ॐ癓Ɖ墑ᝑ⁹⠤关ᤣ爨匶畒ゖ瘣嘓㑉䉶㦑―匡❩ࠆ⥅Ե

Name: Anonymous 2012-07-02 21:39

>>5
lol

Do people actually listen to Zed Shaw?

Name: Anonymous 2012-07-02 21:50

>>49
PWOGWAMMIN MUVA FARGER

SENSEI, YOU TEACH ME PWOGWAMMIN MUVA FARGER?

PWOGWAMMIN MUVA FARGER N MARTIAL ARTZ R SAME COZ I LIKE BOTH OF DEM. PWOGWAMMIN MUVA FARGER.

Name: Anonymous 2012-07-03 4:29

Awesome code. Great size. Looks concise. Efficient. Elegant. Keep us all posted on your continued progress with any new code factoring or compiler optimization. Show us what you got man. Wanna see how freakin' expressive, efficient, concise and elegant you can get. Thanks for the motivation.

Name: Anonymous 2012-07-03 5:30

>>42
Did you miss that a much smaller list version was posted?
Why embarrass yourself like that?
>>20

Name: Anonymous 2012-07-03 18:13

>>51
/fit/~ desu

How's your squats and oats going brah?

Name: Anonymous 2012-07-03 20:37

#lang racket

(define (make-die spec)
  (match spec
    ((regexp "([1-9]+)d([1-9]+)((\\+|-)[1-9])?( *drop *([1-9]+))" (list _ num val bonus _ _ ndrop))
     (let ([num    (if (eq? #f num)   0 (string->number num))]
           [val    (if (eq? #f val)   0 (string->number val))]
           [bonus  (if (eq? #f bonus) 0 (string->number bonus))]
           [ndrop  (if (eq? #f ndrop) 0 (string->number ndrop))]
           [damage 0])
       (lambda (a)
         (case a
           ((roll)
            (set! damage (+ bonus (apply + (drop (sort (for/list ([i (in-range 0 num)]) (+ (random 10) 1)) <) ndrop))))
            damage )
           ((inspect)
            (format "<Die: ~ad~a~a~a>" num val
                    (if (> bonus -1) (format "+~a" bonus) (number->string bonus))
                    (if (> ndrop 0) (format " Drop ~a" ndrop) "")))
           ((last) damage)))))))

Name: Anonymous 2012-07-03 21:21

javascript would own any code posted here thus far

Name: Anonymous 2012-07-03 21:22

>>1-55
i wish you all would Die

Name: bampu pantsu 2012-07-06 4:51

bampu pantsu

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