SPROUTS v. 205
Introductory Video User’s Guide Technical Information
Size
Code
Not connected.
Automatically, when a move does not fit:
MARZ•
Human
Computer

Keyboard Commands

Space returns to the drawing.

Game
1 … 9New game with that many spots, in the Game menu’s layout
0Blank window: place the spots by clicking
NNew game (while placing spots: start the game from them; with the Random or Place by hand layout, or after Load game: the same seeds as before)
EnterStart the game from the spots placed; draw a move the shortest way when its marks cannot be applied
UUndo the last move
< >Back / forward through the game one move at a time
SpaceStop what is under way: the computer’s thinking, A, R, Z, making room, finding a way, a move begun by clicking. Between two computers: stop the game after the move being drawn; again: continue
XExit (close the page)
Drawing
MMake room for a move that does not fit
DDraw a move refused for lack of room again, in the drawing as it is now
AAdjust the drawing
RRearrange the drawing
ZDraw the picture afresh
.Draw the picture afresh, spots smaller where there is no room
View
FFull screen
CControl polygons
SSpot indices
TInitial seeds as triangles
GNo indices at stumps
/No indices at seeds
HStumps half size
QShow the size of the drawing area (in pixels) on the status line
YWindow of its own (resizable by Game → Size) / back to a browser tab
File and Help
PSave the picture as PNG
K or ?This list
With the mouse
Click, clickConnect two spots (Click to connect, Settings menu)
DragDraw a curve by hand from spot to spot
Right-click or Shift+clickAfter the first click: mark spots the curve is to enclose
Ctrl+clickAdd a seed where one fits
Ctrl+dragMove a spot
Help. The introductory video, the User’s Guide, the Technical Information, and the list of keyboard commands. The video and the guides open in a new tab, so the game in this one stays as it is.
Introductory Video. A video on YouTube introducing Sprouts and this program. Opens in a new tab.
User’s Guide. How to play Sprouts with this program: the rules, making moves with the mouse, the menus and the keys. Opens in a new tab.
Technical Information. What the program does inside: how a position is read off the picture, how a curve is routed, smoothed and checked, the kinds of room-making, how the computer players think, and two-computer play — with links to the papers used. Opens in a new tab.
Keyboard Commands K or ?. A list of every key and mouse action, shown over the drawing. Space, K or ? closes it; while it shows, the other keys are ignored.
Workers. How many parallel processes the program uses for the computer players and for drawing the picture afresh (Z). The title shows the number chosen.
Workers. Parallel processes for the computer players (Monte Carlo, parity search) and for Z, which tries a layout per region at the same time. The default is what this machine has (its logical processors). More let the computer look further in the same time; fewer leave more of the machine to other programs. Workers need the page to be opened through a web server (http://…); opened as a file, everything runs on the page itself.
Game. The number of spots, how they are laid out and the rules of a new game; new game, undo, exit.
Spots. How many spots a new game starts with. There is no upper limit; the program says when a move cannot be drawn in the room there is. Before the first move a change shows at once. The keys 1 … 9 set it and start a new game. Not used with Place by hand.
Layout of the spots of a new game.
  • Ellipse: evenly spaced around an ellipse shaped like the window (one spot: in the center).
  • Circle: evenly spaced around a circle.
  • Line: evenly spaced along a line through the middle of the window, the long way.
  • Random: anywhere, apart from each other.
  • Place by hand: a blank window; click to place the spots, then Enter or N starts the game (key 0).
Before the first move a change shows at once.
Random seed. Empty: the random layout, the Random player and the tie-breaks among equally good moves are different every time. A number: they are repeatable — the same seed, number of spots and settings give the same spots and the same moves, game after game (the generator starts afresh with every new game). Monte Carlo’s random games are not covered, so a Monte Carlo player can still vary.
Rules. Normal play: whoever cannot move loses, so the last to move wins. Misère: whoever cannot move wins, so the last to move loses. It can be changed during a game; the computer players use it from their next move.
Size of the drawing area, in pixels. The window grows or shrinks so that the drawing area gets the size chosen, and stays resizable by hand. A browser lets a page resize its own window only when the page has a window of its own — in Chrome, a shortcut made with Install page as app or Create shortcut… (Open as window) — and the window is neither maximized nor in full screen; in an ordinary tab the drawing area is set to the size inside the window instead, with the page’s dark background around it, and resizing the window by hand lets the drawing area fill the window again. Before the first move a new size lays the spots out afresh; later the picture is only scaled.
Width and Height of the drawing area, in pixels: they show its present size. Type a size and press Enter or click Set.
Set. Gives the drawing area the width and height typed in the two fields. If the screen has no room for it, it gets the most there is room for, and the status row says so.
A fixed size of the drawing area, in pixels (width x height). 1090 x 607 is the size most of the program was developed and tested in.
Max square. The largest square drawing area there is room for: the screen’s, when the window can be resized, else the window’s.
Full screen. The page fills the screen, as with F (View menu); F or Esc leaves it.
New game N. Starts a new game with the Spots, Layout and Rules above. With the Random and Place by hand layouts, and after a game was loaded from a file, the game starts from the same seeds as the game before (a change of the Spots or Layout fields, or the keys 1 … 9 and 0, lay them out anew). While spots are being placed by hand it starts the game from them instead. 1 … 9: a new game with that many spots in the chosen layout. 0: a blank window, spots placed by hand (Layout becomes Place by hand); Enter or N starts the game from them.
Undo move U. Takes back the last move, with any room made for it. Against the computer it goes back to your turn. Over the net either player may undo; it takes back the last move whoever made it, on both computers. < / >: back / forward through the game one move at a time, the computer’s moves too. Meanwhile the computer waits; make a move anywhere (also in the computer’s place) and the game goes on from there.
Exit X. Closes the page (and leaves a network game). A browser lets a page close itself only when it was opened on its own, e.g. from a desktop shortcut; otherwise the status line says how to close it.
Player 1 moves first; its curves have the color Colors → Player 1 curves. Human, or one of the computer players, with its settings.
Player 2 moves second; its curves have the color Colors → Player 2 curves. Human, or one of the computer players, with its settings.
Plays. Who makes this player’s moves.
  • Human: you, with the mouse.
  • Random: any legal move.
  • Monte Carlo: the move after which the set number of random games (or as many as the seconds allow) goes best for it.
  • Fast parity search: the move that keeps the number of moves left at the parity it wants (odd in normal play, even in misère), looking the set number of moves ahead — or as far as the seconds allow, one move deeper at a time. Where it stops looking it judges a position by an upper bound on the moves left. Near the end it plays exactly and says who has a winning position.
  • Sharp parity search: the same, but where it stops looking it judges a position by the longest game that can really be played from it (M in the title) — worked out as far as the seconds allow, else the bound. Truer judgments, at a cost; since the bound is usually exact already, the two mostly agree.
A computer player chooses its move from the position alone, then the drawing is made to fit it (Room menu). It moves as soon as it is its turn; Space interrupts its thinking, Human here stops it. Between two computers Space stops the game after the move being drawn; Space again continues it, N starts a new game. Over the net only humans play.
Same as the other player. Copies the other player’s kind and settings (games or seconds, depth or seconds) to this one.
Random games per move (Monte Carlo). How many random games are played out after each candidate move; the move with the best results is chosen. More games: stronger, slower. Filling in this field empties the seconds below it, and the other way round.
… or seconds per move (Monte Carlo). Plays random games after the candidate moves for this long, instead of a fixed number of games. Filling in this field empties the number of games above it, and the other way round.
Search depth (parity search). How many moves ahead the search looks. Deeper: stronger, and much slower in a large position. Filling in this field empties the seconds below it, and the other way round.
… or seconds per move (parity search). Searches one move deeper at a time for as long as this allows, and plays the best move of the deepest search finished. Filling in this field empties the depth above it, and the other way round.
Net: play against someone on another computer. One of you clicks Host; the three-digit code appears in the field, and the other types it in and clicks Join. The host is Player 1 and starts the games; either may undo (U takes back the last move, whoever made it). Only the moves travel: each computer draws its own picture, with its own settings, colors, A and R. Your page has the Background while computing color (Colors menu) while it is not your turn.
Host a game. Opens a game room and shows its three-digit code in the Code field. Give the code to the other player, who joins as guest. As host you are Player 1 and start the games (N, Game menu); both players are human.
Code. The room’s three-digit number: shown here when you host; typed in here by the guest before Join as guest.
Join as guest. Joins the host’s game with the code typed in the field. The guest is Player 2; the host starts the games.
Leave. Ends the connection to the other computer; the game stays on your screen and the player menus are free again.
View. Full screen; what the drawing shows besides the curves and spots (control polygons, spot indices); how initial seeds and stumps are drawn; the size of the drawing area. A checked box means the option is on.
Full screen F. The page fills the screen; F again, unchecking the box or Esc leaves it. The box is checked whenever the page fills the screen — also when the browser itself is in full screen (F11, or started that way); then the status line says to press F11 to leave it. The drawing scales with the window.
Control polygons C. Shows, in gray, the control polygon of every cubic piece of every curve — the points that define the spline curves.
Spot indices S. Shows each spot’s index, from 1 in the order the spots were made. The log and the status line name spots and curves by these indices (“the curve 1-7-2”).
Size of the drawing area Q. Shows the drawing area’s width and height in pixels on the status line (W x H). The status line also says it whenever the window changes size. Useful when comparing games played in different windows: the larger the area, the more spots fit.
Window of its own Y. Switches between an ordinary browser tab and a window of the game’s own, without the browser’s tabs, toolbar and bookmarks (only its read-only address line). The game moves as it is — with its undo history, settings, colors, players and log — and the window or tab it leaves closes itself (or, where the browser does not allow that, shows a note). The box is checked while the game has a window of its own; there Game → Size can resize the window itself, which a tab does not allow. If the browser blocks pop-up windows for this page, allow them and press Y again.
Settings. How curves are drawn (clearance, comfort, room against length), the sizes of spots, curves and indices, animation, and clicking to connect. They are saved with a game, as are the View menu’s spot options.
Minimum clearance. The least distance a new curve must keep from every other curve, every spot and the edge of the window. Larger: a roomier, clearer picture, but moves run out of room sooner. It counts for moves made from now on; when a move does not fit, the message compares the widest way there with it.
Comfort distance. The distance at which a curve stops feeling its neighbors much. Curves are pushed apart more strongly closer than this, gently beyond it, so a new curve settles in the middle of the room it has. It also sets the spacing of the points used by A, R and Z.
Room vs length. How much a curve’s room counts against its length when it is shaped (the slider is the power of ten of the weight: 0 means equal weight, −1 a tenth, 1 ten times). Higher: curves bow away from their neighbors into the middle of the space. Lower: shorter, straighter curves that pass closer to things.
Spot size, shown as the spots’ diameter. The spot is also the disc that curves keep clear of, so a change counts for moves made from now on; curves already drawn stay (A adjusts them). A new game in a drawing area of a new size sets it to 1/70 of the area’s mean size (width plus height, halved), within the slider’s range; a new game in the same area leaves it as you set it.
Curve thickness, shown in pixels. Changes the picture at once. Stays as you set it; a new game does not change it.
Index size of the spot indices (View → Spot indices), shown in pixels. A new game in a drawing area of a new size sets it to 1/50 of the area’s mean size (width plus height, halved), within the slider’s range; a new game in the same area leaves it as you set it.
Animate. On: you see a new curve settle into its shape, and A, R and Z at work, as it happens. Off: only the result is shown, a little sooner.
Click to connect. On: a move can be made by clicking a spot and then the spot to connect it to (right-click or Shift+click in between marks spots the curve is to enclose). Off: moves are made only by dragging from spot to spot. Turning it off cancels a move begun by a click.
Initial seeds as triangles T. Draws the spots the game started with (and any seeds added by hand) as triangles, whatever they have become, so they stand out from the spots made by moves.
No indices at stumps G. With spot indices shown, leaves them off the stumps: the spots that already have three curves (no lives left), which no longer matter for the game.
No indices at seeds /. With spot indices shown, leaves them off the seeds: the spots with no curves yet, which in a game with many seeds are many and need no name until a curve reaches them (when room is made, the seeds of a region are all alike).
Stumps half size H. Draws stumps (spots with three curves, no lives) at half the size, so the live spots stand out. Only the drawing changes: curves keep clear of them as of full-size spots.
Room: what happens automatically when a move does not fit in the drawing as it is, for a human’s moves and the computer’s; and Heroic mode. M, A, R, Z and . can always be pressed by hand too.
Automatically, when a move does not fit: the steps are taken in the order M, A, R, Z, • (from the least to the most change to the picture), each once, until the move can be drawn. For a human’s move the ladder stops at the first box not checked (an unchecked A is simply skipped): the status row offers that step and the ones after it by hand (their keys), each of which tries the move again and then lets the ladder go on by the same rule. For the computer’s move only the checked steps are taken; if none of them makes room, the game stops and says so. Defaults: M and R for a human, M, R, Z and • for the computer. • lets Z, when the picture does not fit at full size, draw some spots smaller.
M — make room. Local changes where the move has to go: spots slide aside, then the curves in its way are pushed back, as long as no neighbor gets squeezed below its own clearance. The rest of the picture stays. Key M. Not in Heroic mode.
A — adjust. The whole drawing is reshaped for more room: curves move, while the initial seeds and seeds added by hand stay where they are (spots made by moves ride along with their curves). Key A.
R — rearrange. Like A, but every spot may move too, so the whole picture can spread out. Key R.
Z — draw the picture afresh. Ignores the present drawing and draws the position from scratch (then polishes it as R does), trying each region as the outside, on the workers at once, until a picture is found at least as roomy as the old one (any picture that can be drawn, when the old one is below the minimum clearance). The slowest step; Space stops it and keeps the best so far. Key Z.
• — spots drawn smaller where there is no room. Only when Z has failed for a move: the fresh picture is accepted with some spots drawn smaller than Settings → Spot size (those in tight places only, never below the slider’s smallest size), and the log names them. They grow back to their size as soon as an R or a Z finds room. Defaults: off for a human, on for the computer; Heroic turns it off for a human. Key . (Z with smaller spots allowed, by hand).
Human: the steps tried automatically when a move you make does not fit. Off (gray) in Heroic mode.
Computer: the steps tried automatically when the move a computer player has chosen does not fit — also a move arriving from the other computer over the net. The computer never changes its move for one that is easier to draw: if no checked step makes room, the game stops and says so.
Heroic. A curve you draw by hand is kept as drawn (straight pieces, corners and all) instead of being smoothed, and nothing is done automatically to make room for your moves (the Human row is switched off, and M is not available). The computer’s moves are drawn as usual.
Colors of the background, the two players’ curves and the spots (seeds, sprouts, links and stumps). They are saved with a game.
Background of the drawing area while it is a human’s turn.
Background while computing. The background while you have to wait: the computer’s turn, A, R or Z at work, room being made, or, over the net, the other player’s turn. The default is Medium gray.
Player 1 curves. The color of the curves Player 1 draws; the players are named by it on the status line.
Player 2 curves. The color of the curves Player 2 draws; the players are named by it on the status line.
Seeds: spots with no curve yet, three lives.
Sprouts: spots with one curve, two lives.
Links: spots with two curves, one life left. Every move makes a new link: the spot put on its curve.
Stumps: spots with three curves and no lives; no curve may touch them again.
File. Load and save games, the picture, the log and the position.
Load game. Opens a game saved with Save game as JSON, with its settings, colors, players, drawing area size and undo history, so it can be played on or taken back move by move. The drawing area is given the saved size as Game → Size gives it. Not while connected to another computer.
Save picture as PNG P. Saves the drawing area as it is now as an image (in the browser’s download folder).
Save game as JSON. Saves the whole game: the picture, the settings, the colors, the players, the drawing area’s size and every earlier position (the undo history). Load game brings it all back. A long game makes a large file.
Save log as text. Saves this session’s log: every move in words, the computer’s thinking, room made or refused, with times and pixel figures — useful for reporting a problem.
Save the log of the last session. The log is kept in this browser as it grows, so after a crash or a reload the last session’s log can still be saved. Only the one session before this one is kept.
Save position as text. The present position in words: whose turn it is, every region with the spots met going round each of its boundaries, and every spot with its curves and lives.