The clickmazes applets

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 north–south maze, that lurks behind every east–west 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