NAME
4s, 5s, blabs, catclock, doom, festoon, geigerstats, glendy, juggle, life, mandel, mahjongg, memo, midi, mole, packet, sokoban, sudoku – time wasters

SYNOPSIS
games/4s
games/5s
games/blabs
[ –i ] [ –k k–floor ] [ –n track–length ] [ –w track–width ] [ –x gravity–x ] [ –y gravity–y ]
games/catclock
games/doom
games/festoon
[ –pet ] [ sentences [ percent–invented–nouns ] ]
games/geigerstats [ –d dev ] [ –v vol ]
games/glendy
games/juggle
[ –d delay ] [ –h hands ] [ start ] pattern
games/life [ –3 ] [ –o ] [ –d delay ] [ –r rules ] [ –b ] startfile
games/mandel
games/mahjongg
[ –c ] [ –f ] [ –b background ] [ –t tileset ] [ –l layout ]
games/memo [ –h ]
games/midi [ –c ] [ midifile ]
games/mole
games/packet
[ –n nnode ] [ –o speed–offset ] [ –d decay ] [ –b speed–bonus ] [ –r regen–rate ] [ –t thick–factor ] [ –T display–threshold ]
games/sokoban [ level ]
games/sudoku

DESCRIPTION
There are a few games in /bin/games:
4s, 5s      Try to fill complete rows using 4–square or 5–square tiles. Move tiles left or right by moving the mouse. Rotate tiles with buttons 1 and 3. Drop tiles for more points with button 2 or the space bar. Keys a and j move left, s and k rotate left, d and l rotate right, f and ; move right. z, p and Esc
toggle suspend/resume. q, Del and control–D quit.
doom       This is a port of id Software's DOOM I and II engine. In DOOM, players assume the role of a space marine, who became popularly known as "Doomguy", fighting their way through hordes of invading demons from Hell. Game data (WAD–files) for doom are not part of the distribution, but free WAD–files,
like the shareware version, can be obtained on the net.
festoon    Generate an official–looking but utterly nonsensical bureaucratic report as pic | eqn | tbl | troff –mm input. Options –p, –e and –t add gibberish diagrams, equations and tables.
glendy     Don't let the rabbit escape. Button 2 presents a menu that you can set the difficulty level from. Button 3 presents a menu that you can either play a new game, reset the game or exit.
juggle     Display the juggling pattern using the optional initial start pattern. The number of hands involved (default 2) can be specified with –h, and delay can be used to speed up or slow down the action (default is 20). Try the pattern 333333441333333 or 333353505151512333333 or YWUSQOMKIGECA (see
http://seehuhn.de/jong/theory.html).
life       Play the game of Life, given an initial position. There is a library of interesting initial positions; the library is consulted if startfile cannot be found. The –3 and –o options select between rules known as 34–life and lineosc, while –o allows specifying the rules explicitly as an argument. The –d option
allows specifying the delay in milliseconds between steps, and –b reverses the color scheme.
mahjongg   Remove all tiles from the board. Click on tiles with the same face that are not blocked by others. A blocked tile is one that is partially or fully covered on top or has neighbouring tiles to the left and right. The game finishes when either all tiles are gone or there are no more moves left. The arguments are
for changing background (–b), tile (–t) and layout (–l) images; –c selects a true–color buffer image, for use with drawterm or in case selecting a tile obscures it completely; –f causes mahjongg to indicate non–blocked tiles on mouse–over. The N key will generate a new level, R restarts the current one. Q and Del quit, H gives a hint, either trying to match the currently selected tile, or if no tile is selected finding out the first available tile. U and Bksp undo the last move, C tries to solve the level.
memo       Remove all tiles from the board. At first, pictures of various Bell Labs employees, Lucent Technologies' logo, and Glenda will appear. Memorize the sequence, then click to hide them and begin. Use the mouse to select two tiles. If they are the same, the tiles will disappear, otherwise the tiles will flip back
and you will get a chance to try again. Button 3 generates a menu allowing you to restart, switch between easy and hard modes, and exit. The –h option sets the game to hard mode. Once the game has been completed, a message pops up with how long it took to win. Use the button 3 menu to choose a mode, or click to play again.
mole       A molecular dynamics simulation based on the Lennard–Jones potential. r restarts the simulation. f redraws the screen. R reverses the simulation. q and Del quit the simulation.
sokoban    Guide Glenda through a room full of walls, pebbles and holes to put the pebbles in. Your goal is to arrange all pebbles into holes by pushing them around, but you can only push a pebble if there is no wall or another pebble blocking the way. Arrow keys move Glenda up–down–left–right. N and P keys
switch between the next and previous levels, R restarts the current level. Del and Q quit. Button 3 invokes a menu to restart the current level, load different level sets, and en– and disable animation of multi–step moves. Button 2 lets you change between levels. Button 1 lets you do multi–step moves and pushes, by clicking it on the destination where you want Glenda to go. Glenda will only move if it can reach the destination. For a multi–step push the pebble must be next to Glenda, the destination must be on the same row or column, and there must be a free place next to the destination where the pebble can be pushed to. Otherwise, if possible, Glenda will walk to the destination without pushing the pebble. Sokoban accepts a level file as its argument.
sudoku     Sudoku is a puzzle game from Japan. The goal of the game is to fill the numbers 1 to 9 in all squares of the 9x9 board following a few simple rules: no digit should repeat on the same row and column, and no digit should repeat in the same 3x3 boxes outlined with thicker lines. The board is initially
filled with a partial solution which can be used for inferring digits for the empty squares. The top row of the board contains the digits 1 through 9, clicking on one of those digits selects that number for placement on the board, clicking it again will deselect that digit. Clicking on an empty square will then affix the square with the selected digit or, if no digit is selected empty the square.
Button 3 presents a menu with the following options:
New      autogenerate a new, random board
Check    mark in red any digits not placed according to the rules
Solve    present the board's solution
Clear    clear the board to its starting (or last loaded) state
Save     save the current board to /tmp/sudoku–save
Load     
load the last saved board from /tmp/sudoku–save
Print    
print the current board and solution in a format suitable for addition in the sudoku library to /tmp/sudoku–board
Offline
pretty–print the board for off–line solving to /tmp/sudoku–print
Exit     
quit the game
Button 2 presents a list of sudoku boards of varying degrees of difficulty from /sys/games/lib/sudoku/boards.
Pressing the Q key quits sudoku.

FILES
/sys/games/lib/[45]scores   score files of 4s and 5s
/sys/games/lib/life/*       interesting starting positions
/sys/games/lib/mahjongg/*   image sprites, levels and backgrounds used by mahjongg
/lib/face/*                tiles for memo
/sys/games/lib/sokoban/*    image sprites and levels used by sokoban
/sys/games/lib/sudoku/*     images and boards used by sudoku
$home/lib/doom/*
/sys/lib/doom/*
/sys/games/lib/doom/*       
doom WAD–files.

SOURCE
/sys/src/games

BUGS
In 4s and 5s, mouse warping (when the game is resumed, and when a new tile appears) does not happen when the mouse cursor is outside the game window. Those who prefer to use the keyboard without the mouse cursor blocking the view (or being warped all the time) may consider this a feature.

HISTORY
Doom first appeared in 9front (May, 2011).
Packet first appeared in 9front (August, 2011).