MiniMax engine for game decision making
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
tests
.gitignore
.scrutinizer.yml
.travis.yml
CHANGELOG.md
CONTRIBUTING.md
LICENSE.md
README.md
composer.json
phpunit.xml

README.md

Build Status Scrutinizer Code Quality Code Coverage

MiniMax engine in PHP

This library provides easy integration of the MiniMax game decision making algorithm into your game, using a simple interface to separate the algorithm from the game logic.

Usage

To use this library, first make sure you implement each interface in lucidtaz\minimax\game.

Then, simply construct an instance of lucidtaz\minimax\engine\Engine, give it the Player to act as, and when it is the player's turn, call the decide() method. This will result in the GameState instance that results after the engine takes its move.

In code:

class MyPlayer implements \lucidtaz\minimax\game\Player
{
    ...
}

class MyGameState implements \lucidtaz\minimax\game\GameState
{
    ...
}

$player = new MyPlayer(...);
$engine = new \lucidtaz\minimax\engine\Engine($player);

$gameState = new MyGameState(...);

$newGameState = $engine->decide($gameState);

For an example, see the tests/tictactoe directory or any of the other sample game implementations in tests/.