The Bot Bikeshed
-
I would put this in the bot testing category, except you have to opt-in to see that category, and this thread is intended to solicit feedback and suggestions from the end-users, not (only) bot developers and testers.
To avoid derailing the RPG thread any further, so the DM can start railroading the players (), I'm going to continue the @error_bot dice module discussion here.
In our most recent discussion, our intrepid adventurers have come up with quite a wishlist for our bot. On the table are:
- addition, subtraction (maybe multiplication, division) of lists of expressions
- dice expressions which can include modifiers including count, sides, number to keep/discard, numbers which need to be re-rolled
- expression nesting/grouping
- parameterized operators like min/max
In this vein, I've defined a set of Abstract Syntax Tree types that can represent all of the above (and more). That's the easiest part. The second easiest part is evaluating the tree, which I think I can do with the visitor pattern applied a few times in order of precedence, until hopefully at the end there's one node left with the result.
Honestly, the painful part is lexing the text to construct the tree. I'm guessing I should chop it into tokens first, then ???, then profit.
-
@error I've had good results with a structure that expects keywords and considers everything else parameters, with adjacent keywords implying a merge operation. if the merge is always a subcommand, this can be condensed into recursion.
This makes the
Command
interfacedo(final Object... parameters)
but, can't have everything.
-
I think I've got the lexer figured out. Going from stream of tokens to tree of nodes is the missing link.
-
@error make a command builder consume the stream and spawn / merge commands as needed?
ed. this is a good excuse to use a stateful lambda
-
@error said in The Bot Bikeshed:
I would put this in the bot testing category
Where it should be.
@error said in The Bot Bikeshed:
except you have to opt-in to see that category
Duh.
-
@loopback0 said in The Bot Bikeshed:
@error said in The Bot Bikeshed:
I would put this in the bot testing category
Where it should be.
@error said in The Bot Bikeshed:
except you have to opt-in to see that category
Duh.
Yes, let's ask the users about bot features they would like, in the category the users can't see.
-
@error said in The Bot Bikeshed:
Yes, let's ask the users about bot features they would like, in the category the users can't see.
I mean you could just put a post in the RPG topic (as anyone who's interested about that is in there anyway) linking to this topic in the correct category. Problem solved.
-
@loopback0 said in The Bot Bikeshed:
correct category.
Well, the question is whether this is an RPG topic or a development topic, really.
-
@Gribnit I don't actually care, I'm mostly just complaining for the sake of it.
-
@loopback0 whatever your hand and mind find to do, do it with all your heart
-
@loopback0 said in The Bot Bikeshed:
@error said in The Bot Bikeshed:
Yes, let's ask the users about bot features they would like, in the category the users can't see.
I mean you could just put a post in the RPG topic (as anyone who's interested about that is in there anyway) linking to this topic in the correct category. Problem solved.
I think this thread could be in the game category, separate from the RPG thread. The group that has access is clearly identified as being for bot developers/programmers ( to look up the actual name); I'm interested in the bot (although it looks to me like we'll be using @Mason_Wheeler's bot rather than @error_bot), but I'm not interested in joining the bot developers' group.
-
-
-
@DMBot roll d6d6
-
@Gribnit
Huh?
-
@DMBot roll d6
-
-
@DMBot roll 6d6
-
@Gribnit
21
-
@DMBot roll 6d6d6
-
@Gribnit
110
-
@loopback0 said in The Bot Bikeshed:
@Gribnit I don't actually care, I'm mostly just complaining for the sake of it.
-
-
@Gribnit
Please keep all nonsense in the Garage where it belongs
-
@DMBot roll 3d2d1
-
@Gribnit
5
-
@DMBot roll 3d1
-
@Gribnit
3
-
@DMBot roll 2d1
-
@Gribnit
2
-
@DMBot roll 1d1d3
-
@Gribnit
3
-
@DMBot roll 3d3d3
-
@Gribnit
11
-
OK, I was intending this to be the meta/ for bot testing, not the alternative bot testing thread.
-
@DMBot roll 1d2d3d4d5d6d7d8d9d10
-
@Gribnit
44989
-
@DMBot roll 10d10
-
@Gribnit
50
-
@DMBot roll 20d20d20d20d20d20d20d20d20
-
@error
-1226105452
-
@DMBot roll 10d10d10d10d10d10d10d10d10d10d10d10d10d10d10d10d10d10d10d10d10d10d10d10
-
@Gribnit
I'm sorry, Dave, I can't do that
-
@error_bot roll 10d10d10d10d10d10d10d10d10d10d10d10d10d10d10d10d10d10d10d10d10d10d10d10
-
10d10d10d10d10d10d10d10d10d10d10d10d10d10d10d10d10d10d10d10d10d10d10d10: 16810d10 (4, 1, 10, 4, 10, 4, 1, 1, 6, 3) + 1d10 (8) + 1d10 (1) + 1d10 (1) + 1d10 (9) + 1d10 (10) + 1d10 (2) + 1d10 (7) + 1d10 (5) + 1d10 (4) + 1d10 (9) + 1d10 (6) + 1d10 (10) + 1d10 (7) + 1d10 (6) + 1d10 (4) + 1d10 (2) + 1d10 (8) + 1d10 (1) + 1d10 (4) + 1d10 (8) + 1d10 (8) + 1d10 (4)
-
@DMBot roll 3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3
-
@Gribnit
Does not compute!
-
This post is deleted!
-
@Gribnit
Huh?
-
@DMBot roll 3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3