Find Chess960 starting position identifier: Difference between revisions

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

edits