SGTโ€SIXTEEN(6)

๐ŸŒธ sgt-sixteen(6) ๐ŸŒธ

okay so bestie, welcome to the Games section of the manual, where we're talking about sgt-sixteen โ€” and it is literally a whole vibe. Buckle up, this page is a long one, so we're doing it in parts. ๐ŸŽ€


โœจ NAME โœจ

sgt-sixteen โ€” a toroidal sliding block puzzle. ๐ŸŒ€


โœจ SYNOPSIS โœจ

sgt-sixteen [--generate n] [--print wxh [--with-solutions] [--scale n]
[--colour]] [game-parameters|game-ID|random-seed]

sgt-sixteen --version

โœจ DESCRIPTION โœจ

So it's another sliding tile puzzle, and visually it's giving major Fifteen energy (go look at sgt-fifteen(6) if you haven't ๐Ÿ’–) โ€” but the move type is completely different, and that's the whole plot twist.

Here's the tea: there is no hole. None. All 16 squares on the grid are full of numbered squares, every single one. So your move is to shift an entire row left or right, or shift an entire column up or down. And every time you do that, the tile you shove off the grid re-appears at the other end of that same row, right in the space you just vacated. Iconic behaviour honestly. ๐Ÿซถ

To win? Arrange the tiles into numerical order โ€” 1,2,3,4 on the top row, 13,14,15,16 on the bottom. And once you've done that, go try it on different sizes of grid, because why not. ๐Ÿ‘‘

Not me admitting this, but: the author might have invented this game personally, though only by accident if so (and they're sure other people have independently invented it too). They thought they were imitating a screensaver they'd seen, but they have a feeling the screensaver might actually have been a Fifteen-type puzzle rather than this slightly different kind. So this might be the one thing in their puzzle collection which represents creativity on their part rather than just engineering. ๐Ÿ˜ญ๐Ÿ’œ


๐ŸŽฎ Sixteen controls ๐ŸŽฎ

  • Left-click on an arrow and it'll move the appropriate row or column in the direction indicated. ๐Ÿฆ‹
  • Right-click and it moves it in the opposite direction. Yes, that's the whole trick.

Alternatively, use the cursor keys to move the position indicator around the edge of the grid, and use the return key to move the row/column in the direction indicated.

You can also move the tiles directly, which is the fancy way. Move the cursor onto a tile, hold Control and press an arrow key to move the tile under the cursor and move the cursor along with the tile. Or, hold Shift to move only the tile. Pressing Enter simulates holding down Control (press Enter again to release), while pressing Space simulates holding down shift. ๐ŸŒˆ

(All the actions described below are also available.)


๐ŸŽ€ Sixteen parameters ๐ŸŽ€

The parameters available from the Custom... option on the Type menu are:

  • Width and Height, which are self-explanatory. ๐Ÿ’…
  • You can ask for a limited shuffling operation to be performed on the grid. By default, Sixteen will shuffle the grid in such a way that any arrangement is about as probable as any other. You can override this by requesting a precise number of shuffling moves to be performed. Typically your aim is then to determine the precise set of shuffling moves and invert them exactly, so that you answer (say) a four-move shuffle with a four-move solution. Note that the more moves you ask for, the more likely it is that solutions shorter than the target length will turn out to be possible. ๐Ÿซ 

๐Ÿ’– Common actions ๐Ÿ’–

These actions are all available from the Game menu and via keyboard shortcuts, in addition to any game-specific actions.

(On Mac OS X, to conform with local user interface standards, these actions are situated on the File and Edit menus instead.)

  • New game (N, Ctrl+N) โ€” starts a new game, with a random initial state. Fresh start energy. โœจ
  • Restart game โ€” resets the current game to its initial state. (This can be undone, so don't panic.)
  • Load โ€” loads a saved game from a file on disk.
  • Save โ€” saves the current state of your game to a file on disk.

The Load and Save operations preserve your entire game history (so you can save, reload, and still Undo and Redo things you had done before saving). Obsessed. ๐ŸŽ€

  • Print โ€” where supported (currently only on Windows), brings up a dialog allowing you to print an arbitrary number of puzzles randomly generated from the current parameters, optionally including the current puzzle. (Only for puzzles which make sense to print, of course โ€“ it's hard to think of a sensible printable representation of Fifteen!) ๐Ÿ˜ญ
  • Undo (U, Ctrl+Z, Ctrl+_, *) โ€” undoes a single move. (You can undo moves back to the start of the session.)
  • Redo (R, Ctrl+R, #) โ€” redoes a previously undone move. ๐Ÿฆ‹
  • Copy โ€” copies the current state of your game to the clipboard in text format, so that you can paste it into (say) an e-mail client or a web message board if you're discussing the game with someone else. (Not all games support this feature.)
  • Solve โ€” transforms the puzzle instantly into its solved state. For some games (Cube) this feature is not supported at all because it is of no particular use. For other games (such as Pattern), the solved state can be used to give you information, if you can't see how a solution can exist at all or you want to know where you made a mistake. For still other games (such as Sixteen), automatic solution tells you nothing about how to get to the solution, but it does provide a useful way to get there quickly so that you can experiment with set-piece moves and transformations.

Some games (such as Solo) are capable of solving a game ID you have typed in from elsewhere. Other games (such as Rectangles) cannot solve a game ID they didn't invent themself, but when they did invent the game ID they know what the solution is already. Still other games (Pattern) can solve some external game IDs, but only if they aren't too difficult.

The Solve command adds the solved state to the end of the undo chain for the puzzle. In other words, if you want to go back to solving it yourself after seeing the answer, you can just press Undo. ๐Ÿ’œ

  • Quit (Q, Ctrl+Q) โ€” closes the application entirely. Say bye. ๐Ÿ‘‹
  • Preferences โ€” where supported, brings up a dialog allowing you to configure personal preferences about a particular game. Some of these preferences will be specific to a particular game; others will be common to all games.

One option common to all games allows you to turn off the one-key shortcuts like N for new game or Q for quit, so that there's less chance of hitting them by accident. You can still access the same shortcuts with the Ctrl key. ๐Ÿงš


๐Ÿ”ฅ Specifying games with the game ID ๐Ÿ”ฅ

There are two ways to save a game specification out of a puzzle and recreate it later, or recreate it in somebody else's copy of the same puzzle.

The Specific and Random Seed options from the Game menu (or the File menu, on Mac OS X) each show a piece of text (a game ID) which is sufficient to reconstruct precisely the same game at a later date.

You can enter either of these pieces of text back into the program (via the same Specific or Random Seed menu options) at a later point, and it will recreate the same game. You can also use either one as a command line argument (on Windows or Unix); see below for more detail.

The difference between the two forms is that a descriptive game ID is a literal description of the initial state of the game, whereas a random seed is just a piece of arbitrary text which was provided as input to the random number generator used to create the puzzle. This means that:

  • Descriptive game IDs tend to be longer in many puzzles (although some, such as Cube (sgt-cube(6)), only need very short descriptions). So a random seed is often a quicker way to note down the puzzle you're currently playing, or to tell it to somebody else so they can play the same one as you. ๐Ÿซถ
  • Any text at all is a valid random seed. The automatically generated ones are fifteen-digit numbers, but anything will do; you can type in your full name, or a word you just made up, and a valid puzzle will be generated from it. This provides a way for two or more people to race to complete the same puzzle: you think of a random seed, then everybody types it in at the same time, and nobody has an advantage due to having seen the generated puzzle before anybody else. ๐Ÿ
  • It is often possible to convert puzzles from other sources (such as nonograms or sudoku from newspapers) into descriptive game IDs suitable for use with these programs.
  • Random seeds are not guaranteed to produce the same result if you use them with a different version of the puzzle program. This is because the generation algorithm might have been improved or modified in later versions of the code, and will therefore produce a different result when given the same sequence of random numbers. Use a descriptive game ID if you aren't sure that it will be used on the same version of the program as yours.

(Use the About menu option to find out the version number of the program. Programs with the same version number running on different platforms should still be random-seed compatible.)

A descriptive game ID starts with a piece of text which encodes the parameters of the current game (such as grid size). Then there is a colon, and after that is the description of the game's initial state. A random seed starts with a similar string of parameters, but then it contains a hash sign followed by arbitrary data.

If you enter a descriptive game ID, the program will not be able to show you the random seed which generated it, since it wasn't generated from a random seed. If you enter a random seed, however, the program will be able to show you the descriptive game ID derived from that random seed. ๐Ÿ’…

Note that the game parameter strings are not always identical between the two forms. For some games, there will be parameter data provided with the random seed which is not included in the descriptive game ID. This is because that parameter information is only relevant when generating puzzle grids, and is not important when playing them. Thus, for example, the difficulty level in Solo (sgt-solo(6)) is not mentioned in the descriptive game ID.

These additional parameters are also not set permanently if you type in a game ID. For example, suppose you have Solo set to Advanced difficulty level, and then a friend wants your help with a Trivial puzzle; so the friend reads out a random seed specifying Trivial difficulty, and you type it in. The program will generate you the same Trivial grid which your friend was having trouble with, but once you have finished playing it, when you ask for a new game it will automatically go back to the Advanced difficulty which it was previously set on. ๐Ÿคฏ


โœจ The โ€˜Typeโ€™ Menu โœจ

If a โ€˜Typeโ€™ menu is even there, it might be holding a whole lil list of preset game settings. Pick one and boom โ€” you've just started a brand new random game with exactly the parameters that preset says. ๐ŸŽฒ

That same โ€˜Typeโ€™ menu can also come with a โ€˜Customโ€™ option, and that one lets you fine-tune your game parameters yourself. Which parameters you get is different for every single game, and they're all described in the sections below. Bestie, they're literally right there. ๐Ÿ‘‡


๐ŸŒธ Specifying Game Parameters on the Command Line ๐ŸŒธ

Heads up: this whole section does not apply to the Mac OS X version. ๐Ÿ™ˆ

So the games in this collection deliberately never save any info onto the computer they're running on. No high score tables, no saved preferences, nada. Why? Because the author expects at least some people to be playing them at work ๐Ÿ’€ and those people will probably appreciate leaving as little evidence as possible! ๐Ÿ•ต๏ธโ€โ™€๏ธ

BUT. If you do want one of these games to default to some particular set of parameters, you can totally specify them on the command line. Slay.

The easiest way to do this: set up the parameters you want using the โ€˜Typeโ€™ menu (see above), then select โ€˜Random Seedโ€™ from the โ€˜Gameโ€™ or โ€˜Fileโ€™ menu (also see above). The text sitting in the โ€˜Game IDโ€™ box will be made of two parts, separated by a hash. The first part is the one that represents your game parameters (like the size of the playing area, for example, plus anything else you set with the โ€˜Typeโ€™ menu).

If you run the game with just that parameter text on the command line, it'll start up with the settings you specified. Iconic behaviour, honestly. ๐Ÿ’…

For example: if you run Cube (see sgt-cube(6)), select โ€˜Octahedronโ€™ from the โ€˜Typeโ€™ menu, and then go to the game ID selection, you'll see a string of the form:

o2x2#338686542711620

Take only the part before the hash (o2x2), and start Cube with that text on the command line:

sgt-cube o2x2

If you copy the entire game ID onto the command line, the game starts up in that specific game that was described. Sometimes that's just a more convenient way to start a particular game ID than pasting it into the game ID selection box. Convenience queen. ๐Ÿ‘‘

(You could also retrieve the encoded game parameters using the โ€˜Specificโ€™ menu option instead of โ€˜Random Seedโ€™, but if you do it that way then some options โ€” like the difficulty level in Solo โ€” will be missing. See above for more deets on that.)


๐Ÿงš Unix Command-Line Options ๐Ÿงš

This section only applies to the Unix port, bestie.

On top of being able to specify game parameters on the command line (see above, always above), there's a whole bunch of other options:

  • --game
  • --load โ€” these two respectivley decide whether the command-line argument is treated as specifying game parameters, or as a save file to load. Only one of them should be specified. If you specify neither, the game makes a guess based on the format of the argument. ๐Ÿคทโ€โ™€๏ธ
  • --generate n โ€” if this one's specified, then instead of a puzzle being displayed, a number of descriptive game IDs get invented and printed on standard output. Super useful for getting at the game generation algorithms without necessarily using the frontend. If game parameters are specified on the command-line, those get used to generate the game IDs; otherwise a default set of parameters gets used. The most common use of this option is in conjunction with --print, in which case its behaviour is slightly different; see below. ๐Ÿ‘€
  • --delete-prefs โ€” this option makes the puzzle delete the configuration file where its user preferences were stored, if there is one. Poof. Gone. ๐Ÿซฅ
  • --print wxh โ€” if this is specified, then instead of a puzzle being displayed, a printed representation of one or more unsolved puzzles gets sent to standard output, in PostScript format. On each page of puzzles, there will be w across and h down. If there are more puzzles than wร—*h*, more than one page gets printed. If --generate has also been specified, the invented game IDs get used to generate the printed output. Otherwise, a list of game IDs is expected on standard input (and those can be descriptive or random seeds; see above), in the same format produced by --generate. For example:
sgt-net --generate 12 --print 2x3 7x7w | lpr

will generate two pages of printed Net puzzles (each of which will have a 7ร—7 wrapping grid), and pipe the output to the lpr command, which on many systems will send them to an actual printer. ๐Ÿ–จ๏ธโœจ There are various other options which affect printing; see below.

  • --save file-prefix [ --save-suffix file-suffix ] โ€” if this is specified, then instead of a puzzle being displayed, saved-game files for one or more unsolved puzzles get written to files constructed from the supplied prefix and/or suffix. If --generate has also been specified, the invented game IDs get used to generate the printed output. Otherwise, a list of game IDs is expected on standard input (and those can be descriptive or random seeds; see above), in the same format produced by --generate. For example:
sgt-net --generate 12 --save game --save-suffix .sav

will generate twelve Net saved-game files with the names game0.sav to game11.sav. Obsessed. ๐Ÿ’พ

  • --version โ€” prints version information about the game, and then quits.

The following options are only meaningful if --print is also specified:

  • --with-solutions โ€” the set of pages filled with unsolved puzzles gets followed by the solutions to those puzzles. ๐Ÿ™ˆ
  • --scale n โ€” adjusts how big each puzzle is when printed. Larger numbers make puzzles bigger; the default is 1.0.
  • --colour โ€” puzzles get printed in colour, rather than in black and white (if supported by the puzzle). ๐ŸŒˆ

๐Ÿ‘‘ SEE ALSO ๐Ÿ‘‘

Full documentation in /usr/share/doc/sgt-puzzles/puzzles.txt.gz.


and that's a wrap, bestie ๐ŸŽ€ this was sgt-sixteen from the sgt-puzzles collection, dated July 2025 โ€” go read the full page, ily, mwah ๐Ÿ’–โœจ๐Ÿฆ‹

๐Ÿ“ฆ where this page comes from