Mystery Master


Michael Benson



Hello, my name is Michael Benson, and I am the "MasterChef" behind the Mystery Master website ( The specialty of my website is solving logic grid puzzles, also known as logic puzzles or logic problems. My menu gives you a choice of 30 puzzles, and all have been solved by the Mystery Master application. I hope with the support of logic puzzle enthusiasts, AI pioneers, and sympathetic artificial beings, the solving component will soon be available online. For now, this component is the missing ingredient.

One artificial being on my side, though not very sympathetic, is my "spokesman" Alan. Alan, my Artificial Linguistics Nanobot, is the spicy voice behind the many videos about logic puzzles that you can find on my help page. But I don't need Alan to tell you the reason behind my website: "My goal is to create a program that can solve any logic grid puzzle." A logical person may respond to that statement with the question "Where's the beef?" The answer is...


Though I considered writing a mobile app that can solve logic puzzles, I think the web is the universal platform for applications. And since JavaScript is the "mother sauce" of the web, the Mystery Master application is written in JavaScript. When you display one of my logic puzzle pages, your browser is nourished by the wholesome goodness of my PHP, HTML, CSS, and JavaScript. As my Uncle E would say "It's nutritious and delicious!"

There is a lot you can learn about the Mystery Master application by sampling my help page, but here is the basic recipe:

  1. Each logic puzzle page loads a common set of JavaScript files. These files make up the Mystery Master application.
  2. Each logic puzzle page also loads a unique JavaScript file for that particular puzzle. This file is called a puzzle module.
  3. The Mystery Master application solves a logic puzzle by processing its corresponding puzzle module.

Let's look at an example. For the logic puzzle "Five Houses", here is its puzzle module. If you are a JavaScript lightweight, don't try to digest this all at once. In fact, to avoid heartburn, this module does not implement the sayFact method. But if you have the stomach for it, by perusing other puzzle modules you will realize that the sayFact method is just a series of switch statements that builds the text of the fact for you! If only Alan could do that for me, this puzzle module would be a piece of cake.


I hope you enjoyed my introduction to the Mystery Master website. This is just a small appetizer compared to the vast feast that Mystery Master can provide.

I better stop now; my metaphors are making me hungry. But before I go, I will leave you with a sinewy question for your brain to gnaw on:

Can you write a program that (1) converts the text of a logic puzzle to data, and (2) uses that data to solve the logic puzzle?

Michael Benson

Programmer Michael Benson

I am a software developer, who is a jack of all trades, yet has the audacity to call himself Mystery Master.

My current position is virtual zookeeper of the Mystery Master website at

I know "a lot" about websites, though I may respond with "mythological Greek hero" if you ask me what I know about Ajax.

My favorite languages are C# and Java, with JavaScript a distant third. I know how to program in Python, but please give me a good reason to.

When I'm not at my computer, I am travelling far more than I like to places far more exciting than I can handle.