A library that can generate a random crossword grid (without clues) from a given list of words and short phrases. Only a library with a clean API is needed, so interface details are flexible. The API should provide control over the size and shape of the grid, and an optional restriction that the shape of the grid be symmetrical in one or two planes. It can be written in PHP, Perl, C or C++. Other languages may be considered if there is a good free compiler for linux available. The library should be capable of generating a 15x15 crossword grid in reasonable time with a lexicon of 50,000 words, and there should be no unnecessary arbitrary limit on the size of the lexicon. Crossword grids should be generated according to the rules of a British crossword as described [here][1].
## Deliverables
1) A complete and fully-functional working library with a clearly documented API, provided in source code form ready to be compiled (if necessary) on a standard linux system.
2) Deliverables must be in ready-to-build condition, as follows:
* A source code directory containing all necessary code to execute the functions in the library
* API documentation describing how to use the library, suitable for use by a programmer skilled in the language but with no knowledge of the library itself.
* If using a compiled language, a GNU make Makefile that will build the library into a linkable form (requiring minor modifications to the makefile to specify the build environment is acceptable, these settings should be clearly specified)
All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
## Platform
Linux (PHP, Perl, C or C++)