Introduction to AI (COMP-424)
Winter 2013

Project

Goal

The main goal of the project for this course is to give you a chance to play around with some of the AI algorithms discussed in class, in the context of a fun, large problem. This year, we will be working on a game playing program, for a game called ODD, whose rules and description are available from:

http://nickbentleygames.wordpress.com/2010/02/11/one-of-my-better-games-odd/

Input from all of you on what game you wanted has been very useful.

The code that we provide for the project (including the server and random player is available in this archive. Note that you can use any language to implement your player, so long as you re-code the socket-based message passing to the server and back. Pleae read the README.txt carefully and familiarize yourself with the Client-Server interface and the GUI. Gheorghe is the TA in charge of the project. Please report any bugs ASAP and make sure that you check back periodically in case there are bug fixes. The code has also been distributed through the class mailing list.


Requirements and evaluation

You should hand in two components:
  1. An implementation of your player program.
  2. A written report documenting your approach.
Both of these components are mandatory in order to receive a passing grade on the project.

Due date:
The due date for your code and report is April 15, 2013 (the day of the last class).

Academic integrity:
This is an individual project. The exchange of ideas regarding the game is encouraged, but sharing of code and reports is forbidden and will be treated as cheating. Please see the syllabus and www.mcgill.ca/integrity for more information.

Your implementation can be carried out in the programming language of your choice. The recommended language is Java and supporting code for that language is supplied to simplify your task. You should focus on providing 'intelligence' for your player. The minimum requirement is for your code to be able to defeat the random player that provided as an example.

It is mandatory that you have a working and documented program. Programs that are not working will not receive credit. Programs that are not documented will not receive full credit.

We will hold a competition between all the programs submitted by students in the class. The top 5 players in this competition will receive bonus points. Even if you are not a top player, you will receive bonus points if your approach is interesting and attempts to combine different AI techniques.

The report must be typed and grammatically sound. The suggested length is 5-6 pages (~300 words per page), but the most important part is to produce a report that is clear and concise. The report must include the following required components:

  1. An explanation of how your program works, and a motivation for your approach.
  2. A brief description of the theoretical basis of the approach (about a half-page, in most cases); references to the text of other documents, such as the textbook, are appropriate but not absolutely necessary. If you use algorithms from other sources, briefly describe the algorithm and give a citation to your source.
  3. A summary of the advantages and disadvantages of your approach, expected failure modes, or weaknesses of your program.
  4. If you tried other approaches during the course of the project, summarize them briefly and discuss how they compared to your final approach.
  5. A brief description (max. half page) of how you would go about improving your player (e.g. by introducing other AI techniques, changing internal representation etc.).