Word games are fairly rare in the J4K competition because of the problem of fitting in a dictionary. Until now people have either hard-coded a small set of levels or used reflection to scrape a dictionary. Quadriletteral takes a new approach: the game is designed to require only words of 4 letters; it features a dictionary of over 2000 words and has over 1 million possible distinct puzzles.

You're given 16 letters with which to fill a 4x4 grid so that you make four words across and four words down. You can get up to 8 hints, each of which reveals one letter in the* solution. However, if you take all 8 hints you'll struggle to get a good score.

The UI sucks, I admit, because fitting in as large a dictionary as possible was a higher priority. I hope to have time to go back and hand-optimise in order to squeeze in a few more words. However, before doing that I'd like feedback on other aspects, in particular the colour scheme (does it have enough contrast for red-green and for yellow-blue colour-blind people?) and the scoring.

I was tempted to do a Spanish version too, but ñ would complicate the loops. I suppose I could make a dictionary which excludes it...

If anyone wants to supply me with a dictionary of 4-letter words containing only characters a-z in their native language (optionally dropping diacritics - I think this is normal for word games) then I can put together a version which they can play. It probably won't be 4k but it will let you get a taste for the gameplay.

Step 2. Sort by number of tails (so all digraphs like "af" which only have one completion come first, etc).

Step 3. Each head+tails can be encoded as a number giving the size of the set, the head, then the tails. E.g. 1afar1ajar...5abedetlelyut... However, by using difference encoding on the sizes you can get most of them to be 0 or 1. 1afar0ajar... As 0 and 1 are pretty frequent in the .pack file the difference-encoded lengths don't need any further treatment.

Step 4. Count letter frequencies. Count bytecodes 0-25 in the .pack file produced with an empty string in place of the data. Assign letters accordingly (i.e. 's' -> 21, which is the most common byte - not surprising, because it's the opload for iload; 'e' -> 0; etc).

Step 5. Emit the alphabet* ordered so that I can do a charAt to invert the mapping set up in 4. Emit the string from 3 encoded as specified in 4.

Step 4. Count letter frequencies. Count bytecodes 0-25 in the .pack file produced with an empty string in place of the data. Assign letters accordingly (i.e. 's' -> 21, which is the most common byte - not surprising, because it's the opload for iload; 'e' -> 0; etc).

Step 5. Emit the alphabet* ordered so that I can do a charAt to invert the mapping set up in 4. Emit the string from 3 encoded as specified in 4.

This one is a bit too tough for me I think I managed to solve it (with no less than 8 hints), but I had to google for some really obscure words. I think giving a few "free" hints straight up would be welcomed.

I generally take 4 hints straight off and see where I can go from there, but I want to give people the option.

In terms of finding obscure words, I did consider adding a tick by rows and columns with a word in them (whether it's the "right" word or not); the problem is that I've had to remove some words from the dictionary to get the size down, and people will complain if e.g. "BIRD" isn't ticked.

WOW that is amazing. I really like how you approached thescrambling of the words. That is for me the coolest thing aboutthis competition: to think of ways how to overcome obstacles!

Unfortunately, even with 8 hints it is too hard for me.

How many possible grids can you make when you for instancehave only unique characters? This limits the placements ofthe vowels which could make things a bit easier?I don't know if this will limit the possibilities too much andtherefore create a too easy game?

Or combine this game with mastermind where you ask howmany characters are on the right place in the grid:

STILLOTOAUTOPHIT

[*CHECK*] Result: There are 6 characters on the right place

20 years ago I typed in all the 3,4,5,6,7,8 and 9 character wordsfrom a dictionary because I wanted to create a word-game myselfin Basic. Luckily we nowadays have on-line versions of thosedictionaries.

I have used Java (ofcourse) to get the 4-character words out of the dictionary and put them in the attached jar file.

Oleo I admit I looked up and considered manually excluding as too en-us. In the end I decided to exclude swearwords (which I generally exclude for word games because I'm thinking of the parents of the children); currencies (bani, lira, etc); a few antiquated words like "mixt" and "doth", words for which I couldn't find any definition at all, words which I believe are proper nouns or abbreviations, and a very small number of non-trans-Atlantic words. (To be honest, I really wanted to be able to say that there are over 1 million distinct puzzles, and if I cut oleo I couldn't make it. And anyway, word games are supposed to be educational).

How many possible grids can you make when you for instance have only unique characters?

One. The letters are ACGHIEMNOPRSTUWY. Good idea, but unfortunately not very practical.

Quote

Or combine this game with mastermind where you ask how many characters are on the right place in the grid:

STILLOTOAUTOPHIT

[*CHECK*] Result: There are 6 characters on the right place

Hmm. There's a slight complication because of the symmetry around a diagonal - I could report the largest match but there would be potential to confuse. And I'd have to think about how to tie it into the scoring system. But that's an intriguing idea and I may come back to it.

java-gaming.org is not responsible for the content posted by its members, including references to external websites,
and other references that may or may not have a relation with our primarily
gaming and game production oriented community.
inquiries and complaints can be sent via email to the info‑account of the
company managing the website of java‑gaming.org