15 years agoIncrease the window size a bit master
Carl Worth [Tue, 8 May 2007 14:01:03 +0000 (07:01 -0700)]
Increase the window size a bit

15 years agoDisplay all unfound, obscure words in blue at the end of a puzzle.
Carl Worth [Tue, 8 May 2007 14:00:45 +0000 (07:00 -0700)]
Display all unfound, obscure words in blue at the end of a puzzle.

15 years agoDon't display slots for target words less than 5 letters long
Carl Worth [Tue, 8 May 2007 13:59:26 +0000 (06:59 -0700)]
Don't display slots for target words less than 5 letters long

It was just too overwhelming to see dozens of 3- and 4-letter words
every time. It's now actually feasible to try to get all the words
when you've only got the 5-, 6-, and 7-letter words to attempt.

15 years agoSwitch from 6-letter rack to 7-letter rack
Carl Worth [Tue, 8 May 2007 13:57:51 +0000 (06:57 -0700)]
Switch from 6-letter rack to 7-letter rack

15 years agoFix typo in copyright/licensing blurb.
Carl Worth [Tue, 8 May 2007 13:55:09 +0000 (06:55 -0700)]
Fix typo in copyright/licensing blurb.

15 years agoEnsure that there's at least one full-length word that's not obscure
Carl Worth [Tue, 19 Dec 2006 18:27:18 +0000 (10:27 -0800)]
Ensure that there's at least one full-length word that's not obscure

15 years agoReduce number of tiles to 6 for a slightly easier game
Carl Worth [Tue, 19 Dec 2006 16:52:42 +0000 (08:52 -0800)]
Reduce number of tiles to 6 for a slightly easier game

15 years agoRemove penalty for not guessing obscure words.
Carl Worth [Tue, 19 Dec 2006 16:52:03 +0000 (08:52 -0800)]
Remove penalty for not guessing obscure words.

The list of obscure words is in obscure.txt. It consists of words
that are also in words.txt, but for which blanks lines will not
appear on the game board. If an obscure word is guessed, it will
still be considered valid---a new space for it will be inserted
into the game board and the word will be displayed in green.

Many thanks to Kevin Atkinson and Alan Beale for providing the
2of12inf.txt list from which an attempt at identifying 'obscure'
words in OWL2+LWL could be identified. The 2of12inf.tx list was
obtained from:


and details on its copyright and license status are included in

15 years agodict: Fix bug in for_each iterations with no max_length limit
Carl Worth [Tue, 19 Dec 2006 15:57:34 +0000 (07:57 -0800)]
dict: Fix bug in for_each iterations with no max_length limit

We've been using an idiom of min_length == 0, max_length == 0 to
indicate no length limit, but this has apparently been broken since
the rework of the for_each interfaces that introduced this.

15 years agoEnsure that there is at least one word using all letters in the rack.
Carl Worth [Tue, 19 Dec 2006 08:53:03 +0000 (00:53 -0800)]
Ensure that there is at least one word using all letters in the rack.

15 years agoFix to not give hints by putting answers found so far in their alphabetical position.
Carl Worth [Tue, 19 Dec 2006 07:41:26 +0000 (23:41 -0800)]
Fix to not give hints by putting answers found so far in their alphabetical position.

Instead all found answers now appear alphabetically before the blanks
corresponding to all unfound answers.

Part of implementing this was adding new of_length interfaces to dict
in place (or in addition) to the previous by_length interfaces. The
new interfaces are much more useful, (allowing length-limited queries
without any implicit looping).

15 years agoAllow a new game to be started by pressing Enter after Control-C
Carl Worth [Tue, 19 Dec 2006 06:34:55 +0000 (22:34 -0800)]
Allow a new game to be started by pressing Enter after Control-C

This took a fair amount of refactoring, but things are generally much
cleaner now, (even if the rack_t structure has long since outgrown its
name---it should be game_t now or so).

15 years agoAdd display of all missed words with control-C
Carl Worth [Tue, 19 Dec 2006 05:40:55 +0000 (21:40 -0800)]
Add display of all missed words with control-C

15 years agorack-fancy: Ignore any blank tiles drawn from the bag
Carl Worth [Mon, 18 Dec 2006 18:06:04 +0000 (10:06 -0800)]
rack-fancy: Ignore any blank tiles drawn from the bag

15 years agoRestrict solution to words of 3 or more letters
Carl Worth [Mon, 18 Dec 2006 18:01:02 +0000 (10:01 -0800)]
Restrict solution to words of 3 or more letters

15 years agoSwitch to mono font for solution and give it a bit more room
Carl Worth [Mon, 18 Dec 2006 17:57:31 +0000 (09:57 -0800)]
Switch to mono font for solution and give it a bit more room

15 years agoCleanup code to remove file-scope the_rack
Carl Worth [Mon, 18 Dec 2006 17:52:59 +0000 (09:52 -0800)]
Cleanup code to remove file-scope the_rack

15 years agoFix refresh bug for solution widget
Carl Worth [Mon, 18 Dec 2006 17:51:54 +0000 (09:51 -0800)]
Fix refresh bug for solution widget

All we were missing was a simple call to goo_canvas_item_simple_changed

15 years agoOnly show solution words after found (with refresh bug)
Carl Worth [Mon, 18 Dec 2006 17:26:05 +0000 (09:26 -0800)]
Only show solution words after found (with refresh bug)

Initially, all words shown are just blanks. Then after words are
found they will be drawn on the next update, (which is not yet
being triggered).

15 years agoPass the dict entry flags to the for_each callback
Carl Worth [Mon, 18 Dec 2006 17:22:10 +0000 (09:22 -0800)]
Pass the dict entry flags to the for_each callback

15 years agoAdd verification of the word
Carl Worth [Mon, 18 Dec 2006 16:12:05 +0000 (08:12 -0800)]
Add verification of the word

Currently just printing to stdout, no yet providing graphical verification.

15 years agoAdd keypress handler for Return
Carl Worth [Mon, 18 Dec 2006 16:04:00 +0000 (08:04 -0800)]
Add keypress handler for Return

Currently just sends the guessed letters back to the rack.
Does not yet do any checking of the guess.

15 years agoAdd display of solution to the canvas
Carl Worth [Mon, 18 Dec 2006 05:40:13 +0000 (21:40 -0800)]
Add display of solution to the canvas

This is currently displaying all possible words, (which is kind
of pointless for actually playing the game), but is useful
progress worth recording.

15 years agodict: Add dict_for_each functions
Carl Worth [Mon, 18 Dec 2006 05:38:43 +0000 (21:38 -0800)]
dict: Add dict_for_each functions

These new functions allow the caller to pass a callback to act on
all entries within a dictionary.

15 years agoAbstract tile-specific code out of demo-item.c
Carl Worth [Sat, 16 Dec 2006 23:52:37 +0000 (15:52 -0800)]
Abstract tile-specific code out of demo-item.c

We now accomplish painting by simply passing in a callback
function to do the painting. This will allow the single item
class to be shared for all canvas items.

15 years agoAdd key press handling (letter guessing and backspace)
Carl Worth [Sat, 16 Dec 2006 22:19:44 +0000 (14:19 -0800)]
Add key press handling (letter guessing and backspace)

15 years agoAdd back randomization
Carl Worth [Sun, 10 Dec 2006 06:35:54 +0000 (22:35 -0800)]
Add back randomization

15 years agoAdd a 3D "etched" effect to the lettering.
Carl Worth [Tue, 5 Dec 2006 06:47:55 +0000 (22:47 -0800)]
Add a 3D "etched" effect to the lettering.

15 years agoFix randomizing of letter positions to never end up on top of each other
Carl Worth [Tue, 5 Dec 2006 06:46:53 +0000 (22:46 -0800)]
Fix randomizing of letter positions to never end up on top of each other

We had some confusion over who was in charge of the letter position,
(whether the matrix as manipulated by the core animate code, or
whether private fields in our demo-item structure). We now do all
positioning based on the matrix. As a regression, animation is now

15 years agoAdd letter scrambling animation to rack-fancy
Carl Worth [Fri, 1 Dec 2006 07:58:10 +0000 (23:58 -0800)]
Add letter scrambling animation to rack-fancy

Currently this is triggered by clicking on a letter. Should
switch this to use the spacebar instead soon.

15 years agoMake rack-fancy select and display a rack of 7 random letters
Carl Worth [Fri, 1 Dec 2006 07:35:26 +0000 (23:35 -0800)]
Make rack-fancy select and display a rack of 7 random letters

The letter display uses a very cheesy effect with a radial gradient.
I'll have to come up with something reasonable later.

15 years agoAbstract subanagram code from rack into new bag.c
Carl Worth [Fri, 1 Dec 2006 07:27:10 +0000 (23:27 -0800)]
Abstract subanagram code from rack into new bag.c

This will allow for some simpler sharing with the new rack-fancy

15 years agoAbstract bag code from rack into new bag.c
Carl Worth [Fri, 1 Dec 2006 07:17:07 +0000 (23:17 -0800)]
Abstract bag code from rack into new bag.c

This will allow for some simpler sharing with the new rack-fancy

15 years agoAdd shell for rack-fancy (graphical version of rack)
Carl Worth [Fri, 1 Dec 2006 06:19:08 +0000 (22:19 -0800)]
Add shell for rack-fancy (graphical version of rack)

So far, this is basically just a cleaned up version of
simple-demo from goocanvas/demo.

15 years agoReport the time limit expiration, but don't end the game.
Carl Worth [Fri, 1 Dec 2006 05:52:25 +0000 (21:52 -0800)]
Report the time limit expiration, but don't end the game.

15 years agoAdd the ability to specify grid letters on the command line.
Carl Worth [Wed, 29 Nov 2006 07:09:46 +0000 (23:09 -0800)]
Add the ability to specify grid letters on the command line.

15 years agoAdd grid5 game in addition to grid4
Carl Worth [Fri, 29 Sep 2006 04:26:59 +0000 (21:26 -0700)]
Add grid5 game in addition to grid4

15 years agoPrint the per-word statistics at the end of the game.
Carl Worth [Fri, 29 Sep 2006 04:10:11 +0000 (21:10 -0700)]
Print the per-word statistics at the end of the game.

15 years agogrid: Generalize to allow either 4x4 or 5x5 grid.
Carl Worth [Fri, 29 Sep 2006 04:02:35 +0000 (21:02 -0700)]
grid: Generalize to allow either 4x4 or 5x5 grid.

15 years agoSplit grid into main program in grid4.c and library functions in grid.c
Carl Worth [Fri, 29 Sep 2006 03:50:09 +0000 (20:50 -0700)]
Split grid into main program in grid4.c and library functions in grid.c

15 years agogrid: Rename "board" to "grid"
Carl Worth [Fri, 29 Sep 2006 03:41:05 +0000 (20:41 -0700)]
grid: Rename "board" to "grid"

15 years agogrid: Don't consider 2-letter words as valid.
Carl Worth [Sun, 24 Sep 2006 04:41:00 +0000 (21:41 -0700)]
grid: Don't consider 2-letter words as valid.

15 years agoDon't print empty found/missed sections
Carl Worth [Sat, 23 Sep 2006 10:56:00 +0000 (03:56 -0700)]
Don't print empty found/missed sections

15 years agoPrefer capital letters in puzzle presentation
Carl Worth [Sat, 23 Sep 2006 10:49:52 +0000 (03:49 -0700)]
Prefer capital letters in puzzle presentation

15 years agoAdd new rack game as well
Carl Worth [Sat, 23 Sep 2006 10:47:48 +0000 (03:47 -0700)]
Add new rack game as well

15 years agoAdd new drill2 game for drilling 2-letter words.
Carl Worth [Sat, 23 Sep 2006 08:32:25 +0000 (01:32 -0700)]
Add new drill2 game for drilling 2-letter words.

15 years agoFix games wiithout time limit. Don't add empty repsonse to history. Don't expect...
Carl Worth [Sat, 23 Sep 2006 08:31:48 +0000 (01:31 -0700)]
Fix games wiithout time limit. Don't add empty repsonse to history. Don't expect puzzle to end in newline.

15 years agoMove the main game logic from grid.c to new word-game.c
Carl Worth [Sat, 23 Sep 2006 07:26:27 +0000 (00:26 -0700)]
Move the main game logic from grid.c to new word-game.c

The idea here is to make it very easy to have many games
which are basically variations of the same theme.

15 years agogrid: Add the ability to print stats at any point in the game.
Carl Worth [Thu, 21 Sep 2006 09:42:09 +0000 (02:42 -0700)]
grid: Add the ability to print stats at any point in the game.

15 years agoPrint board before result summary
Carl Worth [Thu, 21 Sep 2006 09:16:28 +0000 (02:16 -0700)]
Print board before result summary

15 years agoMove IS_WORD flag from trie to dict layer
Carl Worth [Thu, 21 Sep 2006 09:11:58 +0000 (02:11 -0700)]
Move IS_WORD flag from trie to dict layer

15 years agoAdd -Wmissing-prototypes and add a bunch of missing static qualifiers.
Carl Worth [Thu, 21 Sep 2006 09:04:41 +0000 (02:04 -0700)]
Add -Wmissing-prototypes and add a bunch of missing static qualifiers.

15 years agoMove private portions of dict from dict-impl.h back to dict.c
Carl Worth [Thu, 21 Sep 2006 09:02:39 +0000 (02:02 -0700)]
Move private portions of dict from dict-impl.h back to dict.c

This is the punch line in the recent series of commits which removed
trie_t and string_t code from grid.c. We now finally have a nice,
clean dict_t interface for new programs to use.

15 years agoRemove dependence on string_t functions from grid.c
Carl Worth [Thu, 21 Sep 2006 08:55:59 +0000 (01:55 -0700)]
Remove dependence on string_t functions from grid.c

15 years agoAdd printing to dict interface. Breakup grid prints by letter count.
Carl Worth [Thu, 21 Sep 2006 08:48:46 +0000 (01:48 -0700)]
Add printing to dict interface. Breakup grid prints by letter count.

15 years agoComplete the dict layer by adding dict_cursor_t and dict_entry_t
Carl Worth [Thu, 21 Sep 2006 07:36:10 +0000 (00:36 -0700)]
Complete the dict layer by adding dict_cursor_t and dict_entry_t

Some might argue that this is a gratuitous layer and that it
hides the elegance of the trie implementation where pointers
to the entire structure and pointers to a single node are

But I think the elegance is still all there in the implementation,
and I think there's some real benefit in making separate notions
of the entire structure (dict_t) and a pointer to a single element
for navigating (dict_cursor_t) since the operations one might want
to perform on one or the other are entirely separate.

With this change, the only remaining dependence of grid.c on any
trie or TRIE symbols is a single flag definition (which I want to
put entirely in grid.c) and the print functionality.

15 years agoBegin to wean grid.c away from trie and toward dict.
Carl Worth [Thu, 21 Sep 2006 06:59:59 +0000 (23:59 -0700)]
Begin to wean grid.c away from trie and toward dict.

15 years agoEliminate useless layer of dict wrapping trie.
Carl Worth [Thu, 21 Sep 2006 06:51:04 +0000 (23:51 -0700)]
Eliminate useless layer of dict wrapping trie.

15 years agoHide implementation details of dict in dict-impl.h. Add automatic dependency computat...
Carl Worth [Thu, 21 Sep 2006 06:29:22 +0000 (23:29 -0700)]
Hide implementation details of dict in dict-impl.h. Add automatic dependency computation to Makefile.

15 years agoBreak wordgame.c into dict.c and grid.c in preparation for more programs
Carl Worth [Thu, 21 Sep 2006 05:22:25 +0000 (22:22 -0700)]
Break wordgame.c into dict.c and grid.c in preparation for more programs

15 years agoIgnore *.o and *~ files.
Carl Worth [Tue, 19 Sep 2006 08:01:00 +0000 (01:01 -0700)]
Ignore *.o and *~ files.

15 years agoAdd input, verification, and scoring.
Carl Worth [Sun, 17 Sep 2006 09:01:17 +0000 (02:01 -0700)]
Add input, verification, and scoring.

I think the game is basically complete at this point.

15 years agoAdd board and solver.
Carl Worth [Sun, 17 Sep 2006 08:00:10 +0000 (01:00 -0700)]
Add board and solver.

15 years agoInitial comit of wordgame
Carl Worth [Sun, 17 Sep 2006 05:56:29 +0000 (22:56 -0700)]
Initial comit of wordgame