Projects

Here are some projects I have worked on.

Crossfire

Here is Crossfire, my latest game project.

The original Crossfire is an 8-bit game published in the early 80s. It's one of the first memories I have of plucking away at our old Apple ][. This game is my attempt to recreate it, making a couple things easier but also hopefully a few things more interesting as well.

I used Flixel to build the game. It's a great library.

Although the game plays well enough, I'm not entirely happy with it. The balance could use some work, and it would be interesting to have some other modes.

Anyway, here's the game.

You are missing some Flash content that should appear here! Perhaps your browser cannot display it, or maybe it did not initialize correctly.

Four Pawns, a Quick/Basic /Easy Chess Variant

I've been toying with the concept of very simple, distilled strategy games that don't take long to play, but involve some brainwork on some level. I was already thinking about putting a game of some sort on a very small (maybe 5x5) board, and then I stumbled across a description of Quadpawn, an old C-64 game. Each side has four pawns on a 4x4 board, and the objective is to either get a piece to the other side of the board, or prevent the other player from being able to move. The game concept is also described on algorithmist.com.

Anyway, here's a version in Flash. The source code is available as well. Update: now the link for the code actually works.

You are missing some Flash content that should appear here! Perhaps your browser cannot display it, or maybe it did not initialize correctly.

The game is simple, and once you get the hang of it, it's not hard to win most of the time, but it stayed enjoyable the whole time I was playing it.

The sourcecode is pure AS3, so you don't need Flash to compile it. Among other things, it has a pretty clean implementation of the minimax algorithm, something that is reasonably hard to come across.

Montague - Paper or Plastic?

Hey Montague, wondering what goes out on the curb this week? I can only ever find out by looking at what my neighbors have out. At some point I added the info to my calendar but that gets tiresome fast enough. So, I decided to write a quickie website to do the work for me. By the time I was done, I found the official schedule, but it was utterly buried, and the website is easy to refer to, and should work next year and any year after as well.
For week of August 30, 2010 - September 05, 2010 - Paper!
For week of September 06, 2010 - September 12, 2010 - Plastic!
See the source code or official schedule as well.

Pitch

UPDATE: Pitch is now open-source software. You can get the code at github. You can download a zipfile with the PRC right here, and then use one of the following license codes to register it:

L4H296JV7
KPO2400Q3
R7XH4W347
D01MO8I42
444BKN6C6
Q13SOJ445
P77S2F2N1
X2G4M4K25
4RW2D3L08
NHO7644K3
CIM1674B1

 

Rules of Pitch


The main screen

 

 

 


Starting a new game

 

 

 

Players and Cards

The deck is a standard fifty-two cards, aces are high. There are four players, two in each team, with partners facing each other. Each player receives six cards, dealt three at a time.

Bidding


The bidding process.

There is one round of bidding. The possible bids are two, three, four and smudge (smudge is really a bid of five). Each player in turn either passes or bids higher than the previous bid if any, except for the dealer, who, having last bid, may "steal the bid" by bidding the same as the highest bid. The winning bidder has the right to name trump and lead the first trick.

If the first three players pass, the dealer must bid at least the minimum bid of two. This is called a "force bid".

The bids represent how many of the following four items will be won when the tricks of the game are played out:


Choosing your bid.

 

 

Smudge

The bid of smudge requires all six tricks to be won by the declaring side, in addition to the four points listed above. (Sometimes a team can win all the tricks, but if the jack of trumps was not dealt, that is not sufficient to win a smudge bid.)

Play

 


The game in action

The pitcher leads a card to the first trick, and the suit of this card becomes the trump suit. The winner of each trick leads the next, and may lead any card. A player who has a card of the suit led must either follow suit or trump. Players may play trump on any trick, even if they can follow suit. A player who has no cards of the suit led can play anything - either a trump or a card of another suit. Each trick is won by the highest trump card played, or if there are no trumps in it then by the highest card in the suit led.


Viewing played cards

Viewing winnings

Scoring


Game results

If you made a bid and got the points required, you get the total number of points you make (in other words, if you bid two and make four, your team scores four points). To score five points (smudge), you need to actually bid smudge - if you bid four, and actually win all the tricks, including the jack of trump, you still only score four.

The non-bidding team makes whatever number of points they earn.

If a team fails to make a bid it loses the value of the bid, while the other team scores whatever points it took. Teams can have a negative score.

Winning

A team needs 21 points to win, but you can only win at the end of a hand in which they made their bid. Because of this, it's possible for the winning team to have less points than the losing team. For example, suppose that we have 18 points and they have 24, but they have not yet won because they acquired their last 4 points playing against our bids. If we now bid 3 and make it, and they take 1 point, we win, even though we have just 21 points while they have 25.

If the game is tied, then play continues until someone wins a bid and the game is no longer tied.

AttachmentSize
pitch.zip49.24 KB
pitch.prc148.32 KB

Twitter Bots

I've written three bots which are chugging away on Twitter. They are:

@for_a_dollar was the first bot, and is pretty basic. If you tweet the word "Robocop", you'll get a response with a quote from the movie. It's fun, and reveals several things, but mostly that a lot of people that talk about Robocop don't know anything about the movie.

@iaminigomontoya was next, and is based on The Princess Bride. If you tweet "Inconceivable!" (with the exclamation point - very important!), you'll get a classic response. I wanted this bot to be nominally more interactive. So, if you respond to that tweet, you'll get another response. This bot is probably the most popular. People seem to fall into two categories on this one. 99% of the people who trigger this bot know exactly why they got it, and they love it. The other 1% don't have a fucking clue, and without fail seem to be conservative douches. The bot basically got into an argument, summed up nicely here:

Twitter QuoteTwitter Quote

@Betelgeuse_3 is the most recent bot. This one just seemed like it needed to be done. If you tweet the word "beetlejuice" three times, you'll get a response. I can't believe no one had come up with this yet! My main discovery on this one is that a lot of people in Brazil hit this one for some reason.

If you've stumbled upon this page because one of my bots is irritating you, just let me know and I'll stop it from happening. I only intended this to be fun, not spammish.

Whale Pail -- Twitter Delivered to your RSS Feed

WhalePail is a simple web app to generate RSS feeds for a variety of Twitter data. I wrote it to help me keep track of the collection of bots I have running on Twitter. I used to just have a couple panels in TweetDeck to watch them, but TweetDeck sucks, and so does having to watch it all the time. Now, I can get a daily summary of their activity in my RSS feed, which is much easier to deal with, and I can scrap TweetDeck in favor of a much better client.

To use the site, you'll need to authenticate yourself via Twitter. Then you can setup checks for tweets, mentions, or just search for a phrase. You get the results back as an RSS feed. You can specify daily checks, or a couple times a day. This is handy if you're checking for something that might have enough volume that Twitter's API might flush it out more than daily. I might add some other options like JSON output later.

The code runs on Sinatra, and is available as twitter-rss-digest on github. I used the sinitter project as a starting point.

areyouawesome.com

Here's another random project I started a long time ago, but recently updated: http://areyouawesome.com/ -- it answers the fundamental question. Am I, visitor to this website, awesome?

It's not much of anything right now although I'm hoping to use it as a playground for processing.js someday.