Connect-three game: Increasing level-of-difficulty as play progresses

I'm writing a connect-three type game (think Chuzzle, but without all those nasty locks, and with no big chuzzles) and I'm trying to figure out how to increase the level of difficulty as play progresses.

As it stands, I've been adding an additional block colour/shape/type when the player advances to another multiple of num_blocks*1000, and it seems to work moderately well, aside from the fact that I keep running out of new colours/shapes/types that look distinct enough on the screen.
(currently, blocks only differ by colour, but I'm planning on adding a shaped highlight to help differentiate)

I'd like to know if manipulating the probabilities of each block type based on the blocks surrounding the new block in an attempt to minimize the chances of cascades and other types of easy matches would be a good idea.

• There is only one way to find out if it's a good idea: create a quick prototype and ask people if its fun! Commented Apr 22, 2012 at 11:12

Manipulating the probabilities seems the right thing to do and also adding some sort of prediction to the algorithm you're using to increase the types/colors would help.

Just as most board games do, predicting what's going to happen in a set number of time slices (turns, moves, etc) should provide a better 'opponent' for the player. Finding actually harder patterns should help if you're running out of colors too.

Avoiding repetitive patterns then becomes the next problem to solve, since a bad pattern generation could lead to a repetitive game.

Anyway, as stated above, having a bunch of people testing it is surely a good idea.

Edit:

The order, amount and timing of appearance would define a filling pattern in this instance.

I.E: If you have 2 blue tokens next to each other, to clear them you need another blue token. If your algorithm is preventing the third blue token from appearing too soon or too close, then the player is forced to search for another move.

If the game is time based, than postponing the appearance of any third token will make it harder to get a higher score, if it's moves based than increasing the distance of the third token will have the same result.

The needed algorithm should check the neighbors of the existing tokens and keep modifying such a pattern.

• Excellent advice all round, though I have one question: What do you mean by patterns in this instance? Commented Apr 23, 2012 at 12:10
• Well, since it's a connect-3 type of game, I guess your program will fill a space with entities. The order, amount and timing of appearance defines a pattern. Commented Apr 23, 2012 at 12:21