| 703 | } |
| 704 | |
| 705 | private boolean insufficientMaterial(List<Piece> opponentPieces) { |
| 706 | if (opponentPieces.size() == 1) { |
| 707 | return true; |
| 708 | } else if (opponentPieces.size() == 2) { |
| 709 | return opponentPieces.stream().filter(piece -> piece.sameType(PieceType.KNIGHT) || piece.sameType(PieceType.BISHOP)).count() == 1; |
| 710 | } else if (opponentPieces.size() == 3) { |
| 711 | return opponentPieces.stream().filter(piece -> piece.sameType(PieceType.KNIGHT)).count() == 2; |
| 712 | } |
| 713 | return false; |
| 714 | } |
| 715 | |
| 716 | private void postMoveUpdates(Move move) { |
| 717 | moveList.add(move); |