Mystery Master

Change Log

Michael Benson


Detective

Tips

  1. Cannot convert get/set property functions to lambda expressions.

TODO

  1. Assign class function to var?
  2. Test user marks.
  3. Consider links where getVerb returns Maybe? For puzzles with placers like "Is age1 < age2?"

2019-06-11

  1. Use Google's closure compiler to create solver-lib.js, viewer-lib.js, worker-lib.js

2019-06-10

  1. Renamed WebWorker.js to Worker.js.

2019-06-07

  1. Optimized "Hello Dolly!" puzzle module to solve without assumptions.

2019-06-05

  1. Removed lonerNum from Mark class. lonerNum is now local to doAssumptions.
  2. Implement undo after solution is found for level 4 to see if there are additional solutions.

2019-06-04

  1. Rule 3 in "Small Town Motels" is not be necessary since I implemented the link "twice the sequence number of".

2019-06-03

  1. Updates placers in UI. See "Abbondanza!", "Astrophysics Conference", "Dandy Salespeople".
  2. In mark.addPlacer, don't add if already there or noun.noun is already that value.

2019-05-24

  1. Changed pairs array to hold noun instead of mark. See Noun class and solver.addMark.

2019-05-20

  1. Changed Solver.MaxLevels to Solver.MAX_LEVELS.
  2. Changed Solver.MaxLaws to Solver.MAX_LAWS.

2019-05-19

  1. Added Object.seal() to new JavaScript objects in the Puzzle class.
  2. Removed "this" keyword with returning closures in most classes.
  3. Return closures have get/set functions for variables.
  4. Added optional getVerb parameter to puzzle.addLink method.

2018-09-19

  1. Canceled Yahoo! Small Business for hosting the Mystery Master website.
  2. Changed the contact email address to my Hotmail account.

2018-09-17

  1. Began transition of hosting the Mystery Master website from Yahoo! to GoDaddy.

2018-05-16

  1. Set css display to none for the Solver component of the puzzle page.

2018-04-26

  1. Moved css for each puzzle into its own file.
  2. Extracted HTML for each puzzle into its own file.

2018-04-25

  1. Replaced "js" folder with js-puzzle and js-viewer folders.
  2. Removed The Builder Series on the Help page.
  3. Removed The Development Series on the Help page.
  4. Updated the About page
  5. Updated the CSS files.
  6. Updated the JavaScript files for the puzzles.
  7. Merged solver.php into footer.php.
  8. Update footer.php to show solver forms if the puzzle module exists.

2018-03-23

  1. Performed "spring cleaning" on the website.
  2. Reorganized the Board control displayed on a logic puzzle page.

2017-12-07

  1. Updated the number of logic puzzles to 120, though not all have a corresponding JavaScript file.

2017-07-27

  1. Modified PHP code to display encoded HTML. Example:
    			$str = file_get_contents("../puzzles/inc/setup.php");
    			echo htmlspecialchars($str);
    			
  2. Created PHP function showFileAsPre in the root head.php file.

2017-07-26

  1. Created the /blog folder.
  2. My first article "Model a Logic Puzzle in JavaScript" has been published by CodeProject.
  3. My second article "View a Logic Puzzle in JavaScript" has been submitted to CodeProject.

2017-07-02

  1. Created tabby.php.
  2. In tabby.php, removed class="tabButton" from each button in divTabButtons.

2017-06-17

  1. WebWorker returns "saySolverStatus" message to inform Viewer if Finder and Lawyer are loaded. This change impacts: Board, Solver, and Viewer.

2017-06-15

  1. Moved core JavaScript files for puzzles from "/puzzles/js/inc" to "/js".

2017-06-14

  1. Added button on home page to show/hide the "fun" images. These are the images that appear on the right-hand-side of pages, including the puzzle pages.
  2. Changed Locker class as static.

2017-05-11

  1. Removed leading blank in "resetWork" when posting to worker in viewer.resetWork.

2017-05-10

  1. Corrected problem with noun type in Verb.js

2017-05-07

  1. Went live with my Indiegogo crowdfunding campaign.

2017-05-05

  1. Updated puzzles/inc/head.php
  2. Fixed problem in Tabby.js assigning tabNum1 from locker.

2017-03-23

  1. Enable facts previously disabled by a mark in puzzle.removeMark

2017-03-22

  1. Disable fact in doLevel1a, doLevel1b

2017-03-21

  1. Added JSDoc comments
  2. Moved call to solver.quitWork from finder.doAssumptions to solver.doWork

2017-03-20

  1. Removed status field from Mark class
  2. Absorbed setGridMark3 into setGridMark2 in Puzzle class

2017-03-19

  1. Removed okFacts option

2017-03-15

  1. Fix pausing