Holger's
Java API

com.antelmann.game.puzzle
Class TilePuzzlePlayer

java.lang.Object
  extended by com.antelmann.game.TemplatePlayer
      extended by com.antelmann.game.puzzle.TilePuzzlePlayer
All Implemented Interfaces:
Player, Serializable

public class TilePuzzlePlayer
extends TemplatePlayer

provides AI for a TilePuzzle game

Author:
Holger Antelmann
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class com.antelmann.game.TemplatePlayer
TemplatePlayer.MoveEvaluater, TemplatePlayer.Synchronizer
 
Field Summary
 
Fields inherited from class com.antelmann.game.TemplatePlayer
levelOverride, monitors, orderMoves, playerName, SEARCH_ALPHABETA, SEARCH_MINMAX, searchOption
 
Constructor Summary
TilePuzzlePlayer()
           
TilePuzzlePlayer(String name)
           
TilePuzzlePlayer(String name, int searchOption, boolean trackingEnabled)
           
TilePuzzlePlayer(String name, int searchOption, boolean trackingEnabled, long randomSeed)
           
 
Method Summary
 boolean canPlayGame(GamePlay game)
          canPlayGame() returns true only if the Player provides an applicable heuristic for the type of game given.
 double heuristic(GamePlay game, GameMove move, int[] role)
          This function - often used as a callback function - evaluates the given move in the context of the given game; it is expected to return quickly.
static int manhattanDistance(TilePuzzle game)
           
static double nielsson(TilePuzzle game)
           
static int outOfPlace(TilePuzzle game)
           
 void setRandomSeed(long seed)
          if seed = 0, randomization is disabled
 String toString()
          overridden to return some information about the player
 
Methods inherited from class com.antelmann.game.TemplatePlayer
disableTracking, enableTracking, evaluate, evaluate, getlevelOverride, getMonitors, getOrderMoves, getPlayerName, getSearchOption, numberOfPositionsSearched, numberOfRequests, performanceRatio, pruneMove, selectMove, setlevelOverride, setOrderMoves, setPlayerName, setSearchOption, setTracking, statsAsString, totalTimeTaken, trackingEnabled
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

TilePuzzlePlayer

public TilePuzzlePlayer()

TilePuzzlePlayer

public TilePuzzlePlayer(String name)

TilePuzzlePlayer

public TilePuzzlePlayer(String name,
                        int searchOption,
                        boolean trackingEnabled)

TilePuzzlePlayer

public TilePuzzlePlayer(String name,
                        int searchOption,
                        boolean trackingEnabled,
                        long randomSeed)
Method Detail

canPlayGame

public boolean canPlayGame(GamePlay game)
Description copied from interface: Player
canPlayGame() returns true only if the Player provides an applicable heuristic for the type of game given. This way, a player can control whether it can a game.
 //Example:
 if (game instanceof MyGameClass) return true; else return false;
 // or:
 if (game.getClass() == myFavoriteGame.getClass()) return true; else return false;
 


setRandomSeed

public void setRandomSeed(long seed)
if seed = 0, randomization is disabled


heuristic

public double heuristic(GamePlay game,
                        GameMove move,
                        int[] role)
Description copied from interface: Player
This function - often used as a callback function - evaluates the given move in the context of the given game; it is expected to return quickly. This function is really the only function that contains proprietory knowlege about the game (as all other functions could be implemented generically without domain knowlege; this is why the class TemplatePlayer provides already most methods except this function for easy implementations of this interface); heuristic() asks for a heuristic of the move given the game status - treating the status as a leaf in a potential search tree (whereas evaluate() may perform a game tree search before returning a value).

See Also:
TemplatePlayer

nielsson

public static double nielsson(TilePuzzle game)

manhattanDistance

public static int manhattanDistance(TilePuzzle game)

outOfPlace

public static int outOfPlace(TilePuzzle game)

toString

public String toString()
Description copied from class: TemplatePlayer
overridden to return some information about the player

Overrides:
toString in class TemplatePlayer


(c) 2001-2006 Holger Antelmann - all rights reserved (contact: info@antelmann.com)
see www.antelmann.com/developer for further details and available downloads