Sparrow Solitaire

From Playdate Community Wiki
Revision as of 18:57, 11 April 2023 by Madvogel (talk | contribs)
Jump to: navigation, search
Sparrow Solitaire logo
Released on 2023-04-11
Made by Mac & Matt
Download: https://play.date/games/sparrow-solitaire/
17.8 MB



Sparrow Solitaire takes the classic tile-matching puzzle game mahjong solitaire, and reimagines it from the ground-up for Playdate. With simple rules and plenty of customizable options, the game is accessible to both new players and veterans of the genre.

The game is available on Catalog and itch.io for $10. There is also a free demo on the itch site.

Since the game is packed with features, this wiki page serves as a full user guide that goes into detail on each area beyond what is included in the in-game manual.

Gameplay

The goal of mahjong solitaire is simple: remove all the tiles by matching pairs of two. Tiles with the same face design will always match, yet there are a few tiles that have different faces and still match. These belong to the "seasons" and "flowers" suits, and are denoted in the game with black and white corner dots. (custom tilesets may use a different theme, but the suit names come from the traditional tileset).

The two most common variants of the game are "classic" and "shisen-sho". These variants change the requirements for a tile to be removed.

Classic

Example for classic layouts
Shaded tiles are not free and cant be matched

To remove a tile, it must be free: this means it needs empty space on the left and right, and no tile can be sitting on top. Matching pairs anywhere on the board can be selected and cleared if they are both free.

Shisen-sho

The lines show how the two tiles must connect to be matched

Sometimes called "Four Rivers" or "Rivers", this variant is a bit more complicated. The two matching tiles must be be capable of being connected by up to three horizontal or vertical lines which pass only through empty spaces. Both tiles must be on the same layer, but otherwise can be anywhere in the layout.

Adjacent matching tiles can also be removed, as a single line passing through no other tiles connects them.

Controls

Hold B to access more functions like hint, undo, redo, and reset.
  • D-pad to move the cursor (see cursor options below)
  • A to select a tile, click again to deselect the same tile
  • B to deselect last tile (or zoom toggle - see options)
  • Crank to cycle between free tiles (or zoom or undo/redo - see options)
  • Hold B and for a sub-menu that houses hint, undo, redo, and reset functions. Press one of the four directions to activate the sub function.
  • Shake the Playdate up to once per game to shuffle all tiles and get out of a tricky situation.

Hints

Hold B and then press up to see a hint. The hint flashes two or more matching tiles that are able to be cleared. While tiles are flashing, you may use the crank to cycle to further sets of matching tiles (if any exist). In shisen-sho, only one hint is shown regardless of how many other matches may be available. This is to balance the loading time needed to calculate extra valid moves.

A few important things about hints:

  1. A hint only shows an available move, not necessarily the best move. Use at your own discretion!
  2. Each unique hint seen deducts 150 points from your score! You can view the same hint multiple times without additional penalty.
  3. Using "undo" counts as a hint since you can use it to peak at tiles underneath, and will also deduct 150 points, unless that move is immediately "redone".

Stats

SS DetailedStats.png

Sparrow Solitaire features a robust stat tracking system that tracks your scores and times per layout and also provides aggregate stats across all layouts.

View a summary of the current layout's stats by pressing the system menu during a layout, or view a more detailed page by pressing B on a layout in the layout select. The detailed view tracks your top 5 scores, your best clear time, average score and clear time, score history over attempts, and your average score in the last 5 plays. It also shows overall winrate and playtime on the layout.

SS AlltimeStats.png

To see your All-time Stats across all layouts, open the pause menu while on the Layout Select. Your favorite layout is the one with the most plays, and the the top win rate layout is the one with the highest win rate with at least 3 plays.

Scoring

The scoring system was designed in a way that is roughly normalized between different layouts. Scores tend to be in the 1000-2500 range, with 3000+ being an exceptional result. The two biggest factors in your score are clear percent and time.

Tiles Cleared Component

For every 1% of the layout cleared, you earn 10 points up to 1000 max. If you win the layout by clearing all tiles, you get an additional 500 point clear bonus.

Time Component

The time component is much more complex. Each layout has an internally calculated "target time" based solely on the size of the layout (number of tiles). The formula for target time given layout size is shown as a graph below: it is an S-shaped 4-th degree polynomial with a linear component at 40 tiles and below. We chose this function because layouts under 70 or so tiles are pretty quick to clear, but as number of tiles increases, the amount of time it takes exponentially increases. After a certain point, the curve flattens out (for example, 132 tile layouts aren't that much quicker than 144).

Target time in minutes (y axis) given number of tiles (x axis)

Given the target time, the time component of your score is: <target time>/<actual time> * <clear percent> * 1000. We want to award 1000 points for meeting the target time exactly, and more if it is exceed. <target time>/<actual time> gives a degree to which the time exceeded or fell short of the target: if you were twice as fast, you get a 2x multiplier, but if you took twice as long, you get a 0.5x multiplier. The 1000 base points are further multiplied by the clear percent, as the target time is based on the time to clear a full layout, and not a portion of it.

Although the target time is an internal value, you can get a rough estimate of how close you were to it by how close the time component of your score is to 1000 (assuming you completed the layout). If you hit 1000 or higher, you were right on target!

Penalties

150 points are deduced from the score for each hint or undo used. Undo penalties are negated if you change your mind and use redo immediately after, and each hint seen is uniquely tracked so you can view the same hint multiple times without additional penalty.

Strategy

Mahjong solitaire is a simple and relaxing game, but still has some depth. Since each tile face has four copies, there are multiple ways you can select pairs (assuming all are free). For example, if three of the same face are free, you can select A/B, B/C, or A/C. Carefully consider which pair to remove; keeping in mind which tiles may be unblocked by each tile, and how many copies of each face are remaining. If four faces of a tile are free, you are always safe to remove all of them! The wrong move can make a layout un-winnable, but the "shake to shuffle all faces" feature is always there as a last-resort option.

Another key strategy tip is to work backwards. In Shisen-sho especially, you may see ahead of time that a certain pair needs to be specifically matched together before you can win. Work backwards from everything blocking that pair in order to "dig" it out!

Note: By default, Classic layouts are dealt in a way that guarantees a solution (the guarantee is lost if "shake to shuffle" is used mid-way through a layout). This is not the case for Shisen-sho, as the calculation time would be too high to pre-solve the layout. However, randomly-dealt Shisen-sho layouts tend to be solvable more often than not (with the exception of a few more challenging layouts like Question Block). The "shake to shuffle" feature is available once per game to give you an extra chance on those tough layouts!

Layout Select

Layout select overview screen
Layout select overview screen

The Layout Select is a powerful menu designed to make it easy to find one of the 200+ layouts to play. Of course it supports scrolling up and down with the D-pad or Crank, but you what you may not know:

  • Press Right to jump to the next category
  • Press Left to jump to the top of the current category. If already at the top, jumps to the previous category.
  • Hold Left to jump to the top of the list (overview section).
  • Hold Right to jump to the bottom of the list (user layouts).

The Overview section at the top of the list has options for random layouts, daily, 2P mode, and sorting. Layout sorting is always done within category, but the setting is preserved across game loads and the index is automatically updated when new plays are tracked.

Layout screen
Layout overview screen

If a layout is selected, a thumbnail along with a few summary stats are shown. High score, plays, number of tiles, and an icon for "Classic" or "Shisen-sho" if it's a user layout. You can Press B for more detailed stats.

Play Modes

Aside from the standard solitaire gameplay, you can also play a 2P challenge or attempt the Daily Layout each day.

Two Player

Every layout can be played in two player: toggle it on at the top of the Layout Select. Two player sessions are not preserved if the game is reloaded (but any progress on the layout will remain as usual).

Rules:

  • Players take turns clearing pairs.
  • A player will randomly be chosen as start player, and they take the first turn.
  • A turn lasts 10 seconds (by default) or until a match is made. If no match is found within the time limit, that player's turn is forfeited.
  • The game ends when the layout is solved or there are no more available moves. The player who cleared the most tiles wins! In case of a tie, the player who cleared the tiles the fastest wins.
  • In some cases, the game may end without both players getting the same number of turns (i.e. if the game ends in 5 turns, the first player will have gotten an extra turn). In this situation, the tiles removed and time taken on the last turn are subtracted from the player with the extra turn.

The time limit on each turn is configurable per player, or can be removed entirely. Press B while selecting the Two player toggle switch to adjust these settings. The 2P scoreboard can also be reset from this submenu

Daily Layout

Each day, attempt the Daily Layout as many times as you want until you clear it. The exact arrangement of tiles, as well as the layout, is the same for everyone on each attempt. Resetting an in progress session will count as an attempt as long as you have cleared 2 or more tiles. If not, a reset will simply give you the exact same arrangement of faces as before.

After each attempt, a QR code is generated on the Layout Select screen. Scan this code to easily copy or share your score on social media! The web app that displays your scores also assigns a rank:

  • 0-499: 🗿 rank
  • 500-999:
  • 1000-1499: not bad
  • 1500-1999: typical range
  • 2000-2499: good
  • 2500-2999: great
  • 3000: 🤖 rank

We considered using an online leaderboard for this Daily Layout, but there is currently no way to automatically reset a leaderboard daily.

Options

Many of the options in the game are self-explanatory or described with tooltips. But there are a few specific settings that we'd like to highlight further here.

Favoriting

You can toggle favorite tilesets, backgrounds, or music tracks by pressing the A button while the option is selected. Favorites are used when randomly picking an option, either with the "Random Theme", shake to randomize, or in the Autoplay=shuffle option for music. If no favorites are selected for a particular option, all of the choices are used in the randomizer instead.

Randomizers

Shake the Playdate while the options menu is open to get a random theme! A "theme" is a combination of music, background, and tileset. You can also use the "Randomize Theme" option to automatically get a random theme when selecting a new layout. If you don't want to change all three, you select which of the three theme components are randomized in that setting too. If you have picked some favorite music tracks, tilesets, or backgrounds, only those favorites will be pulled from for a random theme.

Controls

The crank has three possible functions in this game. It defaults to cycling between free tiles, which is helpful especially in the "grid" cursor mode. You can also set it to "undo/redo" which behaves as you would expect: crank backwards to undo moves, and crank forwards to redo moves. The "Zoom" option in the ACCESSIBILITY section may override either of the crank functions, if you have "Zoom" set to "with crank".

The cursor has three modes: grid, free tiles, and all tiles. In grid mode (default), the cursor snaps to the grid of the layout, but only snaps to specific tiles if they are nearby. This means you can move the cursor "off the layout" or attempt to select tiles that aren't selectable. This mode is default as it behaves the most like a normal cursor, yet it still has some intelligent logic built in to automatically snap to nearby tiles or wrap around the bounds of the layout.

The other two cursor modes are free tiles or all tiles. These two modes keep the cursor on the layout, and only let it snap between free tiles only, or all tiles (on the top layer). This mode makes navigating gaps in the layout a lot faster, as the cursor follows the tile topography rather than the grid, but the tradeoff is occasional unexpected behaviors in the direction it navigates. For example, pressing up on the D-pad may not always take you straight up, instead it may snap the cursor to a tile that is higher up but offset to the right. In these two modes, the cursor will sometimes jump to a "phantom point" on the grid instead of a tile. This is not a bug, but rather a strategic anchor point that can help navigate to particularly mis-aligned tiles.

For new players, we recommend grid cursor since it has the most expected behavior. However, if you learn the quirks of the other two modes, it can become a lot faster to navigate the layout. For more information on cursor modes, see this blog post.

Layout Editor