Skip to content

gfarrell/boggle-solver-clojure

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Boggle Solver in Clojure

Produces all the possible words from the official scrabble word list that can be found given a Boggle board. A Boggle board is an NxN matrix of tiles. Each tile is a letter (or, in the case of "QU", two letters) with a grid position. A word is made up of adjacent tiles, but in a single word, no tile can be used twice (but two distinct words can use each other's tiles).

Usage

The Boggle solver reads a board as contained in a text file. The board format is space-separated cells with line-separated rows, and nothing else in the file. For example, a board file might have the following contents:

H F E R
E A O Y
O Y V I
A R E I

This would be a 4x4 Boggle board. The solver can cope with non-square boards, as well as uneven boards (where the rows are different lengths), but these would not really be Boggle boards.

It can be run as follows:

$ java -jar boggle-1.0.0.jar "/path/to/board.txt"

It will then produce a list of words (with the "path", i.e. the way it is made up), along with a count of how many words it found. For example, the output may be:

VIE :  ([[V 2 2] [I 2 3] [E 3 2]] [[V 2 2] [I 3 3] [E 3 2]])
FEH :  ([[F 0 1] [E 1 0] [H 0 0]])
YAR :  ([[Y 2 1] [A 3 0] [R 3 1]])
...
RAY :  ([[R 3 1] [A 3 0] [Y 2 1]])
HAO :  ([[H 0 0] [A 1 1] [O 1 2]] [[H 0 0] [A 1 1] [O 2 0]])
IVY :  ([[I 2 3] [V 2 2] [Y 1 3]] [[I 2 3] [V 2 2] [Y 2 1]] [[I 3 3] [V 2 2] [Y 1 3]] [[I 3 3] [V 2 2] [Y 2 1]])
75 words found!

Building

To build this project, you first need to install its dependencies (i.e. leiningen). You can do this with:

$ brew install leiningen

You can then run the following to compile it:

$ lein uberjar

This puts a jar file in target/uberjar/boggle-1.0.0.jar.

About

A Boggle solver in clojure

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published