Skip to content
Solves Boggle boards, if you're into that
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.
examples
resources
src
tests/BoggleSolver
.gitignore
.travis.yml
LICENSE
README.md
composer.json
makefile

README.md

BoggleSolver

Build Status

This is a PHP class that solves Boggle boards. I made it for fun.

Installing

If you use composer:

{
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/mwatson/BoggleSolver.git"
        }
    ],
    "require": {
        "mwatson/BoggleSolver": "0.3.0"
    }
}

Usage

$boggle = new \BoggleSolver\BoggleSolver();

try {
    $boggle->loadBoard(
        "A M T O".
        "L N S T".
        "L X T G".
        "E T A N"
    );
} catch (\BoggleSolver\BoggleException $e) {
    die("exiting on error: " . $e->getMessage());
}

// retrieve the list of words
$words = $boggle->findWords();

BoggleSolver::findWords() will return an array where every valid word is the key and the value is one or more arrays describing the path you take on the board to replicate finding this word.

Example (in formatted JSON, for clarity):

{
    "ANTS":[
        [0,5,2,6],
        [0,5,10,6],
        [14,15,10,6]
    ],
    "ANTA":[
        [0,5,10,14]
    ]    
}

The numbers in the array represent each tile ID.

See the files in the examples directory for more info.

Tests

If you have composer and make installed, you can run the following:

composer install
make tests

The make coverage command will also build coverage maps in HTML. make clean will delete the coverage directory.

License

© Mike Watson

Released under the MIT license. See the LICENSE file.

You can’t perform that action at this time.