Making Bots with Tracery and CBDQ

Twitter Bot Workshop

Bot #1: German Word Bot
Inspired by Allison’s tangent on the phrase “basketball net” (the tangent being, there’s no rule in the English language as to why this is the conventional phrase. It could just as easily be “basket ballnet” or “basket ball net” or “basketballnet”). She mentioned German noun phrases, which I adore. So I made a quick bot that spat out English definitions of a few phrases.


Bot #2: Fun with “Alas”
This time I was inspired this tumblr floating around Facebook:

The concept is to take every instance of the word “Alas” in Shakespeare’s writings, but replace it with “Aw, shit”. I decided to take this a step further and replace “Alas” with “fuck”, “shit”, “ack”, and “Alice” (Because I love the idea that everybody’s just pissed off at some poor lady named “Alice”). I didn’t limit my quotations to Shakespeare because I wanted to have more variety in my Bot’s output. I also learned the syntax for getting the bot to remember the first expletive, and cap off the whole quotation with “Fucking [same expletive”].

Bot # 3: Bots Against Humanity
Though pretty simple, my favorite Bot is a critique against the game “Cards Against Humanity”. I know this is a much beloved game (and I used to enjoy playing it myself), but after reading a few compelling arguments against CAH (like this one), I realized that the game is actually awful.

The inspiration for this bot comes from some friends who use the “Rando Rule” whenever they play CAH. On every turn they add a random extra white card from the deck (“Rando’s deck”), and give “Rando” the black card if the random card gets chosen. Guess what? Rando has won several times, and usually finishes in the top half. This is Rando, if he were a Twitter Bot:

Help for this Bot came from JSON Against Humanity. Here’s my source code:


Leave a Reply

Your email address will not be published. Required fields are marked *