What is this?

A wordle-style puzzle the length of the novel Moby-Dick, roughly 214,575 words or 1,149,269 characters long. Since it would take quite a while for a human to solve, we let a computer solve it instead and stream its guesses to the webpage; it's typically able to win in around 24 guesses. Although the solution is fixed, the computer's strategy is non-deterministic, so reloading the page will (usually) show a different sequence of guesses.

What constitutes a valid guess?

A guess is a space-separated list of lowercase words using the letters a–z. The dictionary is derived from Project Gutenberg's transcription of Moby-Dick, which leads to some odd artifacts, such as most single letters being legal words. There are other reasonable schemes for making a puzzle the length of Moby-Dick, but this approach allows for (in my opinion) the most aesthetically pleasing display of a sequence guesses.

Where does the punctuation and capitalization come from?

The solutions are formatted following Project Gutenberg's plaintext edition of Moby-Dick. Punctuation and linebreaks are inserted at word boundaries (i.e. spaces) matching the pattern in the source text, with word length being more-or-less ignored. Chapter headings (e.g. "CHAPTER 1.") are considered punctuation, since IMO it makes the visualization more pleasing. Capitalization also mirrors that of the source text.

What strategy does the computer use?

The computer uses the strategy described in this paper, which wins in a bounded number of guesses for puzzles of length ω0. Maybe a bit overkill for a mere 1.1 million characters, but at least it was pretty easy to code.

How does it all work?

Solutions are generated offline (it takes my laptop a few minutes to generate one) and loaded incrementally by the visualizer. The solver is written in Haskell and uses a simple depth-first search (by way of the List monad) for coming up with valid guesses. The visualization is written in Elm and was much more of a pain in the ass to get right than the solver. The source code for both is available here.

What is the font used on this website?

The delightful Fantasque Sans.