Ok I know I had promised a Risk AI, and it is finished and ready to go, but I think because of the complexity there wasn't enough interest (between 2 websites even), so I am gonna hold onto it for a bit. Anyway, what I do have is a much simpler AI that even beginners may fair well at while still giving a challenge to the regulars ....drum roll please............
Announcing: A Minesweeper AI contest:
Rules:
1. You are to derive a class from the provided Player class.
2. Please remit by email (littled at gmail) one file .h or .hpp to me with your implementation.
3. You must overide all virtual functions
4. If your implementation crashes my computer or locks it up in an infinite loop you will be disqualified.
5. Entries should be submitted by April 8th 12:00pm EST
6. Winning: The player receiving the highest score wins.
7. Scoring is as follows: 1000 random boards will be created. Each player will play each of the boards. Every square you uncover that is not a bomb, you get 1 point. every time you blow up, you lose 5 points. If you complete a board(uncover all non-bombs) you get 500 points.
8. You may not call srand() in your code.
9. You may not use any tricks to call/read private members of the minefield class
10. A reference to the minefield class is passed to your class in the getMove() call. You can call any public method it has. See code below for available methods.
11. I will post a test framework in a few days, but initially I don't want to distract from the task at hand.
12. FYI: the gridsize/bomb count used is equivilent to the expert level in the windows version
13. More FYI: When instanciating a base class player, it typically scores -200 just randomly picking squares. I have created a slightly better than random player that typically scores around 20000. Both of these will be playing, but should be easy to beat. I might also enter an unofficial advance player if I have time.
14. Even More FYI: Maximum achievable points = 881000, min = -5000, Max with no wins = 375000
15. NEW The first move is guaranteed non-bomb, and because of this, I have revised scoring system.
16. NEW Not really new, but I didn't mention it before. Returning an invalid position or a square that is already uncovered will be treated as a BOMB!
17. The most important rule: Have Fun!!!
Get Code HereCode:Code removed in favor of download of code