February 01 - March 23, 2001

The inspiration to base my ai project on J.K. Rowlings game of Quidditch came to me while sitting in classes listening to an introductory lecture on agent-oriented programming. In a flash the whole project was laid out before me- the who and how of the "agents"; the playing field;... Sheer brillance! I quickly presented my idea to Prof. Graci. The brillance of it played against his love of Harry, how could I lose?!?! Of course he approved my project (if not the would all be in vain!), but alas, the brillance of my idea quickly vanished. What was once so clear and obvious was now convoluted.

The first major blow to my brillancy came during the presentation of my project idea to the class when Prof. Graci said "this is so cool, ... three planes". Three planes! What was he talking about? This is a flat screen. All we need is two points! Assigning a set of three points in space to each agent turned out to be easy just create a class called points with three properties: x,y&z. Ascribing meaning to these points became the issue at hand.

While we live in a 3-dimensional world, thinking in 3-D has always been difficult for me. I intellectually percieve that this meant a cube shape of some sort was what was necessary to organize individual points. The playing field for quidditch (pitch) encompassed an area in space that was mapped out on the ground in a rectangular manner. My first attempt at doing this turned out a disaster with multiple points representing the same space. So getting back to basics, I took the closest rectangular object at hand (a tissue box!) and began studying it intently. Okay here there are 8 sets of coordinates in front of me {(0,0,0).. .(1,1,1)}. Now if we connect 2 tissue boxes what happens?! We now have 12 sets of coordinates, not 16. So there was my problem, I need to have adjoining sets of coordinates some how absorb each other to yield a new set. After getting this right on paper, I was finally successful at getting lisp to do it. The whole process of creating the playing field and positioning players and balls took me way to long. After all this wasn't even close to rocket science!

Creating the players and game balls was relatively easy. Currently each type of ball (bludger, quaffle, snitch) has its own unique base class. It will be here that I endow intelligence, motive, and feeling to each object. The players each have a property to hold intelligence, motive, feeling, agency-hood stuff. At the moment though, I have not assigned any of these things to them. As I type this it seems to me that I might what to refine the intelligence property, modelling players in the same fashion as balls are modelled. I need to contemplate this some more.


kathi dutton
Last modified: Mon Mar 26 15:08:17 EST 2001