- Clone this repository with Git:
git clone https://github.com/Isarcus/crossword-suggester.git
- Compile the C++ code for the word suggester from the repository's root directory:
make
- Follow the steps below for running either the crossword maker or the word suggester:
- Ensure that Python 3 is installed, and that you have the
numpy
andpygame
packages. - Run the crossword maker. Depending on your installation settings, you may have to replace
python
in the following command withpython3
.
python -m gui
- Controls:
- Left-click selects a square in the crossword.
- Right-click toggles between blanks and dark squares.
- Tab changes typing direction.
- Use arrow keys to move the currently selected square.
- CTRL+S prompts you to enter a filepath at which to save your crossword. Press Enter to save. If you want to overwrite an existing file, you must press CTRL+Enter.
- CTRL+L prompts you to enter a filepath from which to import an existing crossword. Press Enter to load.
- You can click the button that shows a hand holding a pen to request suggestions from the word suggester. These suggestions will be based on the currently selected word in the crossword, which is highlighted in blue. See below for the specifics of how the word suggester works.
- Run the program with a dictionary file of your choice. The words in these files must be separated by newlines (CRLF and LF are both OK). Some example dictionaries are provided in the
crossword-suggester/data
folder. Here is an example of how to run the program (from thecrossword-suggester
directory):
./suggester data/american.txt
- Enter patterns to query the dictionary. I haven't included anything fancy (yet) like regular expressions, just simple patterns of letters and blanks. Blanks are represented with asterisks. For example, the pattern:
FR**T
will return all words whose first letter is F, second letter is R, and fifth letter is T, and whose total length is five letters. The third and fourth letters could be anything. Special characters and punctuation are not supported (yet).