
home
applets
history
links
|
This page is an introduction and index to the clickmazes applets.
The majority of the puzzles here are my own invention and implementation
(mainly in Java 1.02), with special thanks to Graham Rogers (henleymob)
for the plank puzzle, hexaroll and the generic tilt-puzzle applet (described
below under 'Exotic tilt'), also to Jimmy Stephens (www.puzzlebeast.com)
for the Orientation maze applet, and more recently Oskar van Deventer
for his own collection of home-grown applets.
|
Blackbox
Blackbox is a clever two-player deductive game invented by
Eric Solomon
in the 1970s and is traditionally my first testing-ground for
any new programming language. In Java it proved a good introduction
to event handling, array handling, layout managers, random number
generation and a few other things besides. Perhaps, above all,
it taught me never to touch GridBagLayout again.
Blackbox can be found, in it's original form,
at any good car-boot sale near you.
Click
here to try blackbox
|
|
Tile puzzle
This is an original home-grown puzzle, first published in
the Lubenham Village Newsletter (circa 1982). One of it's most
striking features is that it isn't a maze... not sure
how that happened. The original 10-piece tile set (introduced
December '97) was a new set, refined and tested to ensure only
a single solution.
Tile puzzle required reading several new chapters
on Java, including (several times over) one particularly baffling
section on how to control screen flicker. Image handling was
an easier section, but unfortunately also turned out to be the
wrong section, graphics handling would have been better since
the initial version of tile puzzle used forty gif files and could
be very slow to load. Tile puzzle was thus belatedly revamped
in February '98 to draw it's own graphics.
A range of four tile sets, one for all abilities,
was introduced in April 98. The most time-consuming part of this
development was deciding the color schemes.
Click
here to try the tile puzzles
|
|
Knight's tour
The knight's tour is an old idea with a new twist.
I first experimented with mazes based on the knight's move more
than a decade ago but this is the first to have a special moving
'peep-hole' through which the maze is viewed. The peep-hole principle
could be applied to any maze of course, but the knight's tour
also offered a test-bed for some simple Java graphics.
Implementing the knight's tour maze went remarkably
smoothly (for a change), it actually took longer to come up with
a satisfactory maze than write the Java. That said, I found fillRect()
rather troublesome; is it meant to include or exclude the width
of the border? I found I had to both draw and fill each
stepping stone to achieve consistent results across all browsers.
Click
here to try the knight's tour maze
|

 |
Tilt mazes
The tilt mazes are a brand new form of interactive puzzle-maze,
designed from scratch with Java and the web in mind. As a concept
they are also my first new mazes for some years, for those who
have asked me why I'm not producing mazes any more, well this
I trust will be a new beginning. Perversely, the more complex
3D tilt maze came first, it was only after implementation that
I decided the tilt behaviour was sufficiently interesting in
isolation to merit the development of a simple 2D version.
The tilt mazes, as originally launched, required
little or no new knowledge of Java. I had a little trouble initially
getting the main panel (container) to redraw itself with a different
set of components (yes, yes... validate() so obvious!?).
It did take somewhat longer than a Sunday afternoon this time,
but then so did the mazes.
In April '98 the tilt mazes were significantly
reworked to make use of the new base classes introduced by the
tilt puzzles (see below).
In October '99 the 2D tilt mazes were the subject
of further major rework. Many more mazes added (various sizes)
and a range of brand new multi-goal mazes were added.
The Java diverged here for this development (unfortunately) but
perhaps one day I'll bring it all back together again.
Click
here to try the 2D tilt mazes
Click here
to try the 3D tilt mazes
|
|
Tilt puzzles
The tilt puzzles take the tilt behaviour one step further and
turn the basic 2D tilt maze into something more of a novelty.
Two sliding blocks now share the same tray and must reach their
own separate goals without coming into contact. Superficially
the puzzles are just two mini mazes in one, the challenge however
is the synchronisation.
The tilt puzzle Java could have been a simple
variation on what had come before, but the desire to implement
a realistic slide effect forced me to dabble with something new...
Java threads. Then, inevitably, my one small runnable
class not so much slid but snowballed into a major overhaul of
all the tilt maze source. The tilt puzzles now provide the base
classes from which the tilt maze classes are derived. For an
OO-impaired software engineer this turned out to be quite a voyage
of discovery.
Click
here to try the tilt puzzles
|
|
Color-zone mazes
The rolling-block colour-zone mazes are my own variation on the
rolling-block maze concept. An idea introduced and developed
in the last few years, by some of the worlds best puzzle-folk.
The Java here was nothing new (I shrug off yet
again the pressure to leap to Java 2) and thus took only a few
hours to implement. The mazes however took a fair bit longer
to devise and, even so, turned out limited in complexity. It
has to be said, these are some of the strangest mazes I have
ever had the pleasure to experiment with. Finding larger layouts,
with longer solutions, remains a major challenge.
Click
here to try the colour-zone mazes
|
|
Marble mazes
The marble tilt mazes are my latest foray into the tilt-maze
concept. This is the code I should have written for the original
tilt puzzles (March '98) but found a little beyond me at the
time. Hence the original 'bang' effect as the blocks slid into
each other (which was more or less what my code did, the first
time I ran it). Now, some years later, and with a good deal more
practice at thread and vector handling behind me, things seemed
to have come together with slightly less explosive results.
Click
here to try the marble mazes
|
|
Oskar's hysteresis mazes
The hysteresis mazes are an interesting new type of puzzle-maze,
based on an original mechanical puzzle by Oskar van Deventer.
Oskar kindly invited me to try implementing his puzzle in Java,
and this worked very well indeed, although somehow the resulting
mazes turned out not quite devious enough for either of us. So
we increased the size, threw in a black hole or two, and finally
sprinkled everything with strange yellow dots. Consider the yellow
dots 'portals' into a strange inner dimension; the curious northsouth
maze, that lurks behind every eastwest maze.
Click
here to try Oskar's hysteresis mazes
|
|
Maze of Life
The maze of life is a puzzle based on John Conway's well known
Game of Life algorithm, and was suggested to me by my father,
James Gilbert. An interactive Game of Life no less! So
hey, we should all be experts. However it turns out this 'game'
is about as unpredictable and uncontrollable as life itself.
Basic survival is soon mastered, but are you a true master of
your fate? Can you reach that ultimate goal? Fortunately in this
version you always have the undo option (oh how useful
that would be!).
This little applet took no time at all and would
have been a perfect candidate for a first exercise in Java2,
but impatience got the better of me. At this rate I might as
well wait for Java3.
Maze of life V2 was added in July 2000 and offers
a means of saving and recording played sequences. Further enhancements
were added in April 2001 (V2.2) to provide unlimited redo and
preloading of size, start state and move sequence. In Jan 2002
(V2.4) the 'Undo all' option was added plus several fixes to
support much larger move sequences and play areas.
Click
here to try Maze of Life
|
|
Plank puzzles
The plank puzzles is one of the best clickmazes puzzles so far.
Imagine yourelf marooned in a swamp, with only three short planks
to help you move around. Use the planks to form bridges between
tree-stumps, and find a route back to dry ground.
The plank puzzle applet is the work of Graham
Rogers and is an honorary member of the clickmazes applet family.
I also thank one Andy Williams who was the first to develop a
successful plank-puzzle solver.
Click
here to try the Plank puzzles
|
|
Oskar's dragon maze
The dragon maze is an ingenious fractal maze design by Oskar
van Deventer. Use the applet to drag the layers of interwoven
lattice-work one at a time from left to right and watch the maze
develop. The secret is the white areas of each layer are transparent,
allowing underlying colours to show through.
This applet required a small diversion back
to the theory books to discover how to create an image with transparent
areas. In fact you don't (well I didn't) you set up a filter
instead. Nothing is ever quite what it seems.
Click
here to discover Oskar's dragon maze
|
|
No-left-turn maze
Looks like a simple maze until your realise you can't turn left
(or make U-turns). Some old Java here, but I thought it about
time it went on-line (maze No.2 is new though).
Click
here to try the No-left-turn maze
|
|
Oskar's Four-bit mazes
Well now, Java2 at last (or more precisiely Java 1.3.0). That
wasn't so bad after all, and look at me, I'm even using GridBag
layout now, like a pro. I only hope it works for the rest of
you, because I'm not sure I trust a browser with a Java2 pop-up
applet as far as I could throw an exception.
I needed a small, non-graphical, challenge to
test my new found skills. Oskar's four-bit mazes were perfect.
If you manage to switch off all those lights just be careful
not to fall over the furniture.
Click
here to try the Four-bit mazes
|
|
HexaRoll
Another great puzzle challenge from Oskar van Deventer, based
on a variation of the tilt theme. But oh, applets with hexagons
and rotating shapes?... that has to be one for Graham. With lots
of late night development consultancy from Louie the result was
sure to be another perfectly executed applet.
So what exactly was my contribution? Well I
did find the odd bug, and even tried to fix a couple, but my
main task was to encode up the mazes, which as you might see
from the HTML source took a little while to sort out. And then
having gone to all that trouble I really couldn't theme resist
trying a couple more mazes of my own.
Click
here to try HexaRoll
|
|
Exotic tilt
Two more exotic variations on the tilt theme, made possible by
a multi-purpose applet developed by Graham which supports just
about all forms of tilt puzzles so far, and a few other things
yet to be invented, so this list will probably grow and grow.
So far we have...
The magnetic block puzzles, which were
inspired by Denki Blocks.
Denki does not itself use the tilt rule, but adding it allowed
me to create some really tiny, meany puzzles. Try them and see,
or try something less mind-blowing...
The cup and pea puzzles, which were invented when Graham
mis-understood an idea suggested by Andy Williams. A fortuitous
accident that yielded one of the best tilt variations so far.
Click
here to try the magnetic block puzzles
Click here to try
the cup and pea puzzles
|
|
Orientation mazes
Ooops I'm definitely slipping behind here... yet another applet
by someone else, and this time the puzzles aren't my own either.
Well at least I thought up the concept. Nice applet by Jimmy
Stephens of Atlanta, including elegant graphics. Puzzles are
so tiny and yet so very, very mean, all thanks to OrientExpress,
an extension of SwampBeast.
2002 might be a bit 'slow' so far, but these
puzzles should keep you hardened puzzle nuts distracted for a
while. Good luck!
Click
here to try the Orientation mazes
|
|
Box-up puzzles
At last some new java all of my own. A sort of evolution of Graham's
'magblock' code, but with all the standard stuff separated off
into its own class (puzzlePresenter) to enable rapid development
of new puzzles. The clever bit is puzzlePresenter dynamically
loads a second puzzle-specific class ('boxup' in this case) which
must implement the stdpuzz interface. Took a little while to
manage all the funny looking exceptions that can occur if things
go wrong.
I sometimes call this inside-out Sokoban, so
if you like Sokoban try this...
Click
here to try the box-up puzzles
|
|
Wriggle puzzles
OK, I'm on a roll now. Actually it can't be a roll - I've done
that already, so it must a wriggle. My puzzlePresenter classes
are making this all very easy now, but I've added lots of interfaces
to allow optional elements of game play. This one required the
introduction of a interface to handle mouse motion.
Looks like another collection is underway here. Colour-wriggle
mazes added August 06, TJ-wriggle puzzles added August 07 and Extreme
TJ-wriggle added December 2010.
Click
here to try the wriggle puzzles
Click here to try
the colour-wriggle mazes
Click here to try
the TJ-wriggle puzzles
Click here to try the Extreme TJ-wriggle
puzzles
|
|
Oskar's collection
Oskar meet java... java meet Oskar. Ignoring an early misfortunate
detour into the deep dead-end of Swing (all-singing, all dancing
- but very browser unfriendly) there's no doubt Oskar has taken
firm command of his very own virtual puzzle world (and a four-dimensional,
parallel-universe world at that). Check it out...
Click
here to try the 4D maze
Click here to
try the parallel universe maze
Click here to
try the counter-step maze
Click here to try
the threesome maze
Click here to try
the haunted vending machine
Click here to try
the Belgian maze
Click here to try
the jukebox puzzle
Click here to
try the active mazes
|
|
Polyfold puzzles
Another Oskar creation reworked and extended out of almost all
recognition for the web. Initially implemented using some basic
trig functions, but which later proved superfluous. The biggest
hurdle was implementing my own version of the Line2D.intersects()
method. Not so much referencing the JAVA text-books here, it
was more back to my O-level maths notes.
Click
here to try the polyfold puzzles
|
|
Chain-reaction
This java is over a year old and was simple enough except for
the auto-generation feature where it took a while to fine tune
the algorithm such that the search for a new puzzle had an acceptably
low number of solutions, yet didn't take for-ever to find them.
Then there was the need to revisit java Threads, the first time
for a while. Thanks to the auto-generation feature this is the
first of my creations that you can play endlessly, I should really
add a scoring feature.
Click
here to try chain-reaction
|
|
Full-house puzzles
This is where puzzlePresenter, and all that came before and after,
really starts to pay-off. A couple of hours tinkering with the
logic in the bottom of the ('class'ical) barrels is all it takes
to knock out something new. My thanks to Erich Friedman for dreaming
up such a clever, yet elegant, puzzle and for lending me a few
samples to present here.
Click
here to try full-house
|
|
XL-up Maze
The applet here was simple, as was a solver. The hardest challenge
by far was trying to write my own mini 'beasty' program to eek
out the sequence as far as possible.
Click
here to try the XL-up Maze
|

|
Step-over sequence mazes
A straight-forward addition, almost boring. Prototyping the full-size,
physical walk-round version took eons longer.
Click here to
try the step-over sequence mazes
|
|
Quantum maze
Another straight-forward addition to the applet collection, and this
time absolutely no work required to devise an encoding for the maze
layouts. With a quantum maze the start-state is not defined!
Click here
to explore the quantum maze
|
|
Stepping stone mazes
Seemed to be able to reuse mostly pre-existing source for this one.
Recycling old code is always satisfying.
Click
here to explore the stepping stone mazes
|
|
Puff-ball puzzles
Shook the dust of the beasty code again for this one - to hunt for
those deepest-state goals. If the solution eludes you (as they do
mostly for me!) take a peek at the HTML source for the web-page,
you'll find the solution hidden there, in plain sight.
Click
here to explore the puff-ball puzzles
|
|
|