Mahjong Solitaire
Interactive Tabletop Art
Soothsayer Rev 1.58.12
Schema1
We did not set out to create Interactive Tabletop Art, but here we are. While there are thousands of Mahjong Solitaire Puzzles available on-line, HINT generally just shows you one of the available pairs that can be removed from the game. Our frustration with the inability to save, share, and analyze interesting puzzles led us to a Spreadsheet Solution, primarily to document the game state for later analysis.
Much to our surprise, once you HAVE the data, it’s easy to sort by Layer and use ACTUAL Mahjong Tiles to fiddle with a puzzle. VERY MUCH to our surprise the Kinetics, Touch, Feel, and Sound of the actual Mahjong Tiles is both intriguing and relaxing, AND using actual Tiles enhances your ANALYTICAL ABILITIES by an order of Magnitude.
Venues
Our target venues are the Mahjong Parlors, Bars, Social Clubs, Senior Facilities, and Households that host weekly Mahjong Sessions. Before anyone arrives, the host will build a puzzle, Interactive Tabletop Art, on each of the tables and the folks who arrive early (or hang around afterwards) will have “something to do” while they are waiting for the rest of their foursome.
Casual Users:
As folks arrive, they can scan the QR Code on the hand-out, which just happens to have an 18×18 grid printed on the flip side, which is exactly the right size for Mahjong Tiles. They can then watch the solution set Movie on their Cell Phone to get a quick overview, and then glance at the phone whenever the next move isn’t obvious. Actual Glyphs are displayed on the phone, with look pretty much like most of the on-line puzzles. But, in addition to a solution set “cheat,” the displayed Tiles are DYNAMIC. The Mahjong Glyph itself is naked, which allows us to use the lattice cell BACKGROUNDS as follows:
Layers are represented by Colors, and you can isolate each layer by making the other layers transparent, even to the Tooltips.
Constraints are represented by Chebyshev Shadow Patterning, which is a sophisticated means of using opacity and human visual processing to indicate the importance of a tile. Users can focus on Reveals (an unblocked tile is revealed), Bottlenecks, or Priority (which allows the ordering of Tile GROUPS by the most severe of the bottlenecks in each 4 Tile Group.
The flip side of “most severe” is “most beneficial.” WHICH Tiles will reward you with the MOST Bang! for the Buck? Hint - It’s not always the Top Tiles nor the Tiles at the End of a Row.
Simply “watching the Movie” as the Tiles evaporate one by one, is quite intriguing.
The Mobile application is Read Only, it’s like downloading a video or reading a book. The Soothsayer already knows what will happen if you simply follow the beaten path, or perhaps take the Road Less Traveled and then use UnDo to get back to the beaten path.
Mahjong Tiles
An American Mahjong Tile set has 166 Tiles that measure 23mm x 30 mm.
108 Three Suits: Crak, Bam, and Dot, each with 9 quadruples.
16 Wind quadruples: East, South, West, and North
16 Season quadruples: Spring, Summer, Autumn, and Winter, which are often represented by
Lavender, Carnation, Sunflower, Red Rose12 Dragon quadruples: Red, Green and White (aka Blue or Soap)
Dragons are an American notion. The traditional tiles are
Benevolence, Wealth, and Piety8 Flower pairs: Plum Blossom, Orchid, Bamboo, and Chrysanthemum, but there are a LOT of variants. Very few sets use Bamboo, rather Chrysanthemums are slid into the 3rd position with Baby’s Breath (or some such) used in the 4th position
14 Jokers, which is also an American notion.
Power Users:
Folks who have some spreadsheet chops, and are intrigued by WHY some puzzles are so effective while other puzzles are dull and uninteresting, will be delighted that it’s so very easy to set up Interactive Tabletop Art that allows you to actually SEE AND FEEL what is going on, rather that the passive abstraction of dealing with a puzzle on a computer screen.
Power User will understand that we are NOT talking about a trivial puzzle. We’re taking about a sparce (10%) 18×18×5 Directed Acyclic Graph with 24 local and 3 global constraints. There are MILLIONS of solutions; and a million and a half traps. Traps come in two flavors:
Stacking Traps occur when a tile is covered by a tile in it’s own A1 A2 A3 A4 group, If you hastily play A1+A2 from the Quadruple, WITHOUT removing the A3 Covering Tile, you’re left with no way to remove the A3+A4 pair. The catch is that various groups can interlock, and intervening tile patterns are rather common.
Cyclic Traps occur when tiles in the same ROW have an A3 B3 A4 B4 relationship. If EITHER A1+A2 or B1+B2 have already been played, you’re dead. And, as you may have already realized, all of these traps can interlock.
A well designed, interesting puzzle, will TEMPT you to make a hasty, fatally wrong choice. Weaving your way through these pitfalls is the soul of the puzzle challenge.
Power User will also understand that we’re using TWO unorthodox points of view:
The spreadsheet considers tiles ONE at a time. An honest game will have a scoring pattern similar to 100,101, 200,201 300,301, but the pairing is an EXTERIOR Constraint. The pairing is not enforced by the spreadsheet. This allow experimentation: “I know I need to include THIS tile (200) but which one of the OTHER three tiles 201) will be the best choice?” Let’s try all three of the, and we’ll see. Perhaps well decide that 200 wasn’t such a great idea anyway, an that group is set aside to ripen for awhile.
Folks understand that a tile must be uncovered, and must have at least one side free, for the tile to be playable. The either-side rule drives the Optimization folks crazy because the solution set is NON-linear. BUT the flip side is that somebody is DOING the blocking, which IS linear, and THAT’S our focus. If you REMOVE the worse of the Bottlenecks, Voila!, you’ve also Revealed the greatest number of new Tiles. Degrees of Freedom Optimization is a very deep Rabbit Hole for Data Wonks, as we will discuss towards the end of this article.
But we use Spreadsheet Magic to take it one step further. We define priority as the MOST SEVER Bottleneck for ANY member of each Tile Group, and PRESTO! We can now sort TILE GROUPS by how much trouble they are causing, which is the flip side of WHERE can I get the most Bang! for the Buck?
Threshold Control is confusing if you try to overthink it. YourThreshold is simply a BOOKMARK for the Score Column or, to put it in programming lingo, YourThreshold is an INDEX for the Score Column. Tiles with a Score LOWER THAN the current YourThreshold have been “removed” from the puzzle, and they are ignored by the Charts and various computations. This approach allows up to present read only Movies on Mobile devices.
In the spreadsheet itself, we’ve provided a Heads Up Display for the control of YourThreshold, including an Auto Step function that’s similar to the Mobile Movie EXCEPT that ALL of the variables are recalculated for EVERY step. It’s very much NOT a Read Only application. The spreadsheet Heat Map is sensitive to BOTH YourThreshold AND the standard Filter/Sort, so it’s a wonderful way to spot data entry errors. The HUD is only 80 Pixels wide, and it fits nicely of over the (boring) coordinate columns that MUST be “displayed” so that the Heat Map will work.
For Heat Maps the vAxis and hAxis are obvious, but the Color and Size/Opacity are trickier.
Color is used to indicate the Layer of a Tile. Lower layers are loaded first (Layer ascending) and then overlaid by the higher layers. The mental picture is that you’re looking at the NORTH edge of the puzzle, where Layer 1 is obviously on the bottom.
For Mobile Devices, we use use the COLOR of the Lattice Cell background to indicate the Layer. Clicking on the Legend causes the associated layer to become transparent, even to tool tips, so you can look at Layer 1 by suppressing Layers 2 3 4 5.
ROWS
There’s nothing accidental about the 18×18×5 configuration that’s by far the most common footprint for Mahjong Solitaire Puzzles.
[--] [--]
[--][--] [--][--]
[--][--][--] [--][--][--]
[--][--][--][--][--][--][--][--]
[--][--][--][--][--][--][--][--][--]
Nine 2×2 Tiles, with an aspect ratio of 23:30, fit quite nicely on the screen of a mobile phone and, by staggering the Layers, TWO 5 Layer Pyramids can be accommodated. Note that the same pattern is available in BOTH directions, so you’re looking at FOUR Pyramids, or an entire zoo of lesser evils.
Row 1 is Tall and Skinny to accommodate full-sized Cell Phone images that have an aspect ratio of
9×20 (Samsung) or 9×19.5 (Apple). Row 1 also has a fair amount of tactical advice. The row 1 group takes up MOST of your desktop screen, to the group is collapsed most of the time.
The Cell Phone images are typically a pretty screenshot from the Mobile Application, top left to allow for a quick look at the puzzle.Row 2 contains Headers and Formulas. It’s frozen, and visible on all pages at all times. The standard filter steals the rightmost 18 pixels in EVERY Row2 Header Cell, which doesn’t leave much room for text, so most Row w Header Cells have a mouseover note. If you are brisk about clicking on the Filter hamburger icon, the Notes remain quite, but if you’re slow and sloppy the notes can be quite annoying.
Rows 3:1622 (inclusive) contain Tile Data. 18×18×5 = 1620 plus Row 1 and the Row 2 Headers.
We use the upper left corner of the 2×2 Mahjong Tiles as their their location (assigned address), and as a consequence neither Row 1 (the bottom row) nor Column 18 (the rightmost column) will ever be associated with an actual Tile.This allows us to “borrow” those cells for other purposes. YourThreshold and Size Clamps in particular.
$K$1622 is the home of YourThreshold. When you sort by Score every tile will a score LOWER than YourThreshold will be ignored (those Tiles will be flagged with a “.” suffix, while Scores GREATER THAN OR EQUAL TO YourThreshold will get the full treatment, and will be flagged with a “*”. The Threshold Control Widget is smart enough to skip to the previous (back) or next (next) Score. It’s is NOT incremental. The program is smart enough to jump directly to the previous or next.
Frankly, this is like trying to explain how to ride a bicycle. It’s easier done than said.
Left to it’s own devices, a Bubble Chart will automatically scale the bubbles to the BIGGEST value in the series. But we DO NOT want the Bubble to get larger and larger because the dangers have decreased, so we push ARTIFICAL clamps to the chart, 15 in all, three for each Layer
$H$1618:$H$1622 is the home for clampPriority
$I$1618:$I$1622 is the home for clampBottelneck
$J$1618:$J$1622 is the home for clampReveal
If you’re thinking locally, it’s common to call a Reveal a Block, but if you think globally, when a Blockage finally reaches 0 is NOT a blockage any more, it’s a Reveal, and
Reveals Make The World Go Round.
If you want to bend your mind a little bit, how would YOU add up the ZEROS to get a total count of the Reveals. Fun Times in River City.
(Continued on the Schema2 page)