The Game of Sprouts (original) (raw)
Peter Alfeld, --- Department of Mathematics, --- College of Science --- University of Utah
However, your browser does not support Java. If it did you would not see this message! Get a java compatible browser such as Netscape, of a sufficiently advanced version.
The Game of Sprouts
The applet on this page will bring up a window that lets you play sprouts against a human opponent. Of course you could also do this using paper and pencil. However, eventually you should be able to play against the computer. I'm intrigued with this project because it involves some fascinating programming problems.
In the game of sprouts two players start with some number of dots and alternate making moves. A move consists of connecting two dots (called spots) with a curve and marking a new dot anywhere on the curve. The segments of curves connecting two dots are called edges. subject to the following rules:
- The curves do not intersect (other curves or themselves).
- No more than three edges emanate from any one spot.
- A curve may connect a spot to itself.
The player who draws the last curve wins.
Playing the Game
To play the Game just click on the applet. To draw a curve move the cursor to the starting spot. Once it's close enough to change its shape to a crosshair press the (left) mouse button and drag the mouse to the end spot. The program will draw the curve and mark the new spot. Colors of the spot indicate the number of edges that can still be attached to the spot, ranging from 3 (blue) through 2 (cyan), 1 (magenta) and zero (gray).
When you draw a curve it first shows as a green line (for the first player) or a red one (for the second player). If the curve is valid it turns into a black line with the new spot somewhere along it. If it's invalid (for example because you moved off the screen or ran into an existing curve) it turns yellow and disappears when you draw the next curve.
You can modify the game using the following options:
- Change the initial number of spots by using the Text Field on the control panel and the increment and decrement buttons next to it. Any modification reinitialized the game.
- Add a new spot (with three lives) by clicking on the middle mouse button.
- Allow drawing loops in the current curve by clicking on LD OFF. (As an exercise think about why this makes the game much less interesting.)
- Resize the window. Doing so reinitializes the game.
More detailed documentation and discussion is forthcoming.
Downloading the code
The code can be used in standalone mode. Indeed, this is preferable because you are not at the mercy of quirks of your particular browser. For example, with my particular version of netscape the code does not react to keyboard commands.
To invoke the code on a Unix system type
java Sprouts
Last change: [18-Jun-1999]
Copyright © 1998 Department of Mathematics, University of Utah