Idea Competitive Match-3 AI

I'm taking my first shot at a Match-3 game, similar to Puzzle Quest games where you're playing against a computer opponent on a shared grid.

I've gotten most of the engine together and now I'm working on the AI. My question is how complex and/or advanced it should be in order to present a big enough challenge.

My AI is mostly put together and is working exactly as I planned, I just worry it's still too straightforward. I don't play a lot of Match-3 games so I wouldn't know what it really takes to be good at it besides a strong attention span and good logical reasoning. That being said, what I have of the AI is certainly capable of overwhelming me (lol), but whether it would present a challenge to more experienced players, I wouldn't have the slightest idea.

Here's basically how it decides what to do:

1.) The grid is analyzed and compiles a list of all legal moves (since you'll only be allowed to make moves that result in a match of 3 or more).

2.) For each possible move, the AI first simulates the outcome and determines how big a combo would result and how many "gems" are cleared. After the simulated chain is finished, it tallies up the combos, and then analyzes how many potential legal moves would then be left available at the start of the opponent's (i.e. the player's) turn.

3.) The AI would use this information to assign a score to each move according to the size of the resulting combo chain, as well as the variety of move options the player will end up having. Since different "gems" will be used for different things, the AI can use this knowledge of the player options to try and deny them access to important gems or limit their ability to chain combos.


Pretty standard setup, now that I'm reading it out. Should I expand on it more? What I could do to take it a step further is after Step 2, further analyze each of those predicted player moves in the same manner to predict combos and such. Hell, honestly, I'm confident I could make this into Deep Blue if I had time and resources.

I think the only real limit is the hardware. I can mitigate stutter by breaking the calculations down across multiple steps, but still I want to try and keep things as efficient as possible. Then again, I suppose such things shouldn't be a big concern for a turn-based game. Slowdowns are non-existent on my machine, but obviously other machines may be different.


depend on what you want as experience for the player.
should the player have a fair chance of winning ? should the AI adapt its difficulty ? should the AI play perfectly or "more humanly" etc... those are the design decisions that you should ask you. That would help you decide the constraint/requirement for your AI.

predictable AI in match 3 can be fun as it can be used to his advantage by the player. Less predictable (a little randomness weighted by the score of the combo possible) can be more challenging/variety to play.

I don't feel a Match-3 AI should be a deep blue machine to give fun.
the fun of match 3 for me is more in the fun of making my combo good enough than having a lost against the perfect AI. But only my taste ;)
Well the goal for me is largely to make it seem human-like, but therein lies the dilemma. Like I said, I don't normally play these types of games, so the challenge at the moment is determining what I can expect the average human player to be capable of.