I made this program to try out some search tree stuff. It generates a crossword of specified size and density of black squares, and then attempts to fill it in with unique, legal words. In general, it does well if you give it a reasonable puzzle to fill. However, the user is allowed to give it, for example, a completely blank 14X14 puzzle, which is obviously impossible. So be nice.
This file is executable, and should run if you have Java 6. On my Ubuntu, I right-click and say "Open with OpenJDK Java 6 Runtime". I don't know if it's similar with Mac/Windows. Let me know if it doesn't work. The UI should be self-explanatory, but if it isn't I would love suggestions on how to make it so. Likewise for general appearance, etc. The crosswords are dumb looking, but at least they're 180-degree symmetric (except sometimes with odd-numbered-sides, which I didn't want to spend much time fixing). Also, the documentation is very bad right now.
Anyway, here it is.
Edit: Apparently, it didn't save the permissions correctly, so you might have to manually change the permission of the file to allow execution. Again, I'm not sure how this works on a Mac/Windows, but on my computer, I right-click => properties => permissions => "Allow executing file as a program"