Package knockabout

An Implementation of an "AI" Player for Knockabout

See:
          Description

Class Summary
GameClient The Knockabout Game Client This is a Java implementation of the Knockabout Game client.
Player Standard KnockAbout Player Class Provides a set of functions that an agent should inherit (i.e.
RandomPlayer  
SearcherPlayer A player that uses a search algorithm to choose a knockabout move
 

Package knockabout Description

An Implementation of an "AI" Player for Knockabout

This java project is an implementation of an "AI" player for the game Knockabout. The core of this artificial player is an expected alpha-beta search algorithm with a 4-parameters, hand-tuned heuristic, although other search/heuristic methods have been tested. Please consult the search section for more information. Significant improvements of the underlying data structure are also documented in the gamemodel package.

Important Notice

If TIMEOUT issues arise, please decrease the initial value of the field knockabout.search.AlphaBetaSearchAlgorithm.timeLimitMillis.

Usage

Usage: java knockabout.GameClient <server> <port>

Sources:

Java 1.4.1 API reference and "The Java Tutorial" (both at http://java.sun.com)

Stuart Russell and Peter Novig: Artificial Intelligence A Modern Approach (2003) p.170, 177

Doina Precup's lecture notes (http://www.cs.mcgill.ca/~dprecup/)

Description of package knockabout

The package knockabout contains classes that handle the communication of the player with the server. Most of the code is similar to the code provided on the course web page.

Note: in this text, expectiminimax (expected alpha-beta) is sometimes referred as minimax (respectively alpha-beta) for brevity.