Mystery Master

API Classes

Michael Benson

The following table summarizes the classes in the Mystery Master application, sorted by its name. The thread column tells us if the class is referenced by the WebWorker (WW), the user interface (UI), or both. See the API documentation for more information. Before you look at the table, I want to point out that I know JavaScript does not embrace Object-Oriented Programming (OOP) the same way as Java or C#, so what I call a class is really a function that I treat as a class. And while some of the newer stuff in JavaScript is great, I have decided not to put "lipstick on a pig"; i.e., I have not embraced the JavaScript classes introduced in ECMAScript 2015.

Name Thread Description
Board UI The Board form.
Fact Both The Fact class.
Filer UI The Filer static class saves puzzle data to local files via FileSaver. Development only.
FileSaver UI Utility class to create files on the client side. Development only. Written by Eli Grey.
Finder WW The Finder class finds marks when the program solves a logic puzzle.
Helper Both The Helper static class defines global variables and helpful methods.
Laywer WW The Lawyer class finds additional marks based on the current mark.
Link Both The Link class.
Locker UI The Locker static class is a wrapper for HTML 5 Storage.
Mark Both The Mark class.
Noun Both The Noun class.
NounType Both The Noun Type class.
Puzzle Both The Puzzle class is the base class for all puzzle modules.
Puzzler UI The Puzzler static class contains methods for the Puzzle and/or Solver objects.
Rule Both The Rule class.
Setup UI The Setup form.
SmartLink Both The SmartLink static class contains methods that return a function along with its closure.
SmartRule Both The SmartRule static class contains methods that return a function along with its closure.
Solver Both The Solver class. Note: The UI does not instantiate the solver object.
Stats UI The Stats class collects statistics while the puzzle is being solved.
Tabby UI The tabbed interface control displays one form at a time.
UIX UI The User Interface and eXperience (UIX) class is common for all web pages.
Verb Both The Verb class.
Viewer UI The Viewer class manages the User Interface (UI).