Introduction
The excellent game Wordle became more widely known towards the end of 2021 and many clones and variations of the game were also created, one of which being the interesting Absurdle. Our program "Wordy" contains two options inspired by these games. The first based on Wordle and the second on Absurdle. Both can use words of length 4, 5 and 6 letters, each allows players to choose the maximum number of allowed tries and optionally the program will display a count of the remaining words which conform to the current pattern. In addition Wordy allows players to provide their own word lists in any language.
Playing
At the top of the display is a Toolbar. The jigsaw piece button at the left is a menu which has options for choosing the game type (Wordle or Absurdle), selecting the word list, selecting word length, maximum number of attempts, the font size, whether to display a count of the remaining words which conform to the pattern, and finally an option for saving the current settings. To the right of the puzzle icon is the game icon used to start a new game and a sad smiley which is used to show the solution for the Wordle option and the remaining words for Absurdle. Right again is a clock which ticks every 5 seconds. Letters can be entered using the keyboard or the on-screen keys.
Algorithms
We believe that both Wordle and Absurdle use two lists of words: a larger one to screen out nonsense words and a much shorter one from which to select solutions. Both of the Wordy options use a single list which does both jobs. The built-in words are taken from Brian Kelk's UK English wordlist and comprise 6056 of six letters, 3784 of five and 1989 of four. Alternatively players can provide their own list of words. This is explained in Word Lists.
During play only words from the list are accepted. Then, entered letters are coloured green if they are in the target word and in the correct position, yellow if they are in the word, but in the wrong position, and dark grey otherwise.
Obviously, Absurdle requires more complex coding than Wordle and it was that which inspired us to devise our own version. We have not seen the Absurdle code but have read through the explanation, particularly the comments regarding breaking ties between equal-sized response buckets, and believe our method is equivalent and deterministic.
Worked Example
A video to demonstrate wordy options. The player starts a Wordle game using the on-screen keyboard but switches to using the computer keyboard before miraculously finishing the game in only four attempts. Next she sets the word length to 4, requests that remaining word counts be shown and selects to play Absurdle. The keyboard is used to rapidly enter a series of words, initially each with no letter in common with previous words. Again she succeeds. Now she resets the word length to 5 and the game type to Wordle, before selecting "Set Wordlist". When the program was started it will have checked to see if a user-supplied list was present in the wordy directory. It wasn't, so, given the "Set Wordlist" request, the program presents a file browser to enable the player to provide a file. She selects a file from her Desktop (which is a copy of /usr/share/dict/spanish with a Spanish alphabet added as a first line.) This is rapidly parsed, cleaned up, and saved as wordy_data.txt in the wordy directory. The player enters her first word. After some thought she realises she hardly knows any Spanish words and so abandons the game by switching back to the built-in language, English. She enters her first word but stops that game too by again selecting "Set Wordlist" from the menu. This time the program automatically uses the Spanish list stored in the wordy directory. The player enters the other Spanish word she remembers (though doesn't know its meaning) and has to use the on-screen keyboard because several of the letters do not appear on her computer keyboard. Finally she clicks on the sad smiley to reveal the answer. Apologies for missing the left edge of the recording.
Word Lists
Wordy can be used with an alternative word list supplied by the player. This list can be of English words or of another language. The list must have one word per line and the first line must contain the alphabet of the language. The alphabet line should also define the layout of the keyboard for the language by using '/' symbols to denote the ends of rows of keys. For example a UK keyboard is defined as QWERTYUIOP/ASDFGHJKL/ZXCVBNM
Player Word List
qwertyuiop/asdfghjkl/zxcvbnm aardvark aardvark's aardvarks abaci aback .... .... zygote zygote's zygotes
Please refer to the relevant figures. The keyboard definition is used for arranging the on-screen keyboard and also for automatically cleaning up the user-defined word list. Cleaning up includes removing any words which contain symbols not in the alphabet, for example those with hyphens or apostrophies. Other clean ups include removing all words which are not of length 4, 5 or 6, and changing all lower case letters to upper case. These steps are employed to make it easier for players to produce their own word list: it does not have to be perfect. The cleaned-up version of this data (see "Cleaned Word List") will be copied to the pzl installation directory: /home/user/.pzl/wordy/wordy_data.txt
The file shown in the Player Word List example was made on our Linux Mint installation by copying
/usr/share/dict/british-english
to a file (with file name extension ".txt") and then using a text editor (NOT a wordprocessor like LibreOffice Writer) to add the alphabet symbols as the first line. These language files which come with the system are for use in spell-checkers and this one includes a section of names preceding the other words in the language, so we deleted those. That was all that was required to prepare the list.
Cleaned Word List
QWERTYUIOP/ASDFGHJKL/ZXCVBNM ABED ABET ABLE .... .... ZONE ZOOM ZOOS ABACI ABACK ABAFT ..... ..... ZONED ZONES ZOOMS ABACUS ABASED ABASES ...... ...... ZOOMED ZYGOTE
To use the list for the first time the player selects "User Supplied" from "Set Wordlist" in the Wordy menu. A file selection dialogue will appear (defaulting to the Desktop and file name extension ".txt") and the player selects the file containing their word list. All being well the program will initiate a new game with the new alphabet and word list. It will also have copied a cleaned up version of the file to ".pzl/wordy/wordy_data.txt" from where it wil be used the next time the player selects "User Supplied". To make the new list the default, the player should select "Save Settings" from the menu. This process is covered in the video Worked Example.
Wordy only handles two word lists: "Built-in" and "User supplied". That is, only one user supplied list can be used at a time. To switch to a different list it is necessary to set the default list to "Built-in", save settings, kill wordy. Rename or delete .pzl/wordy/wordy_data.txt, then restart wordy before asking the program to set up a new user supplied list.