## Uses of Class
s3games.engine.GameSpecification

- Packages that use GameSpecification
  Package | Description
  --- | ---
  s3games.ai |
  s3games.engine |
  s3games.engine.expr |
  s3games.gui |
  s3games.io |
  s3games.player |
  s3games.robot |

- - ### Uses of GameSpecification in s3games.ai

    Methods in s3games.ai with parameters of type GameSpecification
    Modifier and Type | Method and Description
    --- | ---
    `static Heuristic` | Heuristic.`getHeuristic(java.lang.String name, GameSpecification specs)` constructor method that creates a heuristic of the specified type
    `Player` | AStarStrategy.`getPlayer(GameSpecification specs)` get a A* player object for the specified game
    `Player` | BreadthFirstSearchStrategy.`getPlayer(GameSpecification specs)` return a new BFS player for the specified game
    `Player` | DepthFirstSearchStrategy.`getPlayer(GameSpecification specs)` return a new DFS player for the specified game
    `Player` | MiniMaxStochasticStrategy.`getPlayer(GameSpecification specs)` returns a minimax stochastic player for the specified game
    `Player` | MiniMaxStrategy.`getPlayer(GameSpecification specs)` returns a minimax player for the specified game
    `Player` | MonteCarloRatioStrategy.`getPlayer(GameSpecification specs)` returns a monte carlo ratio player for the specified game
    `Player` | MonteCarloRatioStrategy2.`getPlayer(GameSpecification specs)` returns a monte carlo ratio2 player for the specified game
    `Player` | MonteCarloStrategy.`getPlayer(GameSpecification specs)` returns a monte carlo player for the specified game
    `Player` | RandomGeneralStrategy.`getPlayer(GameSpecification specs)` returns a random general player instance for the specified game
    `abstract Player` | Strategy.`getPlayer(GameSpecification specs)` constructor method for the player of the respective strategy subclass

    Constructors in s3games.ai with parameters of type GameSpecification
    Constructor and Description
    `MoreStonesHeuristic(GameSpecification specs)` constructor needs the game specification

  - ### Uses of GameSpecification in s3games.engine

    Fields in s3games.engine declared as GameSpecification
    Modifier and Type | Field and Description
    --- | ---
    `GameSpecification` | Game.`gameSpecification` specification of the game

    Methods in s3games.engine with parameters of type GameSpecification
    Modifier and Type | Method and Description
    --- | ---
    `java.util.ArrayList<Move>` | GameRule.`getMatchingMoves(Element el, GameSpecification specs, Context context)` list of moves that can be performed from this state with the element specified in the first argument
    `void` | GameState.`moveElement(Move move, GameSpecification specs)` only updates the game state by moving element between two locations, does not test anything, does not apply any rules
    `void` | Game.`setGameAndPlayers(GameSpecification gameSpecification, Player[] players)` setup game specification and players objects

    Constructors in s3games.engine with parameters of type GameSpecification
    Constructor and Description
    `GameState(GameSpecification specs, Robot robot)` use this constructor to create a state corresponding to the start of game situation
    `Move(java.lang.String from, java.lang.String to, java.lang.String element, GameSpecification specs)`

  - ### Uses of GameSpecification in s3games.engine.expr

    Fields in s3games.engine.expr declared as GameSpecification
    Modifier and Type | Field and Description
    --- | ---
    `GameSpecification` | Context.`specs` reference to game specification

    Constructors in s3games.engine.expr with parameters of type GameSpecification
    Constructor and Description
    `Context(GameState state, GameSpecification specs, Robot robot)` construct a new empty context

  - ### Uses of GameSpecification in s3games.gui

    Fields in s3games.gui declared as GameSpecification
    Modifier and Type | Field and Description
    --- | ---
    `GameSpecification` | BoardCanvas.`gameSpec` reference to game specification

    Methods in s3games.gui with parameters of type GameSpecification
    Modifier and Type | Method and Description
    --- | ---
    `void` | BoardCanvas.`setGame(GameSpecification gs)` controller sends the game specification to here

  - ### Uses of GameSpecification in s3games.io

    Methods in s3games.io with parameters of type GameSpecification
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | GameSpecificationParser.`load(java.lang.String gameName, GameSpecification specs)` load the game specification for the specified game.

  - ### Uses of GameSpecification in s3games.player

    Constructors in s3games.player with parameters of type GameSpecification
    Constructor and Description
    `AStarPlayer(GameSpecification specs, Heuristic heuristic)` construct a new A* player for the specified game with the given heuristic
    `CameraPlayer(GameSpecification specs, Camera camera)` construct a new camera player
    `MiniMaxPlayer(GameSpecification specs, Heuristic heuristic)` create a minimax player for the specified game with the heuristic provided
    `MiniMaxStochasticPlayer(GameSpecification specs, Heuristic heuristic)` create a minimax player for the specified game with the heuristic provided
    `MousePlayer(GameSpecification specs, GameWindow win)` construct a new mouse player

  - ### Uses of GameSpecification in s3games.robot

    Constructors in s3games.robot with parameters of type GameSpecification
    Constructor and Description
    `Camera(GameSpecification specs)` construct a new camera controller, it will also construct a camera control window.
    `Robot(java.lang.String serialPort, GameSpecification specs)` construct the robot controller and connect to the servo controller device