string sides[] = { code.substr(code.find('K', 1)), // Weaker
code.substr(0, code.find('K', 1)) }; // Stronger
- transform(sides[c].begin(), sides[c].end(), sides[c].begin(), tolower);
+ std::transform(sides[c].begin(), sides[c].end(), sides[c].begin(), tolower);
string fen = sides[0] + char('0' + int(8 - code.length()))
+ sides[1] + "/8/8/8/8/8/8/8 w - - 0 10";
// Stalemate detection with lone king
if ( pos.side_to_move() == weakerSide
&& !pos.in_check()
- && !MoveList<MV_LEGAL>(pos).size()) {
+ && !MoveList<LEGAL>(pos).size()) {
return VALUE_DRAW;
}
bpsq = ~bpsq;
}
- Square queeningSq = make_square(file_of(bpsq), RANK_1);
+ Square queeningSq = file_of(bpsq) | RANK_1;
Value result;
// If the stronger side's king is in front of the pawn, it's a win
&& !(pawns & ~file_bb(pawnFile)))
{
Square bishopSq = pos.piece_list(strongerSide, BISHOP)[0];
- Square queeningSq = relative_square(strongerSide, make_square(pawnFile, RANK_8));
+ Square queeningSq = relative_square(strongerSide, pawnFile | RANK_8);
Square kingSq = pos.king_square(weakerSide);
if ( opposite_colors(queeningSq, bishopSq)
File f = file_of(wpsq);
Rank r = rank_of(wpsq);
- Square queeningSq = make_square(f, RANK_8);
+ Square queeningSq = f | RANK_8;
int tempo = (pos.side_to_move() == strongerSide);
// If the pawn is not too far advanced and the defending king defends the
if (relative_rank(strongerSide, psq1) > relative_rank(strongerSide, psq2))
{
blockSq1 = psq1 + pawn_push(strongerSide);
- blockSq2 = make_square(file_of(psq2), rank_of(psq1));
+ blockSq2 = file_of(psq2) | rank_of(psq1);
}
else
{
blockSq1 = psq2 + pawn_push(strongerSide);
- blockSq2 = make_square(file_of(psq1), rank_of(psq2));
+ blockSq2 = file_of(psq1) | rank_of(psq2);
}
switch (file_distance(psq1, psq2))