AIGS 2008 Update

This version of the AI Game Server includes several minor updates to documentation (mostly to reflect the changes outlined below in the server) and a few changes (including one major change) to the server.

First, the server has been changed to send the final move along with GameOver moves, primarily for bookkeeping on the part of the clients.

read more...


AIGS 2008 Update

The documentation has not changed for this version; however, a few relatively major updates have been made to the server code.

First, the second player swap rule has been implemented to prevent either player from having an easily implemented perfect strategy. Now, after the first player has played, the second player can choose to either continue the game as normal or to switch places with the first player.

Next, a 4th argument has been added to the JoinSuccess and GameState messages to tell the client if they are player 1 or player 2.

read more...


AIGS 2008 Update

This is the first version of both the AI Game Server documentation and code. To write a client for the AIGS, I would suggest reading the documentation, it should contain all you need to connect to and interact with the server.

If you run the included jar file, it will run a working copy of the server. This version of the server does not contain a complete GUI, I hope to have that in a few days; however, a working version of Hex is included. If you would like to see the source cope, just open the jar file, all of the source code is included.

read more...


AIGS 2008 Overview

The AI Game Server started last winter when I was taking CSSE 413 (Artificial Intelligence). As part of the class, we were told to design an AI program capable of playing checkers. Rather than the entire class having to decide on and build in network communication routines, I decided to volunteer to build a server for the class. The first version of this server (which eventually became AIGS) was called PyCheck.

read more...


PyMint - A Python Multi-Interpreter

During the computer architecture class I took at Rose-Hulman, we were working with a simple assembly language that we had to compile by hand down to MIPS bytecode and that’s no fun (also there’s nothing not worth over doing 😄). So I decided to write a program that would allow for modular XML definitions of a language or translation and run it on pretty much any given code.

read more...


PyBallWorlds

Back in the first quarter of my Freshman year at Rose-Hulman, we wrote a small Java program called BallWorlds. The idea was to teach us about objects and inheritance by asking us to make a 2d simulation of balls of various types bouncing around in an enclosed environment. There could be balls that bounced off each other, sticky balls that clumped together, balls that grew when they hit something, and really any combination there of. The sky was the limit. The idea so intrigued me that when I was playing with OpenGL (and specifically PyOpenGL), I decided to rewrite the same thing in Python.

read more...


Markov Random Text

This is work from my first Winter quarter at Rose-Hulman Institute of Technology. Basically, we were to use Markov chains to generate a semi-random text that statistically matches an input text. The short version is that you calculate for each sequence of words of a given length (the chain length) what the possible next words are from the given text, each with a given probability. Then you use that to generate a new text, randomly choosing each new word from the aforementioned probabilities. It’s really fun to play with and I’ve got a half dozen or so examples to show you.

read more...