And it takes all of two seconds to add a simple if(validMove(..)) check to makeMove. Remember, makeMove is documented to throw InvalidMoveException or some such. I really don't see why this needs to be graded in any special manner. If you don't check your input you get what you deserve.
For what Java's interface mechanism is worth, this is an example of why it is not enough to ensure interface integrity. There is no substitute for good documentation. Javadocs don't ensure good documentation either. In fact they encourage the repetition of uninformative details, in some cases, which causes a worse problem: subtly misleading and out-of-date comments which don't reflect the code they document accurately.
But enough grumbling for now, must continue "documenting".