@Override protected void turnTaken(final FindTheNumberPlayer player, final Integer guess) throws InvalidTurnException { if(!(range.isInRange(guess))) { throw new InvalidTurnException("Number out of range"); } if(guesses.contains(guess)) { throw new InvalidTurnException("Number already guessed"); } lastGuess = guess; lastPlayer = player; if (isOver()) { return; } if (guess > numberToGuess) { range = DefaultRange.create( range.getMin(), guess-1); } else { range = DefaultRange.create( Math.min(range.getMax(), guess+1), range.getMax()); } }