1. The game should be implemented in a class of objects, each object represents a current game. The object of the game should be created in two forms :
a) Without parameters. Thus the game is created with the standard tray, 8 x 8, with 12 pieces for each player;
b) As a parameter for the width of the board (which will always square) and a parameter for the number of pieces for each player.
2. The object of the game should only have to play two procedures.
a) Auto Play. Taking into account possible moves for a player that has the time and mandatory rule of capture should be a move randomly. If the game has finished, an exception should be thrown;
b) Play manual. It is given the possibility of indicating the origin coordinates anddestination to make a move. If the move is valid, taking into account the player who has the time and other rules, an exception will be thrown, and if the game has expired.
3. Incorrect handling of object game should lead to the release of Java exceptions, for example when the initialization parameters do not match result in a valid configuration or manual when the move is not valid.
4. The object must have game functions (properties) that indicate:
a) What is the next player to play;
b) If the game is over;
c) How many pieces of each player are at stake;
d) What is the winning player (in case of a tie or not the game has ended, this information should be indefinite)