actually, the sorting is an optimization. The search needs to recurse down every possible move up to a certain depth. However, the algorithm I am using, Alpha-beta (http://en.wikipedia.org/wiki/Alpha-beta_pruning), performs a lot better when the initial move ordering is good (good moves are searched before bad ones). Of course, I cannot just find a best move without doing the recursion, otherwise I wouldn't need the recursion in the first place. Sorting just makes it MORE LIKELY that good moves are placed in the front.