Dice rolling programs take too long.
Some demand syntax like /roll 2d6+2
, and I think 'you should know that 2d6 is a roll without my typing /roll
, and also everything I roll has been d6’s, so obviously if I type just 3
, I mean ‘3d6’.
So I wrote one with defaults. This is my second python project, so the code isn’t pretty, but it does the job.
You write:
“”
2d6
Result: 5
d8
2d8
Result: 12
3+1
3d8+1
Result: 8
If you give it a target number (TN), all rolls will tell you whether or not you’ve reached that TN.
If you give it a difficulty, it’ll tell you how many dice have landed on that number or above.
You can input these things in any reasonable format:
tn=18
TN 12
difficulty = 4
dif 9
I made one that uses a full infix expression parsing library so we can do arbitrary math like (3d6+4d8)*100+2d6
https://idiomdrottning.org/dicebot
This is really cool! But do I have to make an XMPP account to use it?
I don’t know why so many dice rollers insist on that awkward
/roll
syntax, instead of just listening to anything of the formxDy
.Yeah, it’s for xmpp (my group, #boatmode, plays ocer xmpp) but, if you wanna snarf stuff from the source code, go ahead ♥
We’ve occasionally have had crashes when it heres us say like an URL or something and it happens to contain 30d0 in a longer string of line noise.
I handed
nd6
to my gf, and she immediately crashed it with 3d0. I’ve ended up with rather a lot of sanity checks and atest
command.Ooh - and I added a new feature a couple of days ago. Type
att = 2d6+1
, and thereafter if you typeatt
, it rolls that attack pool. Might be useful, but might be a headache for a multi-user program.Great idea, I wanna add that feature, too! Would solve a problem for us.