[board, explorer, moves] Make Board::active_color private

Make the struct attribute private, and export two new methods. A getter, active_color(),
and a setter, set_active_color().

Update all references to the attribute to use the methods.
This commit is contained in:
Eryn Wells 2025-06-02 17:29:52 -07:00
parent cae93cb090
commit eaab34587c
10 changed files with 55 additions and 40 deletions

View file

@ -69,7 +69,7 @@ impl<T: BoardProvider> UnmakeMove for T {
}
let board = self.board_mut();
board.active_color = record.color;
board.set_active_color(record.color);
board.en_passant_target = record.en_passant_target;
board.castling_rights = record.castling_rights;
board.half_move_clock = record.half_move_clock;
@ -238,14 +238,14 @@ mod tests {
// Verify move was made
assert_eq!(board.get_piece(Square::C2), None);
assert_eq!(board.get_piece(Square::C3), Some(piece!(White Pawn)));
assert_eq!(board.active_color, Color::Black);
assert_eq!(board.active_color(), Color::Black);
board.unmake_move(&record)?;
// Verify original state restored
assert_eq!(board.get_piece(Square::C2), Some(piece!(White Pawn)));
assert_eq!(board.get_piece(Square::C3), None);
assert_eq!(board.active_color, Color::White);
assert_eq!(board.active_color(), Color::White);
Ok(())
}
@ -261,7 +261,7 @@ mod tests {
assert_eq!(board.get_piece(Square::E2), None);
assert_eq!(board.get_piece(Square::E4), Some(piece!(White Pawn)));
assert_eq!(board.en_passant_target, Some(Square::E3));
assert_eq!(board.active_color, Color::Black);
assert_eq!(board.active_color(), Color::Black);
board.unmake_move(&record)?;
@ -269,7 +269,7 @@ mod tests {
assert_eq!(board.get_piece(Square::E2), Some(piece!(White Pawn)));
assert_eq!(board.get_piece(Square::E4), None);
assert_eq!(board.en_passant_target, None);
assert_eq!(board.active_color, Color::White);
assert_eq!(board.active_color(), Color::White);
Ok(())
}
@ -288,14 +288,14 @@ mod tests {
assert_eq!(board.get_piece(Square::C2), None);
assert_eq!(board.get_piece(Square::F5), Some(piece!(White Bishop)));
assert_eq!(record.captured_piece, Some(piece!(Black Rook)));
assert_eq!(board.active_color, Color::Black);
assert_eq!(board.active_color(), Color::Black);
board.unmake_move(&record)?;
// Verify original state restored
assert_eq!(board.get_piece(Square::C2), Some(piece!(White Bishop)));
assert_eq!(board.get_piece(Square::F5), Some(piece!(Black Rook)));
assert_eq!(board.active_color, Color::White);
assert_eq!(board.active_color(), Color::White);
Ok(())
}
@ -335,7 +335,7 @@ mod tests {
Some(piece!(White Pawn)),
"captured pawn was not restored"
);
assert_eq!(board.active_color, Color::Black);
assert_eq!(board.active_color(), Color::Black);
Ok(())
}
@ -352,14 +352,14 @@ mod tests {
// Verify promotion was made
assert_eq!(board.get_piece(Square::F7), None);
assert_eq!(board.get_piece(Square::F8), Some(piece!(White Queen)));
assert_eq!(board.active_color, Color::Black);
assert_eq!(board.active_color(), Color::Black);
board.unmake_move(&record)?;
// Verify original pawn is restored
assert_eq!(board.get_piece(Square::F7), Some(piece!(White Pawn)));
assert_eq!(board.get_piece(Square::F8), None);
assert_eq!(board.active_color, Color::White);
assert_eq!(board.active_color(), Color::White);
Ok(())
}
@ -384,7 +384,7 @@ mod tests {
// Verify original state restored
assert_eq!(board.get_piece(Square::F7), Some(piece!(White Pawn)));
assert_eq!(board.get_piece(Square::G8), Some(piece!(Black Rook)));
assert_eq!(board.active_color, Color::White);
assert_eq!(board.active_color(), Color::White);
Ok(())
}
@ -418,7 +418,7 @@ mod tests {
assert_eq!(board.get_piece(Square::G1), None);
assert_eq!(board.get_piece(Square::F1), None);
assert_eq!(board.castling_rights, original_castling_rights);
assert_eq!(board.active_color, Color::White);
assert_eq!(board.active_color(), Color::White);
Ok(())
}
@ -452,7 +452,7 @@ mod tests {
assert_eq!(board.get_piece(Square::C1), None);
assert_eq!(board.get_piece(Square::D1), None);
assert_eq!(board.castling_rights, original_castling_rights);
assert_eq!(board.active_color, Color::White);
assert_eq!(board.active_color(), Color::White);
Ok(())
}
@ -463,7 +463,7 @@ mod tests {
Black King on E8,
Black Rook on H8,
];
board.active_color = Color::Black;
board.set_active_color(Color::Black);
let original_castling_rights = board.castling_rights;
@ -484,7 +484,7 @@ mod tests {
assert_eq!(board.get_piece(Square::G8), None);
assert_eq!(board.get_piece(Square::F8), None);
assert_eq!(board.castling_rights, original_castling_rights);
assert_eq!(board.active_color, Color::Black);
assert_eq!(board.active_color(), Color::Black);
Ok(())
}