Find Chess960 starting position identifier: Difference between revisions
Content added Content deleted
Line 599: | Line 599: | ||
} |
} |
||
List<Integer> rookAndKing = |
List<Integer> rookAndKing = |
||
List.of(aPosition.indexOf('R'), aPosition.indexOf('K'), aPosition.lastIndexOf('R')); |
|||
if ( ! ( rookAndKing.get(0) < rookAndKing.get(1) && rookAndKing.get(1) < rookAndKing.get(2) ) ) { |
if ( ! ( rookAndKing.get(0) < rookAndKing.get(1) && rookAndKing.get(1) < rookAndKing.get(2) ) ) { |
||
throw new AssertionError("The king must be between the two rooks."); |
throw new AssertionError("The king must be between the two rooks."); |
||
Line 621: | Line 622: | ||
private static String retainIf(String aText, Predicate<Character> aPredicate) { |
private static String retainIf(String aText, Predicate<Character> aPredicate) { |
||
return aText.chars().mapToObj(i -> (char) i).filter(aPredicate) |
return aText.chars().mapToObj( i -> (char) i ).filter(aPredicate) |
||
.map(String::valueOf).reduce("", String::concat); |
|||
} |
} |
||