The purpose of the game is to identify as many words (no abbreviations or names, but inflected forms are permitted) of three or more characters in length as one can spot in 90 seconds. To form a word, each next die has to be adjacent to the preceding die in any horizontal, vertical, or diagonal direction. A word may “change directions” as often as is needed, but any one die may only be used once per word. When playing against human opponents, players score points only for those words they are the only ones to have spotted. Three- and four-character words traditionally count for a single point each, while the score goes up incrementally at first, then more rapidly for longer words. Playing the Old English game for points against the solver algorithm is futile. In practice, I expect the facility to be used for language training purposes above all, but it may certainly be put to use for games and tournaments on shared screens.
I have decided against limiting the Old English solver lexicon to any one regiolect–chronolect. Instead, you’ll want to decide for yourself whether to play in early or late West Saxon, to allow normalized forms of both, or to admit any attested form, and read the solutions selectively for the forms you’ve decided to admit. You can play other dialects if you like, but the plays listed will more commonly reflect West Saxon orthography.
It is advisable to allow each player to gain points for a single orthographical/dialectal variant of a given word form only rather than to score points for beon and bion both; similarly, multiple players’ corresponding (identically inflected) forms should cancel each other out for points even if they differ orthographically. The same is naturally true for alternants with thorn and eth, which the solver conflates. Either with or without that last rule, however, you may want to try “attested spelling mode” from time to time, allowing any number of corresponding variants concurrently, for a fast-paced challenge that is certain to prepare you for the orthographical variation to expect across the manuscripts.
For Old Swedish, keep in mind that the character distribution was sampled against an eleventh-century “Viking Period” Younger Futhark corpus. Thus in most cases where diphthongs developed into monophthongs, it would be consistent with the corpus to require the diphthongs; but you are free to decide for yourself whether to allow ᛋᛏᛅᛁᚾ, ᛋᛏᛁᚾ, or both (but not ᛋᛏᛂᚾ, as ᛂ is not represented). In Futhark, geminates were consistently written as single runes, so this ought to be mandatory usage. This also means you may choose to permit such two-die, three-“letter” forms as ᛁᚾ (which I have excluded from the solver lexicon). By c. 1000, R had merged with r after consonants, but the merger would only fully take place after vowels in the course of the 12th century, so it stands to reason to maintain the distinction after vowels only. On the other hand, given clear variation in the corpus and a mere two ᛦ-faces, it would be equally reasonable to allow ᚱ for ᛦ — just not the other way around. You will also have to decide on the value of ᚬ, which changed from /ɑ̃, æ/ to /o/ around 1050. Pick one or the other, or permit both.
The solver function relies on an array that tells it what moves are legal from any one position on the 4x4 grid. It then obtains the letter sequence for each legal sequence of three to seven dice to form 99,828 potential plays and matches these against a list of attested word forms. For Old English, that lexicon combines ECHOE and ASPR excluding foreign content and named entities.
You will definitely spot forms among the solutions that will strike you as invalid plays. While in some cases this is due to errors in the lexicon or oversights in its creation, more commonly the issue is dialectal or idiographical. As a general rule, don’t expect the list of solutions to consist exclusively of legal plays; always read it selectively on the basis of your chosen dialect.
The above caveats for Old English apply more emphatically for the Old Swedish corpus. The solver lexicon for Old Swedish inscriptions is loosely based on attestations given in Peterson’s Svenskt runordsregister, but reduced to the 16-character Younger Futhark. The runic corpus is formulaic and thus inherently sparse in attested forms; I have added some obvious unattested forms manually but not systematically. In addition, the runic corpus for this limited character set in particular shows some variation in vowel quality, so when reverting medieval forms to Younger Futhark forms I have had to decide whether to represent e.g. e as ᛅ or ᛁ, or list parallel forms so both are represented. The solutions given are accordingly tentative and should be taken as a rough list of suggested plays.
Each character’s share of faces is a linear function of its relative frequency in a corpus, unless (as is the case for Old English X and P) some desired characters have no proportional claim to representation, in which case I have reduced the dispersion from the mean equally for all grapheme face counts until all letters are represented.
To calculate relative letter frequency, for Old Swedish I have used a subset of transliterations of 11th-century Younger Futhark inscriptions exported from Rundata, while for Old English I have relied on the c. 540,000 words in ECHOE not marked as foreign. The distribution of letters across the sixteen dice was determined by an algorithm relying heavily on graphotactical principles: starting with the rarest letters, each candidate is assigned to a die whose prior assignments have the weakest tendency, on average, to occur immediately adjacent to the assignee in the word forms in the corpus. To avoid the most frequent vowels from being concentrated on a few dice, the algorithm assigns the last 32 letters on the principle of optimal distribution. This approach has yielded the following distributions:
| Old English | |
|---|---|
| Die 1: | P, N, X, B, C, Ð |
| Die 2: | E, Y, Æ, Æ, E, U |
| Die 3: | N, B, C, Ð, F, G |
| Die 4: | E, Y, Æ, E, U, U |
| Die 5: | N, F, G, G, M, M |
| Die 6: | E, E, A, D, I, O |
| Die 7: | N, M, Þ, Þ, Ƿ, Ƿ |
| Die 8: | E, A, D, I, O, R |
| Die 9: | N, Þ, Ƿ, L, L, T |
| Die 10: | E, A, D, I, O, R |
| Die 11: | N, H, H, L, T, T |
| Die 12: | E, A, D, I, O, R |
| Die 13: | N, H, H, L, T, D |
| Die 14: | E, A, D, I, O, R |
| Die 15: | N, D, D, A, I, O |
| Die 16: | E, A, D, I, O, R |
| Old Swedish | |
|---|---|
| Die 1: | ᛘ, ᚬ, ᚼ, ᛒ, ᛦ, ᚠ |
| Die 2: | ᚢ, ᚬ, ᛦ, ᚱ, ᚱ, ᚢ |
| Die 3: | ᚦ, ᚼ, ᛒ, ᚠ, ᚠ, ᚱ |
| Die 4: | ᛁ, ᚱ, ᛅ, ᛋ, ᛏ, ᛁ |
| Die 5: | ᚦ, ᚴ, ᚴ, ᚾ, ᚾ, ᛋ |
| Die 6: | ᛁ, ᚢ, ᚢ, ᛅ, ᛋ, ᛏ |
| Die 7: | ᚦ, ᚾ, ᚾ, ᛋ, ᛋ, ᛁ |
| Die 8: | ᛁ, ᚢ, ᛅ, ᛋ, ᛏ, ᛁ |
| Die 9: | ᚦ, ᚾ, ᚾ, ᛁ, ᛅ, ᛋ |
| Die 10: | ᛁ, ᛅ, ᛋ, ᛏ, ᛁ, ᛅ |
| Die 11: | ᚦ, ᚾ, ᚾ, ᛁ, ᛅ, ᛋ |
| Die 12: | ᛁ, ᛅ, ᛋ, ᛏ, ᛁ, ᛅ |
| Die 13: | ᚱ, ᛚ, ᛚ, ᚱ, ᚴ, ᚴ |
| Die 14: | ᚢ, ᚢ, ᛋ, ᛋ, ᛁ, ᛅ |
| Die 15: | ᚱ, ᛚ, ᚱ, ᚴ, ᚴ, ᚢ |
| Die 16: | ᚢ, ᚢ, ᛋ, ᛋ, ᛁ, ᛅ |
I’d like to thank Ruby Wai-Ying Ku for her excellent work on the Exeter Book Hand typeface (used for the Old English letters) and Peter Baker for his invaluable Junicode Two font (used for the Younger Futhark runes and all serif type). The colour scheme is Chris Kempson’s base16-default-dark. Thanks to the Scandinavian Runic-Text Database (DbCLv1), the Electronic Corpus of Anonymous Homilies in Old English (GPLv3), ASPR (CC-BY-SA), and Lena Peterson for making their data available.
Paul Langeslag
University of Göttingen