Progress is being made.

Having coded this game a number of times over the last 20 years and actually having played it a lot, I was finding that the spectrum flavour was somewhat harder than I would like.

I would vary rarely manage to clear an entire board and though a challenge is fun, too difficult and being stuck in the same score range is not.

One approach I started to consider was whether I can write software to run through generated boards and work out which ones can be completed (at least one way) and which can't.

The seed is a 16 bit integer (but excludes 0) so there's 65,534 possible boards. That combined with the starting brick could be any one of 100 positions, and then as the blocks cascade the number of new choices increases - it quickly becomes some very big numbers.

It is however PRNG - a pseudorandom number generator - specifically deterministic. That means that there's a finite number of options. It's just a massive headache to process them all.

Then I re-played the original Palm Pilot version and remembered it had undo functionality, and in fact technically not that difficult to add undo and infinite undo to boot.

Shifting the problem solving away from computing to the human mind has completely unlocked the game now. I'm able to progress reasonably easily to level 3 gaining a much better score with some careful planning and course correction using the new undo feature.

This pretty much completes the game play mechanics and I'm now on the (long) home stretch whereby I need to add the landing screen, options, high score tables (though I have that working and more later on that). I also need to test many many games to see if it breaks at all!

Here's the undo in action:

Marbles undo animation