I've been trying to create an amoeba program that is smart enough to beat me. So far I didn't really succeed. Please read how I approached the problem, and if you have other ideas of solving it or suggestions, tell me!
OK, so basically in amoeba the program looks for 28 different patterns (e.g. 5 in a row; 4 in a row with two ends open, 3 in a row, etc...). For every square, based upon which patterns appear there if an X/O is placed, a score is given. The 28 patterns have different scores for when you create that pattern or when the enemy creates it. I was hoping that a correct combination of the values of these 28 patterns might lead to an AI that can beat me, but I'm not sure; if you have any ideas on how the AI should make a decision, tell me.
So then I created a genetic algorithm that mutates the pattern values, and if it beats the original version and the latest version 7/8 time each, it becomes the latest version. Over 100 successful mutations later, the values I have evolved can't beat me, in fact it's easier to beat than the original version.
I wanted to start learning C++ with this program; but seeing as I couldn't start writing it, my plan was to first write it in freebasic and then C++.
Thanks for any suggestions,
PS: the freebasic source code can be found here; it's easy to understand as it's mainly like pseudo-code: http://www.mediafire.com/?z7i1vj4ds9b3tq8