Very rough program to let you play 4x4 boggle and learn new words. Has the following options:
opts = Trollop::options do opt :define, "Show a definition dump at the end", :short => 'd' opt :interactive, "Continue printing games", :short => 'i' opt :dictionary, "Change the default dictionary", :default => 'dicts/just_words.dict' opt :board, "Give a string as input to be the board", :default => "" end
--interactive has yet to be implemented, but the idea behind it would be that instead of loading up a dict each time you could continue to play with the same dictionary. Has no timer going on right now, just use a watch to time the three minutes. Use 'XYZZY' to exit any prompt (TODO: should be control-D or something as well).
As it stands, with a full scrabble dictionary load (dicts/osw.txt) it takes about 2.6 seconds to load up on
Darwin mac.local 10.6.0 Darwin Kernel Version 10.6.0: Wed Nov 10 18:13:17 PST 2010; root:xnu-1504.9.26~3/RELEASE_I386 i386
with intel core 2 duo 2.4ghz. It takes about 200MB of ram to load the dictionary into memory. With this dictionary a given board takes around 0.14 seconds to solve (same specs). 'just_words' only has around 40k words as opposed to 260k, so it ends up being considerably faster. There are some ways to optimize the solving, but at 0.14 seconds thats not really the problem, the problem is the loading which even then isn't horrid.
Not actually a gem, just
git clone git://github.com/scheibo/boggle.git cd boggle ./boggle
- timer (3 min countdown)
- interactive mode (save loading the dict)
- Ctrl+D to exit
- NxN board
Hopefully Parker Brothers (Hasbro) isn't going to get mad I've recreated their game. All copyright, trademarks, etc belong to them.
All the dictionaries are property of whoever compiled them, and hopefully I'm not breaking any copyright by including them in this program (I just took most of them off of wordlists.sourceforge.com).
As for the code to the game itself:
boggle is Copyright (c) 2011 Kirk Scheibelhut and distributed under the MIT license.
LICENSE file for further details regarding licensing and distribution.