## Uses of Class
s3games.player.Player

- Packages that use Player
  Package | Description
  --- | ---
  s3games.ai |
  s3games.engine |
  s3games.player |

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

    Methods in s3games.ai that return Player
    Modifier and Type | Method and Description
    --- | ---
    `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

  - ### Uses of Player in s3games.engine

    Fields in s3games.engine declared as Player
    Modifier and Type | Field and Description
    --- | ---
    `Player[]` | Game.`players` all players that are currently playing the game

    Methods in s3games.engine with parameters of type Player
    Modifier and Type | Method and Description
    --- | ---
    `void` | Game.`setGameAndPlayers(GameSpecification gameSpecification, Player[] players)` setup game specification and players objects

  - ### Uses of Player in s3games.player

    Subclasses of Player in s3games.player
    Modifier and Type | Class and Description
    --- | ---
    `class` | `AbstractMonteCarloPlayer` Holds common code shared by all monte-carlo players
    `class` | `AStarPlayer` A* algorithm player that utilizes a heuristic
    `class` | `BreadthFirstSearchPlayer` Standard Breadth-first-search player for one-player games.
    `class` | `CameraPlayer` Camera player is utilizing the camera controller object to read the moves made by human on the real-world board
    `class` | `DepthFirstSearchPlayer` Standard Depth-first-search player for one-player games.
    `class` | `MiniMaxPlayer` Minimax player searches the game tree in a breadth-first search manner, taking the best result on the players move and the worst result on the opponent move into account.
    `class` | `MiniMaxStochasticPlayer` Extension of the standard minimax player that considers only some of the moves in each game state hoping to search more in depth
    `class` | `MonteCarloClassicPlayer` This is the default version of monte carlo player, it only looks at the number of won trials compared to the number of all trials
    `class` | `MonteCarloRatioPlayer` A version of a monte-carlo player that calculates the winning trials scaled with a quotient that is calculated as a multiply of 1/N_i constants, where N_i is branching in the opponent move state.
    `class` | `MonteCarloRatioPlayer2` Monte carlo player where trials have differnt weight - depending on the depth of the trial - the deeper the trial (the more moves needed), the lower its contribution to the overall scores
    `class` | `MousePlayer` Mouse player represents a human playing using/clicking the mouse in the window with graphical visualisation of the game board
    `class` | `RandomGeneralPlayer` Always plays a random move - can be used in any game