CypherSolve v1.0

A project I’ve worked on sporadically over the past decade, CypherSolve v1.0 is the Javascript incarnation of my simple substitution cypher (commonly known as cryptoquotes) decoding program.

Recommended use of the program:

Enter the text to be decoded, and run the program on default settings. The program will typically output a lengthy decoding list after 5-20 seconds or so.

If the script is taking so long your browser is giving ‘script not responding’ errors, try either reducing the amount of text to be decoded (typically 15-20 words is ideal), or (particularly if the text contains many two- and three-letter words) try setting the tolerance value to ‘Low’ and running the program again.

If the results don’t seem to be very helpful at all (not many results, without any significant amount of progress), try changing the initial possibilities value to seven or even ten and running the program again.

If the results still don’t seem to be very helpful, or the program finishes quickly without making any progress at all, you can try enabling the THAT and -ING checkboxes, or even changing the tolerance value to ‘High’. Note: in these cases the program may take a while to execute, and you may need to choose to ‘continue’ even after your browser starts saying the script isn’t responding.

If the program still hasn’t come up with a complete decode at this point, the text to decode most likely contains words that aren’t in the program dictionary. You can help the program with the decoding by adding individual letter decodes as you observe possibilities (e.g. setting the character after an apostrophe to S or T), or by adding new dictionary words to its database. Currently, the program will not store and remember new dictionary words. If there is enough interest in the program, I will implement a web database to store and collect new dictionary words for the program.

Yes, I know.. it’s yet another not-quite-game-related project, although depending on how you look at the activity of solving cryptoquotes, it *could* be a game. In teaching Educators about video games, gamification, and game-based learning, I’ve found it helpful to develop a set of criteria for how to (cognitively) define a game activity. Without going into too much detail, the five criteria I use are:

Rules – all game activities have rules, or more specifically when we ‘play’ games, we agree to artificially limit ourselves in some way or other, for some benefit. Cryptoquotes definitely have rules involved, some of them related to the structure of the English language itself. For example, when solving a cryptoquote, you can’t just change letters in the encoded text, or put in things like apostrophes where there aren’t any. Also, each letter can only be used once (e.g. the letter E can’t be encoded as both Q and S).

Goals/Objectives – in all game activities, there is one or more ‘goal’ or objective that players are trying to achieve. In a cryptoquote, of course, the goal is to correctly decode the quote, although many people who like do to cryptoquotes might add secondary goals and objectives, too, such as decoding the quote quickly (or quicker than someone else).

Evaluative Opportunity – in all game activities, players must have the opportunity to evaluate how they did, related to the goals and objectives of the activity, the performance of other players, etc. At first glance, the activity of completing a cryptoquote fails this criteria, because there is no specified time period after which a players’ perfomance is evaluated. Again, though, many people who like cryptoquotes are probably either internally or externally setting up some kind of timed trial for the activity (and thus making the activity into a game).

Uncertainty – in all game activities, the ultimate outcome of the activity must be unknown by all participants. e.g. players don’t know for certain if they are going to win or lose, or how many points/goals/objectives they will complete vs other players, etc. This is the key characteristic that separates ‘games’ from ‘puzzles’, and at first glance cryptoquotes also fail this criteria. In a puzzle, you know what the outcome of the activity is going to be (e.g. it will look like the picture on the jigsaw puzzle box), and the challenge is putting all of the pieces in the right places. In short, puzzles may be enjoyable and challenging, but they are not games, because there is no uncertainty in (eventual) outcome. Once again, though, people who like to solve cryptoquotes are probably ‘gamifying’ the activity in this regard, by placing artificial constraints or time limits on solving the puzzles. When a time limit is added, suddenly the outcome of the activity isn’t ‘certain’ anymore.. the player might not be able to complete the activity in the time allotment, or as quickly as another player might. i.e. there is the possibility of ‘losing’ the activity.

Controllable – in all game activities, the players must have the opportunity to make ‘decisions’ that affect the outcome of the activity. This includes things like strategies, tactics, physical execution, etc. In short, an activity is a game when players are presented with a variety of options, and choosing the ‘correct’ option(s) is more closely-associated with ‘winning’ (completing activity goals/objectives) than choosing incorrectly. Solving cryptoquotes definitely involves some amount of strategy, and there are of course a staggering number of possible letter combinations to try (actually over 40,000,000,000,000,000,000,000,000 total combinations). For example, many people (as well as the CypherSolve program) examine how frequently-occurring each letter is in the cryptoquote, and use it to make some educated guesses about specific letters (e.g. the letter E is the most-frequently-occurring letter in the English language), but there are numerous other strategies to try too, particularly related to noticing specific patterns in the encoded text.

In summary, if you like to solve cryptoquotes, at some level you’re probably adjusting the (puzzle) activity slightly to ‘gamify’ it.