AI Algorithm for 5-In-Row game.

I started on a project a few days ago and made a 5-In-Row game ... a game like tic-tac-toe but with a game plan at 25*25 squares and to win you need 5 in a row. It was no problem to get this game to work on a single computer and will make it work through network too.

My question here is if anyone here has any clue on how to make a good Algorithm for an AI, I have though a lot about this and it is defiantly not easy.
Lets say the Player is X and the AI is O then a good start should perhaps be to check around where the player puts its X to se if he have any other X close to the one he just put out and then try to stop him. Like this:
' _ _ _ _ _ _ _ _ _
' |_|_|_|_|_|_|_|_|_|
' |_|X|_|_|X|_|_|X|_| here the X is where to check if the player put his
' |_|_|X|_|X|_|X|_|_| mark at the 0
' |_|_|_|X|X|X|_|_|_|
' |_|X|X|X|0|X|X|X|_|
' |_|_|_|X|X|X|_|_|_|
' |_|_|X|_|X|_|X|_|_|
' |_|X|_|_|X|_|_|X|_|
' |_|_|_|_|_|_|_|_|_|

But the AI also has to think on putting its own O as good as possible to get a chance to win.

I have never done any AI stuff before and don't know if I’m thinking in the right line. Would be great if someone of you guys could give me some help and/or some hints on this.

I'm programming this game in vb.net but the language shouldn't be of so much concern, I want to know how to think to get a good algorithm for this AI in the game.

Before I start presenting you uninformed opinions I'd rather direct your attention to this link: http://ai-depot.com/Main.html . After a short glimpse I feel that it is a rather comprehensive resource on all sorts of algorithms. I didn't find any articles dealing with the logic behind your specific game. From personal experience, I would recommend that you get an overview [doesn't have to be in-depth] over various ways to tackle AI-specific algorithms. In gathering information you will most likely be in a far better position to see the problem you are facing with much more clearity. I'm confident, that you will even be able to come up with your own algorithm.

For each row of 5 on the board, keep a count of the number of X's or O's in that row,
(If there are both X's and O's, that row of 5 can't be used for a win and can be ignored))
Then each space gets a value depending on the rows it's in
If it is in a row of 4 O's, then playing at that point is a win, and it has the maximum value
If it is in a row of 4 X's then that point blocks a win, so it has next to maximum value,
If it's in a row of 3 twice then playing there makes two 4's which is a forced win (unless there's already a row of 4)
If it's in a row of 3 and in two overlapping rows of 2, then it forces a 4 in one direction and 3 twice in another direction
Otherwise you can use a heuristic adding the values of each row that contains the space
A row with both X's and O's, cannot win, and counts 0
An empty row might have value 10, a row with 1 X might have value 20, and a row with one O might have a value of 25
(You might adjust these values to change the style of the computers play)
Then play at the space with the highest total value,
(perhaps adding a little randomness)
These heurisics alone should make a decent player,
for more of a challenge you might add a lookahead with alpha-beta pruning.

Thanks a lot for the answers... that page seems to be very good I’ll read some there...

ozo, thanks, i think the way of using value/points is a good one i have an good idea on how to make my AI now... I’ll try program it as soon as possible and se if it works. There will be a lot of rows to check though... 8 rows on each empty square...

I think I will need to put extra points on the squares close the X's and O's so the AI places as close as possible, and then I’ll do some random if there are more than one square with the same point-value.

With the increasing importance of apps & networks in both business & personal interconnections, perfor. has become one of the key metrics of successful communication. This ebook is a hands-on business-case-driven guide to understanding MySQL query parameter tuning & database perf

hmm... na...
If i do so in every square it checks 4 squares in every direction it want get more point if it is close. The Points around an O Should be something like this then if I have understood this correctly:
' _ _ _ _ _ _ _ _ _
' |5|_|_|_|5|_|_|_|5|
' |_|5|_|_|5|_|_|5|_|
' |_|_|5|_|5|_|5|_|_|
' |_|_|_|5|5|5|_|_|_|
' |5|5|5|5|O|5|5|5|5|
' |_|_|_|5|5|5|_|_|_|
' |_|_|5|_|5|_|5|_|_|
' |_|5|_|_|5|_|_|5|_|
' |5|_|_|_|_|_|_|_|5|

To clarify, if you have a row with an O
|_|_|_|_|O|_|_|_|_|
It is contained in 5 overlapping sets of 5 in a row spaces
|5|5|5|5|O|_|_|_|_|

|_|5|5|5|O|5|_|_|_|

|_|_|5|5|O|5|5|_|_|

|_|_|_|5|O|5|5|5|_|

|_|_|_|_|O|5|5|5|5|
A B C D E F G H I
The square next to the O (column D or F) belongs to 4 of those sets of 5,
so its score would be 4*5=20 points
The next square over (column C or G) belongs to 3 of those sets of 5, so its score would be 3*5=15 points
The square on the edge (column A or I) belongs to only one of those sets of 5, so its score would be 1*5=5 points

I have designed a "5-in-row" game long time ago. I can tell you this: if you want to design a really strong AI you MUST implement both heuristic and recursive (tree-decision) algorithm. But "cutting the tree" is the key point here, otherwise your game will think till dawn. If somebody needs more info about AI in board games please visit my programming Resume where you can find my "Closing" game, or write to my e-mail: office@business-software.org. I am willing to share source (Delphi, C++) without charge, if anyone asks..

What is RenderMan:
RenderMan is a not any particular piece of software.
RenderMan is an industry standard, defining set of rules that any rendering software should use, to be RenderMan-compliant. Pixar's RenderMan is a flagship implementation of …

As game developers, we quickly learn that Artificial Intelligence (AI) doesn’t need to be so tough. To reference Space Ghost: “Moltar, I have a giant brain that is able to reduce any complex machine into a simple yes or no answer. (http://www.youtu…

How to fix incompatible JVM issue while installing Eclipse
While installing Eclipse in windows, got one error like above and unable to proceed with the installation.
This video describes how to successfully install Eclipse.
How to solve incompa…