GDLJS Monthly Challende #2 - Cards Against Slack
The task for this month is to create a simple Hubot script to play Cards Against Humanity on Slack. Yay productivity!
The rules for the challenge will be the minimum set of rules of the game (full rules), only using the house rule of public voting (God is Dead rule)
- There can be only one active game at a time (per channel or per slack)
- There is a command that creates a game, the user that creates it is the Card Czar
- Users can join the lobby, until the Czar decides to start the game
- Hubot will deal a set of white cards to each player in the game. They will be shown only to him (probably by PM)
- The Czar will start the round with a command. It will show the text of a Black Card, and the number of White Cards to pick
- Each user will select 1 or more cards though a command. (An additional timer can be put so the rounds don't last indefinitely).
- When all users have selected their cards (or passed), hubot will display all the answers in a shuffled order, and users will vote for them.
- The answer with more votes wins the round, and adds magical awesome internet points to his score.
- The game ends when all white cards have been used
Some extra features or rules that can be added
- Allow for everyone to vote, no matter they are not playing
- Keep a global score per user
- Implement any of the house rules proposed by the official instructions
Hints and resources
- There are many different sources where to find the set of cards in a nice parseable format.
- Hubot documentation. (Apparently it is possible to test hubot locally, but ¯\(ツ)/¯)
NOTE: The original idea was to make a script for the community hubot on Slack. If you don't feel like doing a card game, there are a million other things you can do a hubot script for.