diff --git a/Buildscr b/Buildscr index b079367..6d2237d 100644 --- a/Buildscr +++ b/Buildscr @@ -132,6 +132,8 @@ deliver puzzles/puzzles.cnt $@ deliver puzzles/puzzles.zip $@ deliver puzzles/Output/setup.exe puzzles-r$(revision)-installer.exe deliver puzzles/*.jar java/$@ +deliver puzzles/html/*.html html/$@ +deliver puzzles/html/*.pl html/$@ # deliver puzzles/puzzles.armv4.cab $@ # (not built at the moment) diff --git a/CHECKLST.txt b/CHECKLST.txt index 247ae4f..8c6f03f 100644 --- a/CHECKLST.txt +++ b/CHECKLST.txt @@ -41,6 +41,9 @@ appropriate. Add the new Unix binary name, and the names of any auxiliary solver binaries, to the svn:ignore property. +Write an instructions fragment for the webified puzzle pages, as +html/.html . + Make a screenshot: - create an appropriate save file in `icons' - add the puzzle name to icons/Makefile @@ -49,25 +52,24 @@ Make a screenshot: - set up a CROP property in icons/Makefile if the icon wants to be a sub-rectangle of the whole screenshot -Don't forget to `svn add' the new source file, the new .R file and -the save file in `icons', and any other new files that might have -been involved. +Don't forget to `svn add' the new source file, the new .R file and the +save file in `icons', the new .html file, and any other new files that +might have been involved. Check in! Put the puzzle on the web: - run puzzlesnap first - - make sure the screenshot and Windows binary have arrived in the - www directory, and the .jar file in the java subdirectory + - make sure the screenshot and Windows binary have arrived in the www + directory, and that the .jar file and its accompanying web page has + arrived in the java subdirectory - add an entry in the puzzles list in index.html - add the Windows executable name to the list further down index.html - - add a web page in the java subdirectory - adjust the copyright in index.html if the puzzle is by a new author - test that the binary link and the docs link work - test that the Java version works - run webupdate - test again - - `svn add' the new Java applet web page - - check in the change to index.html and the new web page + - check in the change to index.html diff --git a/html/blackbox.html b/html/blackbox.html new file mode 100644 index 0000000..f98604f --- /dev/null +++ b/html/blackbox.html @@ -0,0 +1,16 @@ +Black Box +

+Determine where the hidden balls are in the box, by observing the +behaviour of light beams fired into the box from the sides. +

+Click in a square around the edge of the box to send a beam into the +box. Possible results are 'H' (the beam hit a ball dead-on and +stopped), 'R' (the beam was either reflected back the way it came or +there was a ball just to one side of its entry point) or a number +appearing in two squares (indicating that the beam entered one of +those squares and emerged from the other). +

+Click in the middle of the box to place your guessed ball positions. +When you have placed enough, a green button will appear in the top +left; click that to indicate that you think you have the answer. +You can also right-click to mark squares as definitely known. diff --git a/html/bridges.html b/html/bridges.html new file mode 100644 index 0000000..06ec2d4 --- /dev/null +++ b/html/bridges.html @@ -0,0 +1,13 @@ +Bridges +

+Draw horizontal or vertical bridges to link up all the islands. +Bridges may be single or double; they may not cross; the islands +must all end up connected to each other; the number in each island +must match the number of bridges that end at that island (counting +double bridges as two). Note that loops of bridges are permitted. +

+Click on an island and drag left, right, up or down to draw a bridge +to the next island in that direction. Do the same again to create a +double bridge, and again to remove the bridge if you change your +mind. Click on an island without dragging to mark the island as +completed once you think you have placed all its bridges. diff --git a/html/cube.html b/html/cube.html new file mode 100644 index 0000000..f08e16c --- /dev/null +++ b/html/cube.html @@ -0,0 +1,14 @@ +Cube +

+Roll the cube around the grid, picking up the blue squares on its +faces. Try to get all the blue squares on to the object at the same +time, in as few moves as possible. +

+Use the arrow keys to roll the cube, or click the mouse where you +want it to roll towards. After every roll, the grid square and cube +face that you brought into contact swap their colours, so that a +non-blue cube face can pick up a blue square, but a blue face rolled +on to a non-blue square puts it down again. +

+When you have mastered the cube, use the Type menu to select other +regular solids! diff --git a/html/dominosa.html b/html/dominosa.html new file mode 100644 index 0000000..d2f6728 --- /dev/null +++ b/html/dominosa.html @@ -0,0 +1,10 @@ +Dominosa +

+Tile the rectangle with dominoes (1×2 rectangles) so that +every possible domino appears exactly once (that is, every possible +pair of numbers, including doubles). +

+Click between two adjacent numbers to place or remove a domino. +Right-click to place a line between numbers if you think a domino +definitely cannot go there. Dominoes light up red if two identical +ones appear on the grid. diff --git a/html/fifteen.html b/html/fifteen.html new file mode 100644 index 0000000..53053b4 --- /dev/null +++ b/html/fifteen.html @@ -0,0 +1,6 @@ +Fifteen +

+Slide the tiles around the box until they appear in numerical order +from the top left, with the hole in the bottom right corner. +

+Click on a tile to slide it towards the hole. diff --git a/html/filling.html b/html/filling.html new file mode 100644 index 0000000..70ce16d --- /dev/null +++ b/html/filling.html @@ -0,0 +1,12 @@ +Filling +

+Write a number in every blank square of the grid. When the grid is +full, every orthogonally connected group of identical numbers should +have an area equal to that number: so 1s always appear alone, 2s in +pairs, and so on. +

+To place a number, click the mouse in a blank square to select it, +then type the number you want on the keyboard. You can also drag to +select multiple squares, and then type a number to place it in all +of them. To erase numbers, select one or more squares in the same +way and then press Backspace. diff --git a/html/flip.html b/html/flip.html new file mode 100644 index 0000000..404aae6 --- /dev/null +++ b/html/flip.html @@ -0,0 +1,10 @@ +Flip +

+Try to light up all the squares in the grid by flipping combinations +of them. +

+Click in a square to flip it and some of its neighbours. The diagram +in each square indicates which other squares will flip. +

+Select one of the 'Random' settings from the Type menu for more +varied puzzles. diff --git a/html/galaxies.html b/html/galaxies.html new file mode 100644 index 0000000..8041a95 --- /dev/null +++ b/html/galaxies.html @@ -0,0 +1,11 @@ +Galaxies +

+Draw lines along grid edges so as to divide the grid up into +regions. Every region should have two-way rotational symmetry, and +should contain exactly one dot which is in its centre. +

+Click on a grid edge to add or remove a line. Right-click on a dot +and drag the mouse to place an arrow in a grid square pointing to +that dot, to indicate that you think that square must belong in the +same region as that dot. Right-drag an existing arrow to move it, or +drop it off the edge of the grid to remove it. diff --git a/html/group.html b/html/group.html new file mode 100644 index 0000000..c0f52de --- /dev/null +++ b/html/group.html @@ -0,0 +1,52 @@ +unfinished:Group +

+Fill in the grid with the letters shown to the top and left of it, so +that the full grid is a valid +Cayley table +for a +group. +

+If you don't already know what a group is, I don't really recommend +trying to play this game. But if you want to try anyway, the above is +equivalent to saying that the following conditions must be satisfied: +

+

+To place a letter, click in a square to select it, then type the +letter on the keyboard. To erase a letter, click to select a square +and then press Backspace. +

+Right-click in a square and then type a letter to add or remove the +number as a pencil mark, indicating letters that you think +might go in that square. +

+You can rearrange the order of elements in the rows and columns by +dragging the column or row headings back and forth. (The rows and +columns will stay in sync with each other.) Also, +left-clicking between two row or column headings will add or +remove a thick line between those two rows and the corresponding pair +of columns (which is useful if you're considering a subgroup and its +cosets). diff --git a/html/guess.html b/html/guess.html new file mode 100644 index 0000000..1e4fc1e --- /dev/null +++ b/html/guess.html @@ -0,0 +1,12 @@ +Guess +

+Try to guess the hidden combination of colours. You will be given +limited information about each guess you make, enabling you to +refine the next guess. +

+Drag from the colours on the left into the topmost unfilled row to +make a guess; then click on the small circles to submit that guess. +The small circles give you your feedback: black pegs indicate how +many of the colours you guessed were the right colour in the right +place, and white pegs indicate how many of the rest were the right +colours but in the wrong place. diff --git a/html/inertia.html b/html/inertia.html new file mode 100644 index 0000000..20077c0 --- /dev/null +++ b/html/inertia.html @@ -0,0 +1,14 @@ +Inertia +

+Slide the ball around the grid picking up the gems. Every time the +ball moves, it will keep sliding until it either hits a wall, or +stops on a stop square (the broken circles). Try to collect every +gem without running into any of the mines. +

+Use the numeric keypad to slide the ball horizontally, vertically or +diagonally. Alternatively, click on the grid to make the ball move +towards where you clicked. +

+If you hit a mine and explode, you can select Undo from the Game +menu and continue playing; the game will track how many times you +died. diff --git a/html/javapage.pl b/html/javapage.pl new file mode 100644 index 0000000..cd5e6a1 --- /dev/null +++ b/html/javapage.pl @@ -0,0 +1,104 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +open my $footerfile, "<", shift @ARGV or die "footer: open: $!\n"; +my $footer = ""; +$footer .= $_ while <$footerfile>; +close $footerfile; + +for my $arg (@ARGV) { + $arg =~ /(.*\/)?([^\/]+)\.html$/ or die; + my $filename = $2; + open my $gamefile, "<", $arg or die "$arg: open: $!\n"; + my $unfinished = 0; + my $docname = $filename; + chomp(my $puzzlename = <$gamefile>); + while ($puzzlename =~ s/^([^:=]+)(=([^:]+))?://) { + if ($1 eq "unfinished") { + $unfinished = 1; + } elsif ($1 eq "docname") { + $docname = $3; + } else { + die "$arg: unknown keyword '$1'\n"; + } + } + my $instructions = ""; + $instructions .= $_ while <$gamefile>; + close $gamefile; + + open my $outpage, ">", "${filename}.html"; + + my $unfinishedtitlefragment = $unfinished ? "an unfinished puzzle " : ""; + my $unfinishedheading = $unfinished ? "

an unfinished puzzle

\n" : ""; + my $unfinishedpara; + my $links; + if ($unfinished) { + $unfinishedpara = < +You have found your way to a page containing an unfinished +puzzle in my collection, not linked from the main +puzzles page. Don't be surprised if things are hard to understand +or don't work as you expect. +EOF + $links = < +Back to main puzzles page (which does not link to this) +EOF + } else { + $unfinishedpara = ""; + $links = < +Full instructions +| +Back to main puzzles page +EOF + } + + print $outpage < + +${puzzlename}, ${unfinishedtitlefragment}from Simon Tatham's Portable Puzzle Collection + + + + +

${puzzlename}

+${unfinishedheading} +

from Simon Tatham's Portable Puzzle Collection

+ +${unfinishedpara} + +

+ + + + + + + + +
+ + + +
+
+
+
+
+
+ +${instructions} + +${links} + +${footer} + + +EOF + + close $outpage; +} diff --git a/html/keen.html b/html/keen.html new file mode 100644 index 0000000..bd0eb36 --- /dev/null +++ b/html/keen.html @@ -0,0 +1,15 @@ +Keen +

+Fill in the grid with digits from 1 to the grid size, so that every +digit appears exactly once in each row and column, and so that all +the arithmetic clues are satisfied (i.e. the clue number in each +thick box should be possible to construct from the digits in the box +using the specified arithmetic operation). +

+To place a number, click in a square to select it, then type the +number on the keyboard. To erase a number, click to select a square +and then press Backspace. +

+Right-click in a square and then type a number to add or remove the +number as a pencil mark, indicating numbers that you think +might go in that square. diff --git a/html/lightup.html b/html/lightup.html new file mode 100644 index 0000000..2de2f91 --- /dev/null +++ b/html/lightup.html @@ -0,0 +1,10 @@ +Light Up +

+Place light bulbs in the grid so as to light up all the blank +squares. A light illuminates its own square and all the squares in +the same row or column unless blocked by walls (black squares). +Lights may not illuminate each other. Each numbered square must be +orthogonally adjacent to exactly the given number of lights. +

+Click on a square to place or remove a light. Right-click to place a +dot indicating that you think there is no light in that square. diff --git a/html/loopy.html b/html/loopy.html new file mode 100644 index 0000000..96f3a9d --- /dev/null +++ b/html/loopy.html @@ -0,0 +1,13 @@ +Loopy +

+Form a single closed loop out of the grid edges, in such a way that +every numbered square has exactly that many of its edges included in +the loop. +

+Click on a grid edge to mark it as part of the loop (black), and +again to return to marking it as undecided (yellow). Right-click on +a grid edge to mark it as definitely not part of the loop (faint +grey), and again to mark it as undecided again. +

+When you have mastered the square grid, look in the Type menu for +many other types of tiling! diff --git a/html/magnets.html b/html/magnets.html new file mode 100644 index 0000000..b2b2dd3 --- /dev/null +++ b/html/magnets.html @@ -0,0 +1,14 @@ +Magnets +

+Fill each domino shape with either a magnet (consisting of a + and +− pole) or a neutral domino (green). +

+The number of + poles that in each row and column must match the +numbers along the top and left; the number of − poles must +match the numbers along the bottom and right. Two + poles may not be +orthogonally adjacent to each other, and similarly two − poles. +

+Left-click a domino to toggle it between being empty and being a +magnet (the + is placed in the end you click). Right-click to toggle +between empty, neutral, and a ?? mark indicating that you're sure +it's a magnet but don't yet know which way round it goes. diff --git a/html/map.html b/html/map.html new file mode 100644 index 0000000..5f81793 --- /dev/null +++ b/html/map.html @@ -0,0 +1,15 @@ +Map +

+Colour the map with four colours, so that no two adjacent regions +have the same colour. (Regions touching at only one corner do not +count as adjacent.) There is a unique colouring consistent with the +coloured regions you are already given. +

+Drag from a coloured region to a blank one to colour the latter the +same colour as the former. Drag from outside the grid into a region +to erase its colour. (You cannot change the colours of the regions +you are given at the start of the game.) +

+Right-drag from a coloured region to a blank one to add dots marking +the latter region as possibly the same colour as the +former, or to remove those dots again. diff --git a/html/mines.html b/html/mines.html new file mode 100644 index 0000000..d17d6ff --- /dev/null +++ b/html/mines.html @@ -0,0 +1,18 @@ +Mines +

+Try to expose every square in the grid that is not one of the hidden +mines, without opening any square that is a mine. +

+Click in a square to open it. Every opened square are marked with +the number of mines in the surrounding 8 squares, if there are any; +if not, all the surrounding squares are automatically opened. +

+Right-click in a square to mark it with a flag if you think it is a +mine. If a numbered square has exactly the right number of flags +around it, you can click in it to open all the squares around it +that are not flagged. +

+The first square you open is guaranteed to be safe, and (by default) +you are guaranteed to be able to solve the whole grid by deduction +rather than guesswork. (Deductions may require you to think about +the total number of mines.) diff --git a/html/net.html b/html/net.html new file mode 100644 index 0000000..08bffba --- /dev/null +++ b/html/net.html @@ -0,0 +1,17 @@ +Net +

+Rotate the grid squares so that they all join up into a single +connected network with no loops. +

+Left-click in a square to rotate it anticlockwise. Right-click to +rotate it clockwise. Middle-click, or shift-left-click if you have +no middle mouse button, to lock a square once you think it is +correct (so you don't accidentally rotate it again); do the same +again to unlock it if you change your mind. +

+Squares connected to the middle square are lit up. Aim to light up +every square in the grid (not just the endpoint blobs). +

+When this gets too easy, select a 'wrapping' variant from the Type +menu to enable grid lines to run off one edge of the playing area +and come back on the opposite edge! diff --git a/html/netslide.html b/html/netslide.html new file mode 100644 index 0000000..f187741 --- /dev/null +++ b/html/netslide.html @@ -0,0 +1,14 @@ +Netslide +

+Slide the grid squares around so that they all join up into a single +connected network with no loops. +

+Click on the arrows at the edges of the grid to move a row or column +left, right, up or down. The square that falls off the end of the +row comes back on the other end. +

+Squares connected to the middle square are lit up. Aim to light up +every square in the grid (not just the endpoint blobs). +

+Connecting across a red barrier line is forbidden. On harder levels, +there are fewer barriers, which makes it harder rather than easier! diff --git a/html/pattern.html b/html/pattern.html new file mode 100644 index 0000000..54e05d6 --- /dev/null +++ b/html/pattern.html @@ -0,0 +1,12 @@ +Pattern +

+Fill in the grid with a pattern of black and white squares, so that +the numbers in each row and column match the lengths of consecutive +runs of black squares. +

+Left-click in a square to mark it black; right-click (or hold Ctrl +while left-clicking) to mark it white. Click and drag along a row or +column to mark multiple squares black or white at once. Middle-click +(or hold Shift while left-clicking) to return a square to grey +(meaning undecided): dragging like that can erase a whole rectangle, +not just a row or column. diff --git a/html/pearl.html b/html/pearl.html new file mode 100644 index 0000000..2ca25a5 --- /dev/null +++ b/html/pearl.html @@ -0,0 +1,13 @@ +Pearl +

+Draw a single closed loop by connecting together the centres of +adjacent grid squares, so that some squares end up as corners, some as +straights (horizontal or vertical), and some may be empty. Every +square containing a black circle must be a corner not connected +directly to another corner; every square containing a white circle +must be a straight which is connected to at least one corner. +

+Drag between squares to draw or undraw pieces of the loop. +Alternatively, left-click the edge between two squares to turn it on +or off. Right-click an edge to mark it with a cross indicating that +you are sure the loop does not go through it. diff --git a/html/pegs.html b/html/pegs.html new file mode 100644 index 0000000..4a23788 --- /dev/null +++ b/html/pegs.html @@ -0,0 +1,8 @@ +Pegs +

+Jump one peg over another to remove the one you jumped over. Try to +remove all but one peg. +

+Drag a peg into an empty space to make a move. The target space must +be exactly two holes away from the starting peg, in an orthogonal +direction, and there must be a peg in the hole in between. diff --git a/html/range.html b/html/range.html new file mode 100644 index 0000000..bb5b59c --- /dev/null +++ b/html/range.html @@ -0,0 +1,21 @@ +Range +

+Colour some squares black, so as to meet the following conditions: +

    +
  • +No two black squares are orthogonally adjacent. +
  • +No group of white squares is separated from the rest of the grid by +black squares. +
  • +Each numbered cell can see precisely that many white squares in +total by looking in all four orthogonal directions, counting itself. +(Black squares block the view. So, for example, a 2 clue must be +adjacent to three black squares or grid edges, and in the fourth +direction there must be one white square and then a black one beyond +it.) +
+ +

+Left-click to colour a square black. Right-click to mark a square +with a dot, if you know it should not be black. diff --git a/html/rect.html b/html/rect.html new file mode 100644 index 0000000..d23d827 --- /dev/null +++ b/html/rect.html @@ -0,0 +1,10 @@ +docname=rectangles:Rectangles +

+Draw lines along the grid edges to divide the grid into rectangles, +so that each rectangle contains exactly one numbered square and its +area is equal to the number written in that square. +

+Click and drag from one grid corner to another, or from one square +centre to another, to draw a rectangle. You can also drag along a +grid line to just draw a line at a time, or just click on a single +grid edge to draw or erase it. diff --git a/html/samegame.html b/html/samegame.html new file mode 100644 index 0000000..e6de095 --- /dev/null +++ b/html/samegame.html @@ -0,0 +1,14 @@ +Same Game +

+Try to empty the playing area completely, by removing connected +groups of two or more squares of the same colour. Then try to score +as much as possible, by removing large groups at a time instead of +small ones. +

+Click on a coloured square to highlight the rest of its connected +group. The status line will print the number of squares selected, +and the score you would gain by removing them. Click again to remove +the group; other squares will fall down to fill the space, and if +you empty a whole column then the other columns will move up. You +cannot remove a single isolated square: try to avoid dead-end +positions where all remaining squares are isolated. diff --git a/html/signpost.html b/html/signpost.html new file mode 100644 index 0000000..fa23e99 --- /dev/null +++ b/html/signpost.html @@ -0,0 +1,14 @@ +Signpost +

+Connect all the squares together into a sequence, so that every +square's arrow points towards the square that follows it (though the +next square can be any distance away in that direction). + +

+Left-drag from a square to the square that should follow it, or +right-drag from a square to the square that should precede it. + +

+Left-drag a square off the grid to break all links to it. Right-drag +a square off the grid to break all links to it and everything else +in its connected chain. diff --git a/html/singles.html b/html/singles.html new file mode 100644 index 0000000..252bffb --- /dev/null +++ b/html/singles.html @@ -0,0 +1,11 @@ +Singles +

+Black out some of the squares, in such a way that: +

  • no number appears twice in any row or column +
  • no two black squares are adjacent +
  • the white squares form a single connected group (connections +along diagonals do not count).
+

+Click in a square to black it out, and again to uncover it. +Right-click in a square to mark it with a circle, indicating that +you're sure it should not be blacked out. diff --git a/html/sixteen.html b/html/sixteen.html new file mode 100644 index 0000000..4530469 --- /dev/null +++ b/html/sixteen.html @@ -0,0 +1,8 @@ +Sixteen +

+Slide the grid squares around so that the numbers end up in +consecutive order from the top left corner. +

+Click on the arrows at the edges of the grid to move a row or column +left, right, up or down. The square that falls off the end of the +row comes back on the other end. diff --git a/html/slant.html b/html/slant.html new file mode 100644 index 0000000..d6d31aa --- /dev/null +++ b/html/slant.html @@ -0,0 +1,9 @@ +Slant +

+Fill in a diagonal line in every grid square so that there are no +loops in the grid, and so that every numbered point has that many +lines meeting at it. +

+Left-click in a square to mark it with a \; right-click +to mark it with a /. Keep clicking in a square to +cycle it between \, / and empty. diff --git a/html/solo.html b/html/solo.html new file mode 100644 index 0000000..88ebd5c --- /dev/null +++ b/html/solo.html @@ -0,0 +1,20 @@ +Solo +

+Fill in a number in every square so that every number appears +exactly once in each row, each column and each block marked by thick +lines. +

+To place a number, click in a square to select it, then type the +number on the keyboard. To erase a number, click to select a square +and then press Backspace. +

+Right-click in a square and then type a number to add or remove the +number as a pencil mark, indicating numbers that you think +might go in that square. +

+When you master the basic game, try Jigsaw mode (irregularly shaped +blocks), X mode (the two main diagonals of the grid must also +contain every number once), Killer mode (instead of single-cell +clues you are given regions of the grid each of which must add up to +a given total, again without reusing any digits), or all of those at +once! diff --git a/html/tents.html b/html/tents.html new file mode 100644 index 0000000..e3f6d5f --- /dev/null +++ b/html/tents.html @@ -0,0 +1,20 @@ +Tents +

+Place tents in the empty squares in such a way that: +

    +
  • no two tents are adjacent, even diagonally +
  • the number of tents in each row and column matches the numbers +around the edge of the grid +
  • it is possible to match tents to trees so that each tree is +orthogonally adjacent to its own tent (but may also be adjacent to +other tents). +
+

+Click in a square to place or remove a tent. Right-click to mark a +square as empty (not a tent). Right-click and drag along a row or +column to mark many squares at once as empty. +

+Warning '!' marks appear to indicate adjacent tents. Numbers round +the edge of the grid light up red to indicate they do not match the +number of tents in the row. Groups of tents light up red to indicate +that they have too few trees between them, and vice versa. diff --git a/html/towers.html b/html/towers.html new file mode 100644 index 0000000..d02ef0d --- /dev/null +++ b/html/towers.html @@ -0,0 +1,19 @@ +Towers +

+Fill in the grid with towers whose heights range from 1 to the grid +size, so that every possible height appears exactly once in each row +and column, and so that each clue around the edge counts the number +of towers that are visible when looking into the grid from that +direction. (Taller towers hide shorter ones behind them. So the +sequence 2,1,4,3,5 would match a clue of 3 on the left, because the +1 is hidden behind the 2 and the 3 is hidden behind the 4. On the +right, it would match a clue of 1 because the 5 hides everything +else.) +

+To place a tower, click in a square to select it, then type the +desired height on the keyboard. To erase a tower, click to select a +square and then press Backspace. +

+Right-click in a square and then type a number to add or remove the +number as a pencil mark, indicating tower heights that you think +might go in that square. diff --git a/html/twiddle.html b/html/twiddle.html new file mode 100644 index 0000000..5f94e4e --- /dev/null +++ b/html/twiddle.html @@ -0,0 +1,15 @@ +Twiddle +

+Rotate square sections of the grid to arrange the squares into +numerical order starting from the top left. +

+In the basic game, you rotate a 2×2 square section. Left-click +in the centre of that section (i.e. on a corner point between four +squares) to rotate the whole section anticlockwise. Right-click to +rotate the section clockwise. +

+When you master the basic game, go to the Type menu to try it with +larger rotating groups (for a 3×3 group you must click in the +centre of a square to rotate the block around it). Or select the +'orientable' mode in which every square must end up the right way +round as well as in the right place. Or both! diff --git a/html/undead.html b/html/undead.html new file mode 100644 index 0000000..5ed976d --- /dev/null +++ b/html/undead.html @@ -0,0 +1,19 @@ +Undead +

+Fill in every grid square which doesn't contain a mirror with either a +ghost, a vampire, or a zombie. The numbers round the grid edges show +how many monsters must be visible along your line of sight if you look +directly into the grid from that position, along a row or column. +Zombies are always visible; ghosts are only visible when reflected in +at least one mirror; vampires are only visible when not reflected in +any mirror. + +

+To place a monster, click in a square to select it, then type the +monster's letter on the keyboard: G for a ghost, V for a vampire or Z +for a zombie. To erase a monster, click to select a square and then +press Backspace. +

+Right-click in a square and then type a letter to add or remove the +monster as a pencil mark, indicating monsters that you think +might go in that square. diff --git a/html/unequal.html b/html/unequal.html new file mode 100644 index 0000000..085f82e --- /dev/null +++ b/html/unequal.html @@ -0,0 +1,14 @@ +Unequal +

+Fill in the grid with numbers from 1 to the grid size, so that every +number appears exactly once in each row and column, and so that all +the < signs represent true inequalities (i.e. the +number at the pointed end is smaller than the number at the open end). +

+To place a number, click in a square to select it, then type the +number on the keyboard. To erase a number, click to select a square +and then press Backspace. +

+Right-click in a square and then type a number to add or remove the +number as a pencil mark, indicating numbers that you think +might go in that square. diff --git a/html/unruly.html b/html/unruly.html new file mode 100644 index 0000000..e5e7a37 --- /dev/null +++ b/html/unruly.html @@ -0,0 +1,12 @@ +Unruly +

+Colour every square either black or white, in such a way that: +

  • no three consecutive squares, horizontally or vertically, are +the same colour +
  • each row and column contains the same number of black and white +squares.
+

+Left-click in an empty square to turn it black it out, or right-click +to turn it white. Click again in an already-filled square to cycle it +between black and white and empty; middle-click to reset any square to +empty. diff --git a/html/untangle.html b/html/untangle.html new file mode 100644 index 0000000..7171a3d --- /dev/null +++ b/html/untangle.html @@ -0,0 +1,5 @@ +Untangle +

+Move the points around so that none of the lines cross. +

+Click on a point and drag it to move it.