Boruch-Baum / emacs-crossword

Play/Download crossword puzzles in Emacs
GNU General Public License v3.0
67 stars 4 forks source link

crossword.el MELPA MELPA Stable

Dependencies: (all already part of core Emacs)

Dependencies: (external to Emacs)

The package uses either wget or curl to download packages from the network. These are both long-established standard programs and at least one is probably already installed on your computer.

Installation:

1) Evaluate or load or install this file.

2) Optionally, define a global keybinding or defalias for function crossword

         (global-set-key (kbd "foo") 'crossword))
         (defalias 'crossword 'foo)

3) Depending on your temperament and style, you might also want to set direct keybindings and aliases for functions crossword-download, crossword-display, and crossword-load; however, they're just one menu-selection away from function crossword.

Configuration:

M-x customize-group crossword

Initially, you may want to change the default download path crossword-save-path, but otherwise, try using the mode first without any customization.

There exist four customizations for how POINT advances after you fill-in a square or navigate: crossword-arrow-changes-direction, crossword-wrap-on-entry-or-nav, crossword-tab-to-next-unfilled, crossword-auto-nav-only-within-clue.

If you don't usually play more than one crossword in a sitting, you may want to set crossword-quit-to-browser to NIL to save yourself a keystroke on exit.

There are also several 'faces' defined to allow custom colorization and fontification. Knock yoursel out.

Operation:

M-x crossword presents a menu with three options. Unless you already have local puzzle files, you'll want to connect to the network, and decide what puzzle to download and for what date. Select a download source from the download menu, noting that the label for each download source includes the days of the week on which puzzles are published. Then enter the date of the puzzle you want. Different download sources have different archive retention policies, so you can try downloading 'old' puzzles. The puzzle files are tiny, so the download should be instantaneous for most, but YMMV.

M-x crossword a second time. If you choose to directly load a puzzle, you will be prompted to navigate to it. If you choose the browser, you're in for a small treat, as you'll be presented with a handy-dandy nifty screenshot-suitable metadata browser of all your known puzzle files, courtesy of Emacs' built-in tabulated-list-mode. Entries can be sorted by any column by navigating POINT there and pressing 'S' once or twice. Press \<RET> to play the puzzle at point. You can also delete files here ('d').

Feedback:

Compatibility:

The software has been tested on emacs version 26.1 and and emacs 28 snapshot, both in debian on a linux terminal (non-GUI).

Several puzzle file formats exist. This software, as currently written, parses the .puz file format created sometime in the 1990's by Literate Software LLC[1] and used initially by them for their 'across' line of software for creating, solving and sharing crossword puzzles. This format has supposedly since become the de facto standard for the genre[2][3].

[1] http://www.litsoft.com/

[2] http://fileformats.archiveteam.org/wiki/PUZ_%28crossword_puzzles%29

[3] https://code.google.com/archive/p/puz/wikis/FileFormat.wiki The contents at this URL were mangled, so I reformatted it to properly display its tables and code blocks in an org-mode file. See docs/crossword_puz_format.org.

Download resources:

This project wouldn't be useful without people sharing puzzles for free network download. A big thanks are due to Martin_Herbach for being the provider of all the default download resources pre-configured in this sotware.

Please let me know of other resources that can be added.

Check these URLs for links to other puzzles. In many cases, you need to look for a link labeled something like 'across-lite format' or 'puz format':

Comparable software:

I'm not aware of any other similar software for the linux terminal. The following may be of interest to readers. Please let me know of other projects.

Colophon

Some other Emacs software that I've published