| Package | Description | 
|---|---|
| clui | This package contains the command-line user interface. | 
| controller | This package contains various controllers, which are strategies to select
 the next move for a given player. | 
| Modifier and Type | Class and Description | 
|---|---|
| class  | ConsoleControllerA Controller that queries the user for moves and then submits them. | 
| Modifier and Type | Method and Description | 
|---|---|
| static Controller | Main. createController(Player p)Ask the user what kind of controller should play for p; create and
 return the corresponding object. | 
| Modifier and Type | Class and Description | 
|---|---|
| class  | DumbAIA DumbAI is a Controller that always chooses the blank space with the
 smallest column number from the row with the smallest row number. | 
| class  | MinMaxAIA MinMaxAI is a controller that uses the minimax algorithm to select the next
 move. | 
| class  | RandomAIA RandomAI is a Controller that always chooses a random blank cell to play. | 
| class  | SmartAIThe SmartAI uses min-max search with reasonable heuristics to choose
 the next move to make. |