The objective is to compose a computer driven, intelligent Tic-Tac-Toe game using a game tree and the minimax algorithm which will allow the computer to strategize a little and look ahead. It must be written completely as an OOP project in C++ with any simple GUI.
The game must have the ability to record the game tree once it is created by storing the information to a flat text file which will be readable by the game during runtime. When starting, the program must run against itself in a random fashion of game play in order to construct and record the complete game tree along with its' costs (values). Once satisfied, the program will switch to play human vs. computer (e.g. from *learn* to *play* mode) where it will use the learned (recorded) game tree to quickly evaluate a path to the maximum scenario.
In other words, once complete the tic-tac-toe software will be able to build, rate and record its own game tree in order to make decisions based on the node values of this tree.
Remember, the game MUST use the MiniMax algorithm. Here it is in a stepped form:
1) Generate the complete game tree to depth 10.
2) The final nodes will have a value assigned to them, denoting how close to a winning scenario they are. The higher the value, the closer to a winning scenario.
3) Then minimize the scores if calculating for the opponent, and maximize them for the player. Propagate the scores upward through the tree until the computer can make a decision as to the best "branch" of game play to explore.
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done. The source code MUST be well commented.
2) Installation package that will install the software (in ready-to-run condition) on the platform(s) specified in this bid request.
3) Complete ownership and distribution copyrights to all work purchased.
1.) Must be written in C++ to be compiled under any standard C/C++ compiler.
2.) Must work on Windows 2000 and Windows XP.