{-WETT Authors: Georgi Dikov Martin Mihaylov 1) The code below implements a very basic Othello AI including: - simple Heauristic evaluation function - Negamax with alpha-beta pruning The main data structure was choosen to be an 2D-Array as it is relativly easy to manipulate the elements in it, but gives (hopefully) slightly better performance than the pure list solution. The AI aims to play fast in the early- and mid-game (without spending too much time for thinking) and then tries to calculate a very deep recursion near the end of the game to see the outcome before the opponent. 2) What other ideas we had: - Bitboards (much better performance, but more complicated to work with) - Transposition Tables - Move Ordering - Variation caching - Opening book - Endgame book - and many many other optimizations... Unfortunetly we couldn't get to these features or decided not to use them from the begining (ex. Bitboards) as their implementation would have taken too much time. References: http://www.samsoft.org.uk/reversi/strategy.htm http://en.wikipedia.org/wiki/Negamax#NegaMax_with_Alpha_Beta_Pruning http://othellomaster.com/OM/Report/HTML/report.html#SECTION00063000000000000000 -}