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

Pages: 1-4041-

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-06-30 5:39

Side note: DMT is a larger module called "Dungeon Master Toolkit", this die is supposed to make things like generating characters a hell of a lot easier. Things like generating stats is as simple as:

6.times { puts DMT::Die["4d6 drop 1"].roll }

Name: Anonymous 2012-06-30 6:17

What language is this shit ?

Name: Anonymous 2012-06-30 6:46

>>3

Ruby

Name: Anonymous 2012-06-30 6:56

Looks like Ruby. Ruby is garbage, it's an extreme heteroiconic language, the precise opposite of Lisp in terms of complexity. It's worse than C++.

>>1
You're abusing Object-Oriented Design principles. OOP is fucking shit, and you're just rotting your brain and wasting your life.

Watch these and save yourself:

http://vimeo.com/43380467
http://www.infoq.com/presentations/Simple-Made-Easy

Name: Anonymous 2012-06-30 7:09

self.[]

What the fuck? Use new.

Your rating: 5/10. This kinda sucks.

Name: Anonymous 2012-06-30 7:15

>>5

If Ruby is the opposite of lisp in terms of complexity, then lisp must be more complex than assembly. Ruby's fucking simple.

Name: Anonymous 2012-06-30 7:26

>>6

self.[] formats the string and translates it to new. Just calling new looks like crap and may end up in having to throw in unused arguments.

Like for example, 4d6 drop 1 would be new 4, 6, 0, 1. It says nothing to the end user what each of the values are. There's a reason smalltalk and obj-c used named arguments like

dieWithNumnber: 4, value: 6, bonus: 0, drop: 1

Name: Anonymous 2012-06-30 7:34

>>7
You are confused. It is not simple. The language is complex. Ruby might be easy for novice programmers working on small programs, but that doesn't mean it is simple. As the size of your Ruby programs grow, the complexity will overwhelm you and will not be easy to continue growing it.

Name: Anonymous 2012-06-30 7:42

>>9
Actually >>7 is half-right, assembly is simpler than Lisp. But Ruby is extremely complex.

Name: Anonymous 2012-06-30 7:51

Ruby the hetero,
on Snails he goes.

Name: Cudder !MhMRSATORI!FBeUS42x4uM+kgp 2012-06-30 7:52

>>4
I thought it was Python. Another one of those scripting languages that seem so simple to start with, but then >>9 happens.

I've never used either in any volume and wouldn't want to. Significant whitespace and lack of visible statement terminators is a huge turn-off.

Name: Anonymous 2012-06-30 7:59

>>10
I never said assembly language isn't simple, I just focused on what was wrong with his argument.

Name: Anonymous 2012-06-30 8:27

>>12
Cudder, are you Jewish?

Name: Anonymous 2012-06-30 8:29

>>5
It's worse than C++.
and slower than than BASH scripts.

Name: Anonymous 2012-06-30 9:25

>>5
Please install Flash player.

Name: Anonymous 2012-06-30 9:29

>>16
Use Gnash!!

Name: Anonymous 2012-06-30 9:30

>>17
I don't like executing foreign code on my computer, especially not flash bytecode.

Name: Anonymous 2012-06-30 10:07

DMT is released in massive amounts into your brain when you are about to Die.  It's a scientific fact, look it up.

Name: Anonymous 2012-06-30 11:03

(defun d (x &optional (n 1))
  (loop repeat n collecting
    (1+ (random x))))

(defun drop (n rolls)
  (last (sort rolls #'<)
    (- (length rolls) n)))

(defun bonus (b rolls)
  (cons b rolls))

(defun roll (rolls)
  (apply #'+ rolls))

; example:
(roll (bonus 3 (drop 2 (d 6 2))))

Name: Anonymous 2012-06-30 15:07

>>20
period

Name: Anonymous 2012-06-30 15:18

dubs

Name: Anonymous 2012-06-30 20:06

print(5 ? 4D6-2 DROP 1);
MODE DIE = STRUCT(INT count, sides, dropped, multiplier, additive);
PRIO D = 6, DROP = 6, KEEP = 6, ? = 5;
OP D = (INT count, sides)DIE: (count, sides, 0, 1, 0);
OP D = (INT sides)DIE: (1, sides, 0, 1, 0);
OP DROP = (DIE d, INT n)DIE: (count OF d, sides OF d, n, multiplier OF d, additive OF d);
OP KEEP = (DIE d, INT n)DIE: (count OF d, sides OF d, count OF d - n, multiplier OF d, additive OF d);
OP + = (DIE d, INT n)DIE: (count OF d, sides OF d, dropped OF d, multiplier OF d, additive OF d + n);
OP - = (DIE d, INT n)DIE: (count OF d, sides OF d, dropped OF d, multiplier OF d, additive OF d - n);
OP * = (DIE d, INT n)DIE: (count OF d, sides OF d, dropped OF d, multiplier OF d * n, additive OF d);
OP ? = (INT lim)INT: ENTIER(random * lim) + 1;
OP ? = (DIE d)INT: roll(d);
OP ? = (INT n, DIE d)[]INT: ([n]INT r; FOR i TO n DO r[i] := roll(d) OD; r);
PROC roll = (DIE d)INT:
    IF count OF d <= 0 OR dropped OF d >= count OF d THEN
        0
    ELIF dropped OF d > 0 THEN
        [sides OF d]INT r, INT min := 1, n := 0;
        FOR i TO UPB r DO r[i] := 0 OD;
        TO count OF d DO r[?sides OF d] +:= 1 OD;
        TO dropped OF d DO
            WHILE r[min] = 0 DO min +:= 1 OD;
            r[min] -:= 1
        OD;
        FOR i TO UPB r DO n +:= i * r[i] OD;
        n
    ELSE
        INT n := 0;
        TO count OF d DO n +:= ?sides OF d OD;
        n
    FI * multiplier OF d + additive OF d;
~

Name: Anonymous 2012-06-30 20:13

OH GOD!!!

COMMUNICATIONS TERMINATED

Name: Anonymous 2012-06-30 23:44

>>23

What the fuck am I reading?

Name: FrozenVoid !!mJCwdV5J0Xy2A21 2012-07-01 0:11

>>25
Algol source

Name: Anonymous 2012-07-01 1:11

>>26

This is the 2000s, why are we writing in Algol again?

Name: Anonymous 2012-07-01 1:49

>>27
Using C
2012
ISHYGDDT

Name: Anonymous 2012-07-01 3:07

>>28

I use C++, not C.

Name: Anonymous 2012-07-01 6:02

>>28
>implying C isn't a great language that's still evolving
>implying the lack of OOP is anything but a trivial limit to its application

Name: Anonymous 2012-07-01 9:20

>>30`
>implying get the fuck back to /g/

Name: Anonymous 2012-07-01 12:03

>>30
>lack of OOP
>a [...] limit
Seriously. OOP is shit.

Name: Anonymous 2012-07-01 14:33


#include <vector>
#include <algorithm>
#include <cstdlib>

namespace dmt
{
    int die(int n, int v, int bonus = 0, int drop = 0)
    {
        int damage = bonus;
        std::vector<int> d(n);
        std::for_each(d.begin(), d.end(), [v](int& p) { p = rand() % v + 1; });
        std::sort(d.begin(), d.end(), std::greater<int>());
        std::for_each(d.begin(), d.end() - drop, [&damage](int p) { damage += p; });
        return damage;
    }
}

Name: Anonymous 2012-07-01 14:41

>>5
OOP is only shit when retards like the OP apply it to every-fucking-thing possible.

Name: Anonymous 2012-07-01 18:10

>>33

That's nice, but there's a fucking reason I made my die a class and not a function. It's designed to be used multiple times as a value

Longsword = DMT::Weapon.new "Longsword", DMT::Die["1d8"] # Other arguments follow
Longsword.damage # Calls @wpower.roll every time


You can't pass a function with the arguments already defined, as an argument to a constructor. You can however, pass an object. The reasoning for self.[] is to make the arguments more readable. Passing the arguments as a string allows for use of the constructor without having to look back at the original source.

Name: Anonymous 2012-07-01 18:25

>>35
How about:

Longsword = DMT::Weapon.new "Longsword", "1d8"

And defining DMT::Weapon#damage to call a  die function with that argument?

Name: Anonymous 2012-07-01 18:26

Stringly typed Ruby sucks.

Name: Anonymous 2012-07-01 18:34

>>37
It's perfectly acceptable here. Think of it as a mini-DSL for dice rolls.

Name: Anonymous 2012-07-01 18:55

>>35
You can't pass a function with the arguments already defined, as an argument to a constructor
This seems like an odd thing to leave out of a language. Partial application of function arguments is not something one can live without in a reasonably high level language.
Hell, with a good CPU architecture, you might argue that ASM can support partially applied functions

Name: Anonymous 2012-07-01 20:14

>>35
You can't pass a function with the arguments already defined
Sure you can



#include <vector>
#include <algorithm>
#include <functional>
#include <string>
#include <cstdlib>
#include <ctime>

namespace dmt
{
    int die(int n, int v, int bonus = 0, int drop = 0)
    {
        int damage = bonus;
        std::vector<int> d(n);
        std::for_each(d.begin(), d.end(), [v](int& p) { p = rand() % v + 1; });
        std::sort(d.begin(), d.end(), std::greater<int>());
        std::for_each(d.begin(), d.end() - drop, [&damage](int p) { damage += p; });
        return damage;
    }
   
    class weapon
    {
    public:
        weapon(const std::string& name_, std::function<int()> damage_lambda_)
            : name(name_), damage_lambda(damage_lambda_)
        {
        }

        int damage()
        {
            return damage_lambda();
        }

    private:
        std::string name;
        std::function<int()> damage_lambda;
    };
}



int main()
{
    srand(time(NULL));

    dmt::weapon longsword("longsword", []() -> int { return dmt::die(1, 8); });
    printf("%d", longsword.damage());

    return 0;
}

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

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