[board] A ton of API refinements
This commit is contained in:
parent
99dd2d1be2
commit
867deafd13
7 changed files with 208 additions and 244 deletions
|
@ -16,24 +16,20 @@ macro_rules! board {
|
|||
};
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
#[macro_export]
|
||||
macro_rules! test_board {
|
||||
($to_move:ident, [ $($color:ident $shape:ident on $square:ident),* $(,)? ], $en_passant:ident) => {
|
||||
{
|
||||
let board = $crate::Builder::new()
|
||||
$(.place_piece(
|
||||
chessfriend_core::PlacedPiece::new(
|
||||
chessfriend_core::Piece::new(
|
||||
chessfriend_core::Color::$color,
|
||||
chessfriend_core::Shape::$shape
|
||||
),
|
||||
chessfriend_core::Square::$square
|
||||
))
|
||||
)*
|
||||
.to_move(chessfriend_core::Color::$to_move)
|
||||
.en_passant(Some(chessfriend_moves::EnPassant::from_target_square(chessfriend_core::Square::$en_passant)).unwrap())
|
||||
.build();
|
||||
let mut board = $crate::Board::empty();
|
||||
$(let _ = board.pieces.place(
|
||||
chessfriend_core::Piece::new(
|
||||
chessfriend_core::Color::$color,
|
||||
chessfriend_core::Shape::$shape
|
||||
),
|
||||
chessfriend_core::Square::$square);
|
||||
)*
|
||||
board.clock.active_color = chessfriend_core::Color::$to_move;
|
||||
board.en_passant_target = Some(chessfriend_core::Square::$en_passant);
|
||||
|
||||
println!("{}", board.display());
|
||||
|
||||
|
@ -42,37 +38,33 @@ macro_rules! test_board {
|
|||
};
|
||||
($to_move:ident, [ $($color:ident $shape:ident on $square:ident),* $(,)? ]) => {
|
||||
{
|
||||
let board = $crate::Builder::new()
|
||||
$(.place_piece(
|
||||
chessfriend_core::PlacedPiece::new(
|
||||
chessfriend_core::Piece::new(
|
||||
chessfriend_core::Color::$color,
|
||||
chessfriend_core::Shape::$shape
|
||||
),
|
||||
chessfriend_core::Square::$square
|
||||
))
|
||||
)*
|
||||
.to_move(chessfriend_core::Color::$to_move)
|
||||
.build();
|
||||
let mut board = $crate::Board::empty();
|
||||
$(let _ = board.pieces.place(
|
||||
chessfriend_core::Piece::new(
|
||||
chessfriend_core::Color::$color,
|
||||
chessfriend_core::Shape::$shape
|
||||
),
|
||||
chessfriend_core::Square::$square,
|
||||
$crate::PlacePieceStrategy::default());
|
||||
)*
|
||||
board.clock.active_color = chessfriend_core::Color::$to_move;
|
||||
|
||||
println!("{}", board.display());
|
||||
|
||||
pos
|
||||
board
|
||||
}
|
||||
};
|
||||
($($color:ident $shape:ident on $square:ident),* $(,)?) => {
|
||||
{
|
||||
let board = $crate::Builder::new()
|
||||
$(.place_piece(
|
||||
chessfriend_core::PlacedPiece::new(
|
||||
chessfriend_core::Piece::new(
|
||||
chessfriend_core::Color::$color,
|
||||
chessfriend_core::Shape::$shape
|
||||
),
|
||||
chessfriend_core::Square::$square
|
||||
))
|
||||
)*
|
||||
.build();
|
||||
let mut board = $crate::Board::empty();
|
||||
$(let _ = board.pieces.place(
|
||||
chessfriend_core::Piece::new(
|
||||
chessfriend_core::Color::$color,
|
||||
chessfriend_core::Shape::$shape
|
||||
),
|
||||
chessfriend_core::Square::$square,
|
||||
$crate::PlacePieceStrategy::default());
|
||||
)*
|
||||
|
||||
println!("{}", board.display());
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue