Simon Tatham's Portable Puzzle Collection

来源:百度文库 编辑:神马文学网 时间:2024/04/29 02:48:15

Simon Tatham's Portable Puzzle Collection

Introduction

This page contains a collection of small computer programs which implement one-player puzzle games. All of them run natively on Unix (GTK), on Windows, and on Mac OS X; they can also be played on the web, as Java applets.

I wrote this collection because I thought there should be more small desktop toys available: little games you can pop up in a window and play for two or three minutes while you take a break from whatever else you were doing. And I was also annoyed that every time I found a good game on (say) Unix, it wasn't available the next time I was sitting at a Windows machine, or vice versa; so I arranged that everything in my personal puzzle collection will happily run on both those platforms and more. When I find (or perhaps invent) further puzzle games that I like, they'll be added to this collection and will immediately be available on both platforms. And if anyone feels like writing any other front ends - Mac OS pre-10, PocketPC, or whatever it might be - then all the games in this framework will immediately become available on another platform as well.

The games

The actual games in this collection were mostly not my invention; they are re-implementations of existing game concepts within my portable puzzle framework. I do not claim credit, in general, for inventing the rules of any of these puzzles. (I don't even claim authorship of all the code; some of the puzzles below have been submitted by other authors.)

The thumbnail image for each game links to a Java applet so you can play it in your browser. Below each image is a link to the Windows binary for the game, and a link to the manual. For all other platforms, the games are provided in a single bundle, so scroll down to the Download section to get them all.

Black Box [ manual | blackbox.exe ] Find the hidden balls in the box by bouncing laser beams off them. Bridges [ manual | bridges.exe ] Connect all the islands with a network of bridges. Cube [ manual | cube.exe ] Pick up all the blue squares by rolling the cube over them. Dominosa [ manual | dominosa.exe ] Tile the rectangle with a full set of dominoes. Fifteen [ manual | fifteen.exe ] Slide the tiles around to arrange them into order. Filling [ manual | filling.exe ] Mark every square with the area of its containing region. Flip [ manual | flip.exe ] Flip groups of squares to light them all up at once. Galaxies [ manual | galaxies.exe ] Divide the grid into rotationally symmetric regions each centred on a dot. Guess [ manual | guess.exe ] Guess the hidden combination of colours. Inertia [ manual | inertia.exe ] Collect all the gems without running into any of the mines. Keen [ manual | keen.exe ] Complete the latin square in accordance with the arithmetic clues. Light Up [ manual | lightup.exe ] Place bulbs to light up all the squares. Loopy [ manual | loopy.exe ] Draw a single closed loop in accordance with the clues. Magnets [ manual | magnets.exe ] Place magnets to satisfy the clues and avoid like poles touching. Map [ manual | map.exe ] Colour the map so that adjacent regions are never the same colour. Mines [ manual | mines.exe ] Find all the mines without treading on any of them. Net [ manual | netgame.exe ] Rotate each tile to reassemble the network. Netslide [ manual | netslide.exe ] Slide a row at a time to reassemble the network. Pattern [ manual | pattern.exe ] Fill in the pattern in the grid, given only the lengths of runs of black squares. Pegs [ manual | pegs.exe ] Jump pegs over each other to remove all but one. Range [ manual | range.exe ] Place black squares to limit the visible distance from each numbered cell. Rectangles [ manual | rect.exe ] Divide the grid into rectangles with areas equal to the numbers. Same Game [ manual | samegame.exe ] Clear the grid by removing touching groups of the same colour squares. Signpost [ manual | signpost.exe ] Connect the squares into a path following the arrows. Singles [ manual | singles.exe ] Black out the right set of duplicate numbers. Sixteen [ manual | sixteen.exe ] Slide a row at a time to arrange the tiles into order. Slant [ manual | slant.exe ] Draw a maze of slanting lines that matches the clues. Solo [ manual | solo.exe ] Fill in the grid so that each row, column and square block contains one of every digit. Tents [ manual | tents.exe ] Place a tent next to each tree. Towers [ manual | towers.exe ] Complete the latin square of towers in accordance with the clues. Twiddle [ manual | twiddle.exe ] Rotate the tiles around themselves to arrange them into order. Unequal [ manual | unequal.exe ] Complete the latin square in accordance with the > signs. Untangle [ manual | untangle.exe ] Reposition the points so that the lines do not cross.

Licence

This game collection is copyright 2004-2010 Simon Tatham (portions copyright Richard Boulton, James Harvey, Mike Pinna, Jonas Kölker, Dariusz Olszewski, Michael Schierl, Lambros Lambrou and Bernd Schmidt). It is all distributed under the MIT licence. This means that you can do pretty much anything you like with the game binaries or the code, except pretending you wrote them yourself, or suing me if anything goes wrong.

Download

Here are Windows executables of the puzzle games in the collection. (On Windows only, the Net executable is called "netgame.exe" in order to avoid clashing with Windows's own "net.exe". The name of the game is still "Net" :-)

blackbox.exe | bridges.exe | cube.exe | dominosa.exe | fifteen.exe
filling.exe | flip.exe | galaxies.exe | guess.exe | inertia.exe
keen.exe | lightup.exe | loopy.exe | magnets.exe | map.exe | mines.exe
netgame.exe | netslide.exe | pattern.exe | pegs.exe | range.exe
rect.exe | samegame.exe | signpost.exe | singles.exe | sixteen.exe
slant.exe | solo.exe | tents.exe | towers.exe | twiddle.exe
unequal.exe | untangle.exe

Here are some Windows help files. If you install these in the same directory as the executable files, then each game should display a "Help" menu giving help about the game collection in general and that game in particular. You can also browse the same documentation online in HTML format.

(The help file is available in a choice of two formats. The .CHM file is HTML Help, supported by Win98 and above; the .HLP and .CNT files are old-style WinHelp, supported by everything from Win95 up to WinXP but not by Vista. The HTML help file is the recommended one, and the puzzles will use it by preference if both are available.)

HTML Help: puzzles.chm
WinHelp: puzzles.hlp | puzzles.cnt

Here is a .zip file containing all of the above Windows binaries and the help file.

puzzles.zip

Here is a Windows installer.

puzzles-version-installer.exe

Here is a Mac OS X disk image file, containing a single monolithic application called "Puzzles". You should be able to download and open the disk image, then drag the Puzzles application to wherever you feel like keeping it; it should be entirely self-contained. (However, it is also the first Mac OS X application I've ever written, so I can't make any guarantees! Let me know if you have any trouble with it and I'll try to fix it.)

This application is known to work on OS X 10.3; I've had a report that it doesn't work on 10.2.

Puzzles.dmg

Here is a source archive of the collection, which should allow you to compile the games on any Unix system supporting GTK. (At least, I hope so; I've only tested it on Linux so far, and I wouldn't rule out portability issues on other types of Unix.)

puzzles-version.tar.gz

Some people have ported this puzzle collection to various mobile devices. Here are some links to their port pages:

  • Port to the Palm, by James Harvey.
  • Port to Google Android, by Chris Boyle.
  • Port to Symbian S60, by Tiago Donizio.
(Note that these are third-party ports, not maintained by me. If you have trouble with one of these, you should probably follow the link to the appropriate maintainer's page and contact them about the problem in the first instance.)

Development

All of these puzzles are written in C, with a porting interface so that the same back-end puzzle code can talk to wildly different graphical front ends. The source archive above includes native GUI front ends for Windows and Mac OS X, an X front end using the GTK+ library, and a mixed C/Java front end for compiling the puzzles into Java applets using NestedVM.

There is extensive developer documentation describing the cross-platform interfaces. If you want to write a new puzzle or a new front end (to make all these games run on another platform), this is probably the place to start.

If you want to see the latest state of development, you can check the development sources out from my Subversion repository.

The Subversion URL you need is svn://svn.tartarus.org/sgt/puzzles. So you could use a checkout command such as this:

svn co svn://svn.tartarus.org/sgt/puzzles

Alternatively, you can browse the Subversion repository on the WWW, here.

Feedback

Please report bugs to anakin@pobox.com.

You might find it helpful to read this article before reporting a bug.

Patches are welcome.


(comments to anakin@pobox.com)
(thanks to chiark for hosting this page)
(last modified on Tue Sep 14 10:51:21 2010)