package li.seiji.minichess.player;

import li.seiji.minichess.board.Board;
import li.seiji.minichess.move.Move;

public interface IPlayer {

    /**
     * Notifies the player that the game is about to start.
     */
    void start();

    /**
     * Called to get the players next move.
     * @param board Current state of the boad.
     * @return The new move of the player.
     */
    Move getMove(Board board);

    /**
     * This notifies the player about the other player's move.
     * @param board Current state of the board.
     * @param move Move of the other player.
     */
    void setMove(Board board, Move move);

}

@@ -29,16 +29,64 @@
 layer;%0A%0A
+import li.seiji.minichess.InvalidMoveException;%0A
 import l
@@ -456,16 +456,44 @@
 d board)
+ throws InvalidMoveException
 ;%0A%0A    /

Add InvalidMoveException to getMove() IPlayer method