The goal of this third assignment is to add an AI opponent to your chess game. "Shallow Blue" is a pun on Deep Blue, the IBM computer chess system which beat the reigning world champion in 1997.
Hint: For information about static evaluation functions in chess, see articles at gamedev.net and GNU.
Hint: To avoid the AI playing exactly the same game over and over (b-o-o-oring!), consider introducing the Collections.shuffle() method at appropriate points, e.g., before searching the next moves at a given level, so that when the evaluations are tied, a different move is sometimes chosen. Make sure you use a random seed, so that play is reproducible for debugging purposes.
Hint: Some students have found it helpful to first implement a "random legal move" AI to get the modularity right, and then to replace the random move choice with the NegaMax search.
Hint: Use Integer.parseInt to parse command line argument.