- "Collector's Corner"
- "Cranberry Scones"
- "Cuddle Toys"
- "Four Wishes"
- "Gathering Strays"
- "The Global Marketplace"
- "Lake Snowmore"
- "Lethal Women"
- "Partners In Grime"
- "Rural Delivery"
- "Saucer Shenanigans"
- "Tombstone Geography"
- "Yo-Yo Masters"
- Avoid global variables.
- DO NOT use
class keyword for now.
- Do NOT include parenthesis for callback function in
- Cannot convert get/set property functions to lambda expressions.
const instead of
const to assign lambda function to variable.
- Consider: removing Help files: create-android-app, dotnet, mystery-master-dot-code, visual-studio-solution
- Change "affectionados" to "aficionados" for blurb of "Collector's Corner".
- Test long usernames to see how they display.
- Test user marks.
- Consider links where
Maybe. For puzzles with placers like "Is age1 less than age2?" See "Dandy Salespeople".
- Consider "Scroll Into View" as an option.
- Lawyer methods doFacts1, doFacts2, doFacts3, doFacts4 needs setTimeout for call to solver.
- Added Open Graph meta tags to puzzle pages. This allows Facebook to easily see the title, description, and image for the puzzle. Below are the tags for "A Day At The Zoo".
<meta property="og:title" content="A Day At The Zoo" />
<meta property="og:type" content="article" />
<meta property="og:url" content="http://www.mysterymaster.com/puzzles/ADayAtTheZoo.php" />
<meta property="og:image" content="http://www.mysterymaster.com/puzzles/img/ADayAtTheZoo.gif" />
<meta property="og:description" content="Child's play." />
- Added "puzzle parts" for new puzzles.
- After taking a year off to do other things, I am back!
- Updated logic-puzzle-model-js.php and upload-library-files.php in the help folder.
- Updated sitemap.php and changelog.php in the root folder.
- Global verbs
IsNot, Is, Maybe are now "static" variables of the
- Affected classes:
UIX, Verb, SmartLink, SmartRule, Viewer, TabbyViewer, Puzzle, Solver, Finder, Lawyer.
- Global link
With is now a "static" variable of the
- Affected classes:
- Updated all puzzle modules.
- Uploaded website with latest version. This version does not have a Web Worker.
- Removed addMessage method from Viewer and BoardViewer.
- Removed Web Worker thread. Now use UI thread with
setTimeout and callbacks.
- Removed Worker.js file, and updated
upload-library-files help file.
- Removed setTimeout for functions in Solver.doResume.
- Removed setTimeout for addMark in Solver.addMarkByRule.
- Removed setTimeout for sayContradiction in Solver.addMark.
- Removed setTimeout for sayAddMark in Solver.addMark.
- Removed setTimeout for sayRemoveMark in Solver.removeMark.
- Removed parenthesis for callback function in Finder.doResume.
- Removed setTimeout for doQuit in Finder.doNextLevel.
- Removed setTimeout for doQuit in Finder.doAssumptions.
- Added default
index.php file to
build-library-files.php file to
- Puzzle modules return Puzzle object instead of inheriting Puzzle class.
- Removed prototype chain for puzzle modules.
- Updated all puzzle modules (*.js files) with this change.
- Modified Big5GameRangers.css
- Modified inSession() method in session.php file.
- Modified puzzles\inc\footer.php file to look at
$okPuzzle flag to load solver components. And do not load puzzle-data-form.php if
$prodFlag is true
- Modified TabbyViewer.js to update nouns, verbs, and links when the tab is pressed.
- Added sitemap page to help logic puzzle developers.
- Added Develop Logic Puzzles page to help developers.
- Output mark's reason in TabbyViewer.updateMark() to input tag instead of table cell.
- Updated "Puzzle Parts" project to include session in its pages.
- Added session to almost every page.
- Encrypted password in MySQL. The password fields now have the blob type.
- Use regular expressions to validate various fields in the member page.
- Added include file "session.php" to track current member. The current member is displayed in include file "header.php".
- Added include file "Logjam.php" containing its class and code to log to a file.
- Added include file "Debe.php" (pronounced "Debbie"), a database wrapper class for MySQL.
- Renamed maxNouns to numNouns in Puzzle class.
- Removed following "max" variables from Puzzle class: maxNounTypes, maxLinks, maxFacts, maxRules.
- Incorporated Helper.getElapsedTimeAsString() method into Solver class.
- Added "Scroll To Bottom" button in header.php files for main page and puzzle pages.
- Added "Scroll To Top" button in footer.php files for main page and puzzle pages.
- Removed reference to gridVerb from TabbyViewer.js
- Converted var to const and let.
- Added PHP header <?php header("X-XSS-Protection: 0") ?> as the first line of savePuzzleParts.php
- Renamed global print(msg) method to jot(msg) for debugging.
- Moved Helper.getClueNumMsg to private method in Puzzle class.
- Renamed Helper.getMsgElapsedTime to Helper.getElapsedTimeAsString
- Inline Helper.getStartedMsg method at Solver.sayStarted.
- Inline Helper.getStoppedMsg method at Solver.sayStopped.
- Inline Helper.getSolutionMsg method at Solver.saySolution.
- All pages now load: Helper.js, Locker.js, UIX.js, Verb.js.
Adding these files allow "puzzle part" documents to be clickable without raising errors (though the clicks may not invoke anything).
- Update all "puzzle parts" under the "puzzle" and "solved" folders in the help folder.
- Changed column header for marks from "Name" to "Reason".
- Update only mark in Marks form and Grids form instead of entire form. This renders form much faster.
- Added "Scroll Into View" for facts, rules, marks, but is too jarring for big grids.
- Set okPauseNext flag to false in Viewer.updateUI, Viewer.reset.
- Removed updateRule in Viewer.
- Set chkPauseSolution to true in SetupViewer.reset.
- Updated all puzzle part files under the help folder.
- Puzzle footer has links to the unfilled Grids form and the filled Marks form.
- Set checkmark for valid marks in the Marks form.
- Removed Filer.js and use PHP to save puzzle parts to appropriate files under the help folder.
- Changed field name from chkPausePlacers to chkPausePlacer.
- When User enables/disables fact/rule before there are marks, this overrides initEnabled flag for fact/rule.
- Passed toggleFact, toggleRule events from UI to WW as updateFact, updateRule.
- Removed Viewer variable from Worker.js file.
- Use Google's closure compiler to create solver-lib.js, viewer-lib.js, worker-lib.js
- Renamed WebWorker.js to Worker.js.
- Optimized "Hello Dolly!" puzzle module to solve without assumptions.
- Removed lonerNum from Mark class. lonerNum is now local to doAssumptions.
- Implement undo after solution is found for level 4 to see if there are additional solutions.
- Rule 3 in "Small Town Motels" is not be necessary since I implemented the link "twice the sequence number of".
- Updates placers in UI. See "Abbondanza!", "Astrophysics Conference", "Dandy Salespeople".
- In mark.addPlacer, don't add if already there or noun.noun is already that value.
- Changed pairs array to hold noun instead of mark. See Noun class and solver.addMark.
- Changed Solver.MaxLevels to Solver.MAX_LEVELS.
- Changed Solver.MaxLaws to Solver.MAX_LAWS.
- Removed "this" keyword with returning closures in most classes.
- Return closures have get/set functions for variables.
- Added optional getVerb parameter to puzzle.addLink method.
- Canceled Yahoo! Small Business for hosting the Mystery Master website.
- Changed the contact email address to my Hotmail account.
- Began transition of hosting the Mystery Master website from Yahoo! to GoDaddy.
- Set css display to none for the Solver component of the puzzle page.
- Moved css for each puzzle into its own file.
- Extracted HTML for each puzzle into its own file.
- Replaced "js" folder with js-puzzle and js-viewer folders.
- Removed The Builder Series on the Help page.
- Removed The Development Series on the Help page.
- Updated the About page
- Updated the CSS files.
- Merged solver.php into footer.php.
- Update footer.php to show solver forms if the puzzle module exists.
- Performed "spring cleaning" on the website.
- Reorganized the Board control displayed on a logic puzzle page.
Modified PHP code to display encoded HTML. Example:
$str = file_get_contents("../puzzles/inc/setup.php");
- Created PHP function showFileAsPre.
- Created the /blog folder.
- Created tabby.php.
- In tabby.php, removed class="tabButton" from each button in divTabButtons.
- WebWorker returns "saySolverStatus" message to inform Viewer if Finder and Lawyer are loaded. This change impacts: Board, Solver, and Viewer.
- 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.
- Changed Locker class as static.
- Removed leading blank in "resetWork" when posting to worker in viewer.resetWork.
- Corrected problem with noun type in Verb.js
- Went live with my Indiegogo crowdfunding campaign.
- Fixed problem in Tabby.js assigning tabNum1 from locker.
- Enable facts previously disabled by a mark in puzzle.removeMark
- Disable fact in doLevel1a, doLevel1b
- Added JSDoc comments
- Moved call to solver.quitWork from finder.doAssumptions to solver.doWork
- Removed status field from Mark class
- Absorbed setGridMark3 into setGridMark2 in Puzzle class
- Removed okFacts option
- Fix pausing