mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 00:33:09 +00:00
Rename type_of_piece() and color_of_piece()
No functional change. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
parent
923b14afaa
commit
ae2f5f25cd
6 changed files with 40 additions and 40 deletions
|
@ -95,7 +95,7 @@ const string move_to_san(Position& pos, Move m) {
|
||||||
bool ambiguousMove, ambiguousFile, ambiguousRank;
|
bool ambiguousMove, ambiguousFile, ambiguousRank;
|
||||||
Square sq, from = move_from(m);
|
Square sq, from = move_from(m);
|
||||||
Square to = move_to(m);
|
Square to = move_to(m);
|
||||||
PieceType pt = type_of_piece(pos.piece_on(from));
|
PieceType pt = piece_type(pos.piece_on(from));
|
||||||
string san;
|
string san;
|
||||||
|
|
||||||
if (m == MOVE_NONE)
|
if (m == MOVE_NONE)
|
||||||
|
|
|
@ -217,7 +217,7 @@ MoveStack* generate<MV_NON_CAPTURE_CHECK>(const Position& pos, MoveStack* mlist)
|
||||||
while (b)
|
while (b)
|
||||||
{
|
{
|
||||||
from = pop_1st_bit(&b);
|
from = pop_1st_bit(&b);
|
||||||
switch (type_of_piece(pos.piece_on(from)))
|
switch (piece_type(pos.piece_on(from)))
|
||||||
{
|
{
|
||||||
case PAWN: /* Will be generated togheter with pawns direct checks */ break;
|
case PAWN: /* Will be generated togheter with pawns direct checks */ break;
|
||||||
case KNIGHT: mlist = generate_discovered_checks<KNIGHT>(pos, mlist, from); break;
|
case KNIGHT: mlist = generate_discovered_checks<KNIGHT>(pos, mlist, from); break;
|
||||||
|
@ -265,9 +265,9 @@ MoveStack* generate<MV_EVASION>(const Position& pos, MoveStack* mlist) {
|
||||||
checkersCnt++;
|
checkersCnt++;
|
||||||
checksq = pop_1st_bit(&b);
|
checksq = pop_1st_bit(&b);
|
||||||
|
|
||||||
assert(color_of_piece(pos.piece_on(checksq)) == opposite_color(us));
|
assert(piece_color(pos.piece_on(checksq)) == opposite_color(us));
|
||||||
|
|
||||||
switch (type_of_piece(pos.piece_on(checksq)))
|
switch (piece_type(pos.piece_on(checksq)))
|
||||||
{
|
{
|
||||||
case BISHOP: sliderAttacks |= BishopPseudoAttacks[checksq]; break;
|
case BISHOP: sliderAttacks |= BishopPseudoAttacks[checksq]; break;
|
||||||
case ROOK: sliderAttacks |= RookPseudoAttacks[checksq]; break;
|
case ROOK: sliderAttacks |= RookPseudoAttacks[checksq]; break;
|
||||||
|
|
|
@ -237,7 +237,7 @@ void MovePicker::score_captures() {
|
||||||
{
|
{
|
||||||
m = cur->move;
|
m = cur->move;
|
||||||
cur->score = piece_value_midgame(pos.piece_on(move_to(m)))
|
cur->score = piece_value_midgame(pos.piece_on(move_to(m)))
|
||||||
- type_of_piece(pos.piece_on(move_from(m)));
|
- piece_type(pos.piece_on(move_from(m)));
|
||||||
|
|
||||||
if (move_is_promotion(m))
|
if (move_is_promotion(m))
|
||||||
cur->score += QueenValueMidgame;
|
cur->score += QueenValueMidgame;
|
||||||
|
@ -276,7 +276,7 @@ void MovePicker::score_evasions() {
|
||||||
cur->score = seeScore - History::MaxValue; // Be sure we are at the bottom
|
cur->score = seeScore - History::MaxValue; // Be sure we are at the bottom
|
||||||
else if (pos.move_is_capture(m))
|
else if (pos.move_is_capture(m))
|
||||||
cur->score = piece_value_midgame(pos.piece_on(move_to(m)))
|
cur->score = piece_value_midgame(pos.piece_on(move_to(m)))
|
||||||
- type_of_piece(pos.piece_on(move_from(m))) + History::MaxValue;
|
- piece_type(pos.piece_on(move_from(m))) + History::MaxValue;
|
||||||
else
|
else
|
||||||
cur->score = H.value(pos.piece_on(move_from(m)), move_to(m));
|
cur->score = H.value(pos.piece_on(move_from(m)), move_to(m));
|
||||||
}
|
}
|
||||||
|
|
|
@ -366,7 +366,7 @@ void Position::print(Move move) const {
|
||||||
if (move)
|
if (move)
|
||||||
{
|
{
|
||||||
Position p(*this, thread());
|
Position p(*this, thread());
|
||||||
string dd = (color_of_piece(piece_on(move_from(move))) == BLACK ? ".." : "");
|
string dd = (piece_color(piece_on(move_from(move))) == BLACK ? ".." : "");
|
||||||
cout << "\nMove is: " << dd << move_to_san(p, move);
|
cout << "\nMove is: " << dd << move_to_san(p, move);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -381,7 +381,7 @@ void Position::print(Move move) const {
|
||||||
if (piece == PIECE_NONE && square_color(sq) == DARK)
|
if (piece == PIECE_NONE && square_color(sq) == DARK)
|
||||||
piece = PIECE_NONE_DARK_SQ;
|
piece = PIECE_NONE_DARK_SQ;
|
||||||
|
|
||||||
char c = (color_of_piece(piece_on(sq)) == BLACK ? '=' : ' ');
|
char c = (piece_color(piece_on(sq)) == BLACK ? '=' : ' ');
|
||||||
cout << c << PieceToChar[piece] << c << '|';
|
cout << c << PieceToChar[piece] << c << '|';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -520,7 +520,7 @@ bool Position::move_attacks_square(Move m, Square s) const {
|
||||||
do_move_bb(&occ, make_move_bb(f, t));
|
do_move_bb(&occ, make_move_bb(f, t));
|
||||||
xray = ( (rook_attacks_bb(s, occ) & pieces(ROOK, QUEEN))
|
xray = ( (rook_attacks_bb(s, occ) & pieces(ROOK, QUEEN))
|
||||||
|(bishop_attacks_bb(s, occ) & pieces(BISHOP, QUEEN)))
|
|(bishop_attacks_bb(s, occ) & pieces(BISHOP, QUEEN)))
|
||||||
& pieces_of_color(color_of_piece(piece_on(f)));
|
& pieces_of_color(piece_color(piece_on(f)));
|
||||||
|
|
||||||
// If we have attacks we need to verify that are caused by our move
|
// If we have attacks we need to verify that are caused by our move
|
||||||
// and are not already existent ones.
|
// and are not already existent ones.
|
||||||
|
@ -552,7 +552,7 @@ bool Position::pl_move_is_legal(Move m, Bitboard pinned) const {
|
||||||
Color us = side_to_move();
|
Color us = side_to_move();
|
||||||
Square from = move_from(m);
|
Square from = move_from(m);
|
||||||
|
|
||||||
assert(color_of_piece(piece_on(from)) == us);
|
assert(piece_color(piece_on(from)) == us);
|
||||||
assert(piece_on(king_square(us)) == make_piece(us, KING));
|
assert(piece_on(king_square(us)) == make_piece(us, KING));
|
||||||
|
|
||||||
// En passant captures are a tricky special case. Because they are
|
// En passant captures are a tricky special case. Because they are
|
||||||
|
@ -582,7 +582,7 @@ bool Position::pl_move_is_legal(Move m, Bitboard pinned) const {
|
||||||
// If the moving piece is a king, check whether the destination
|
// If the moving piece is a king, check whether the destination
|
||||||
// square is attacked by the opponent. Castling moves are checked
|
// square is attacked by the opponent. Castling moves are checked
|
||||||
// for legality during move generation.
|
// for legality during move generation.
|
||||||
if (type_of_piece(piece_on(from)) == KING)
|
if (piece_type(piece_on(from)) == KING)
|
||||||
return move_is_castle(m) || !(attackers_to(move_to(m)) & pieces_of_color(opposite_color(us)));
|
return move_is_castle(m) || !(attackers_to(move_to(m)) & pieces_of_color(opposite_color(us)));
|
||||||
|
|
||||||
// A non-king move is legal if and only if it is not pinned or it
|
// A non-king move is legal if and only if it is not pinned or it
|
||||||
|
@ -636,15 +636,15 @@ bool Position::move_is_pl(const Move m) const {
|
||||||
|
|
||||||
// If the from square is not occupied by a piece belonging to the side to
|
// If the from square is not occupied by a piece belonging to the side to
|
||||||
// move, the move is obviously not legal.
|
// move, the move is obviously not legal.
|
||||||
if (pc == PIECE_NONE || color_of_piece(pc) != us)
|
if (pc == PIECE_NONE || piece_color(pc) != us)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// The destination square cannot be occupied by a friendly piece
|
// The destination square cannot be occupied by a friendly piece
|
||||||
if (color_of_piece(piece_on(to)) == us)
|
if (piece_color(piece_on(to)) == us)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// Handle the special case of a pawn move
|
// Handle the special case of a pawn move
|
||||||
if (type_of_piece(pc) == PAWN)
|
if (piece_type(pc) == PAWN)
|
||||||
{
|
{
|
||||||
// Move direction must be compatible with pawn color
|
// Move direction must be compatible with pawn color
|
||||||
int direction = to - from;
|
int direction = to - from;
|
||||||
|
@ -666,7 +666,7 @@ bool Position::move_is_pl(const Move m) const {
|
||||||
case DELTA_SE:
|
case DELTA_SE:
|
||||||
// Capture. The destination square must be occupied by an enemy
|
// Capture. The destination square must be occupied by an enemy
|
||||||
// piece (en passant captures was handled earlier).
|
// piece (en passant captures was handled earlier).
|
||||||
if (color_of_piece(piece_on(to)) != them)
|
if (piece_color(piece_on(to)) != them)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// From and to files must be one file apart, avoids a7h5
|
// From and to files must be one file apart, avoids a7h5
|
||||||
|
@ -712,7 +712,7 @@ bool Position::move_is_pl(const Move m) const {
|
||||||
{
|
{
|
||||||
// In case of king moves under check we have to remove king so to catch
|
// In case of king moves under check we have to remove king so to catch
|
||||||
// as invalid moves like b1a1 when opposite queen is on c1.
|
// as invalid moves like b1a1 when opposite queen is on c1.
|
||||||
if (type_of_piece(piece_on(from)) == KING)
|
if (piece_type(piece_on(from)) == KING)
|
||||||
{
|
{
|
||||||
Bitboard b = occupied_squares();
|
Bitboard b = occupied_squares();
|
||||||
clear_bit(&b, from);
|
clear_bit(&b, from);
|
||||||
|
@ -745,11 +745,11 @@ bool Position::move_gives_check(Move m, const CheckInfo& ci) const {
|
||||||
assert(is_ok());
|
assert(is_ok());
|
||||||
assert(move_is_ok(m));
|
assert(move_is_ok(m));
|
||||||
assert(ci.dcCandidates == discovered_check_candidates(side_to_move()));
|
assert(ci.dcCandidates == discovered_check_candidates(side_to_move()));
|
||||||
assert(color_of_piece(piece_on(move_from(m))) == side_to_move());
|
assert(piece_color(piece_on(move_from(m))) == side_to_move());
|
||||||
|
|
||||||
Square from = move_from(m);
|
Square from = move_from(m);
|
||||||
Square to = move_to(m);
|
Square to = move_to(m);
|
||||||
PieceType pt = type_of_piece(piece_on(from));
|
PieceType pt = piece_type(piece_on(from));
|
||||||
|
|
||||||
// Direct check ?
|
// Direct check ?
|
||||||
if (bit_is_set(ci.checkSq[pt], to))
|
if (bit_is_set(ci.checkSq[pt], to))
|
||||||
|
@ -917,11 +917,11 @@ void Position::do_move(Move m, StateInfo& newSt, const CheckInfo& ci, bool moveI
|
||||||
bool pm = move_is_promotion(m);
|
bool pm = move_is_promotion(m);
|
||||||
|
|
||||||
Piece piece = piece_on(from);
|
Piece piece = piece_on(from);
|
||||||
PieceType pt = type_of_piece(piece);
|
PieceType pt = piece_type(piece);
|
||||||
PieceType capture = ep ? PAWN : type_of_piece(piece_on(to));
|
PieceType capture = ep ? PAWN : piece_type(piece_on(to));
|
||||||
|
|
||||||
assert(color_of_piece(piece_on(from)) == us);
|
assert(piece_color(piece_on(from)) == us);
|
||||||
assert(color_of_piece(piece_on(to)) == them || square_is_empty(to));
|
assert(piece_color(piece_on(to)) == them || square_is_empty(to));
|
||||||
assert(!(ep || pm) || piece == make_piece(us, PAWN));
|
assert(!(ep || pm) || piece == make_piece(us, PAWN));
|
||||||
assert(!pm || relative_rank(us, to) == RANK_8);
|
assert(!pm || relative_rank(us, to) == RANK_8);
|
||||||
|
|
||||||
|
@ -1255,10 +1255,10 @@ void Position::undo_move(Move m) {
|
||||||
bool ep = move_is_ep(m);
|
bool ep = move_is_ep(m);
|
||||||
bool pm = move_is_promotion(m);
|
bool pm = move_is_promotion(m);
|
||||||
|
|
||||||
PieceType pt = type_of_piece(piece_on(to));
|
PieceType pt = piece_type(piece_on(to));
|
||||||
|
|
||||||
assert(square_is_empty(from));
|
assert(square_is_empty(from));
|
||||||
assert(color_of_piece(piece_on(to)) == us);
|
assert(piece_color(piece_on(to)) == us);
|
||||||
assert(!pm || relative_rank(us, to) == RANK_8);
|
assert(!pm || relative_rank(us, to) == RANK_8);
|
||||||
assert(!ep || to == st->previous->epSquare);
|
assert(!ep || to == st->previous->epSquare);
|
||||||
assert(!ep || relative_rank(us, to) == RANK_6);
|
assert(!ep || relative_rank(us, to) == RANK_6);
|
||||||
|
@ -1502,16 +1502,16 @@ int Position::see(Move m) const {
|
||||||
|
|
||||||
from = move_from(m);
|
from = move_from(m);
|
||||||
to = move_to(m);
|
to = move_to(m);
|
||||||
capturedType = type_of_piece(piece_on(to));
|
capturedType = piece_type(piece_on(to));
|
||||||
occupied = occupied_squares();
|
occupied = occupied_squares();
|
||||||
|
|
||||||
// Handle en passant moves
|
// Handle en passant moves
|
||||||
if (st->epSquare == to && type_of_piece(piece_on(from)) == PAWN)
|
if (st->epSquare == to && piece_type(piece_on(from)) == PAWN)
|
||||||
{
|
{
|
||||||
Square capQq = (side_to_move() == WHITE ? to - DELTA_N : to - DELTA_S);
|
Square capQq = (side_to_move() == WHITE ? to - DELTA_N : to - DELTA_S);
|
||||||
|
|
||||||
assert(capturedType == PIECE_TYPE_NONE);
|
assert(capturedType == PIECE_TYPE_NONE);
|
||||||
assert(type_of_piece(piece_on(capQq)) == PAWN);
|
assert(piece_type(piece_on(capQq)) == PAWN);
|
||||||
|
|
||||||
// Remove the captured pawn
|
// Remove the captured pawn
|
||||||
clear_bit(&occupied, capQq);
|
clear_bit(&occupied, capQq);
|
||||||
|
@ -1524,7 +1524,7 @@ int Position::see(Move m) const {
|
||||||
attackers = attackers_to(to, occupied);
|
attackers = attackers_to(to, occupied);
|
||||||
|
|
||||||
// If the opponent has no attackers we are finished
|
// If the opponent has no attackers we are finished
|
||||||
stm = opposite_color(color_of_piece(piece_on(from)));
|
stm = opposite_color(piece_color(piece_on(from)));
|
||||||
stmAttackers = attackers & pieces_of_color(stm);
|
stmAttackers = attackers & pieces_of_color(stm);
|
||||||
if (!stmAttackers)
|
if (!stmAttackers)
|
||||||
return PieceValueMidgame[capturedType];
|
return PieceValueMidgame[capturedType];
|
||||||
|
@ -1536,7 +1536,7 @@ int Position::see(Move m) const {
|
||||||
// capture with the least valuable piece. After each capture, we look for
|
// capture with the least valuable piece. After each capture, we look for
|
||||||
// new X-ray attacks from behind the capturing piece.
|
// new X-ray attacks from behind the capturing piece.
|
||||||
swapList[0] = PieceValueMidgame[capturedType];
|
swapList[0] = PieceValueMidgame[capturedType];
|
||||||
capturedType = type_of_piece(piece_on(from));
|
capturedType = piece_type(piece_on(from));
|
||||||
|
|
||||||
do {
|
do {
|
||||||
// Locate the least valuable attacker for the side to move. The loop
|
// Locate the least valuable attacker for the side to move. The loop
|
||||||
|
@ -1621,8 +1621,8 @@ void Position::clear() {
|
||||||
|
|
||||||
void Position::put_piece(Piece p, Square s) {
|
void Position::put_piece(Piece p, Square s) {
|
||||||
|
|
||||||
Color c = color_of_piece(p);
|
Color c = piece_color(p);
|
||||||
PieceType pt = type_of_piece(p);
|
PieceType pt = piece_type(p);
|
||||||
|
|
||||||
board[s] = p;
|
board[s] = p;
|
||||||
index[s] = pieceCount[c][pt]++;
|
index[s] = pieceCount[c][pt]++;
|
||||||
|
@ -1645,7 +1645,7 @@ Key Position::compute_key() const {
|
||||||
|
|
||||||
for (Square s = SQ_A1; s <= SQ_H8; s++)
|
for (Square s = SQ_A1; s <= SQ_H8; s++)
|
||||||
if (square_is_occupied(s))
|
if (square_is_occupied(s))
|
||||||
result ^= zobrist[color_of_piece(piece_on(s))][type_of_piece(piece_on(s))][s];
|
result ^= zobrist[piece_color(piece_on(s))][piece_type(piece_on(s))][s];
|
||||||
|
|
||||||
if (ep_square() != SQ_NONE)
|
if (ep_square() != SQ_NONE)
|
||||||
result ^= zobEp[ep_square()];
|
result ^= zobEp[ep_square()];
|
||||||
|
@ -1923,8 +1923,8 @@ bool Position::is_ok(int* failedStep) const {
|
||||||
{
|
{
|
||||||
int kingCount[2] = {0, 0};
|
int kingCount[2] = {0, 0};
|
||||||
for (Square s = SQ_A1; s <= SQ_H8; s++)
|
for (Square s = SQ_A1; s <= SQ_H8; s++)
|
||||||
if (type_of_piece(piece_on(s)) == KING)
|
if (piece_type(piece_on(s)) == KING)
|
||||||
kingCount[color_of_piece(piece_on(s))]++;
|
kingCount[piece_color(piece_on(s))]++;
|
||||||
|
|
||||||
if (kingCount[0] != 1 || kingCount[1] != 1)
|
if (kingCount[0] != 1 || kingCount[1] != 1)
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -300,7 +300,7 @@ namespace {
|
||||||
if (moveIsCheck && pos.see_sign(m) >= 0)
|
if (moveIsCheck && pos.see_sign(m) >= 0)
|
||||||
result += CheckExtension[PvNode];
|
result += CheckExtension[PvNode];
|
||||||
|
|
||||||
if (type_of_piece(pos.piece_on(move_from(m))) == PAWN)
|
if (piece_type(pos.piece_on(move_from(m))) == PAWN)
|
||||||
{
|
{
|
||||||
Color c = pos.side_to_move();
|
Color c = pos.side_to_move();
|
||||||
if (relative_rank(c, move_to(m)) == RANK_7)
|
if (relative_rank(c, move_to(m)) == RANK_7)
|
||||||
|
@ -316,7 +316,7 @@ namespace {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( captureOrPromotion
|
if ( captureOrPromotion
|
||||||
&& type_of_piece(pos.piece_on(move_to(m))) != PAWN
|
&& piece_type(pos.piece_on(move_to(m))) != PAWN
|
||||||
&& ( pos.non_pawn_material(WHITE) + pos.non_pawn_material(BLACK)
|
&& ( pos.non_pawn_material(WHITE) + pos.non_pawn_material(BLACK)
|
||||||
- piece_value_midgame(pos.piece_on(move_to(m))) == VALUE_ZERO)
|
- piece_value_midgame(pos.piece_on(move_to(m))) == VALUE_ZERO)
|
||||||
&& !move_is_special(m))
|
&& !move_is_special(m))
|
||||||
|
@ -1530,7 +1530,7 @@ split_point_start: // At split points actual search starts from here
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
// Rule 2. Queen contact check is very dangerous
|
// Rule 2. Queen contact check is very dangerous
|
||||||
if ( type_of_piece(pc) == QUEEN
|
if ( piece_type(pc) == QUEEN
|
||||||
&& bit_is_set(kingAtt, to))
|
&& bit_is_set(kingAtt, to))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
@ -1666,7 +1666,7 @@ split_point_start: // At split points actual search starts from here
|
||||||
// value of the threatening piece, don't prune moves which defend it.
|
// value of the threatening piece, don't prune moves which defend it.
|
||||||
if ( pos.move_is_capture(threat)
|
if ( pos.move_is_capture(threat)
|
||||||
&& ( piece_value_midgame(pos.piece_on(tfrom)) >= piece_value_midgame(pos.piece_on(tto))
|
&& ( piece_value_midgame(pos.piece_on(tfrom)) >= piece_value_midgame(pos.piece_on(tto))
|
||||||
|| type_of_piece(pos.piece_on(tfrom)) == KING)
|
|| piece_type(pos.piece_on(tfrom)) == KING)
|
||||||
&& pos.move_attacks_square(m, tto))
|
&& pos.move_attacks_square(m, tto))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
|
|
@ -360,11 +360,11 @@ inline Piece make_piece(Color c, PieceType pt) {
|
||||||
return Piece((c << 3) | pt);
|
return Piece((c << 3) | pt);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline PieceType type_of_piece(Piece p) {
|
inline PieceType piece_type(Piece p) {
|
||||||
return PieceType(p & 7);
|
return PieceType(p & 7);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Color color_of_piece(Piece p) {
|
inline Color piece_color(Piece p) {
|
||||||
return Color(p >> 3);
|
return Color(p >> 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue