I'm working on a game of tic-tac-toe that uses an NN evolved using a genetic algorithm. The problem is that the GA doesn't seem to be finding the answer. Even after a hundred generations the best NN doesn't even go for the obvious 'complete your friggin row' moves!

I don't suppose anyone has any obvious hints for this? I'm currently using a "how good is this board?" approach, where I pass each possible move to the NN, it returns a fitness value, and then the highest fitness move is taken. I'm passing the value of all the cells to the NN (1 for yours, -1 for his, 0 for empty) as well as the absolute value of cells (filled or empty). Right now it has 18 inputs, 2 9-neuron hidden layers and a single output (the fitness) ... The fitness of each NN is determined solely based on wins (+1), loses (-2) and ties (0). They are randomly matched against 5 opponents each in a tournament to determine fitness.

Is there some problem that makes Tic-Tac-Toe unsuitable for this?