[board] Clean up a bunch of build errors

Fix imports to refer to core and bitboard crates.
Fix some API use errors.
This commit is contained in:
Eryn Wells 2024-01-24 09:18:12 -08:00
parent 3cec64d686
commit 6f85305912
17 changed files with 59 additions and 36 deletions

View file

@ -7,3 +7,4 @@ edition = "2021"
[dependencies] [dependencies]
chessfriend_core = { path = "../core" } chessfriend_core = { path = "../core" }
chessfriend_bitboard = { path = "../bitboard" }

View file

@ -14,5 +14,3 @@ mod sight;
pub use piece::{Color, Piece}; pub use piece::{Color, Piece};
pub use position::{MoveBuilder as MakeMoveBuilder, Position, PositionBuilder}; pub use position::{MoveBuilder as MakeMoveBuilder, Position, PositionBuilder};
pub use r#move::{Castle, MakeMoveError, Move, MoveBuilder}; pub use r#move::{Castle, MakeMoveError, Move, MoveBuilder};
pub(crate) use bitboard::BitBoard;

View file

@ -3,8 +3,9 @@
use super::{move_generator_declaration, MoveGeneratorInternal, MoveSet}; use super::{move_generator_declaration, MoveGeneratorInternal, MoveSet};
use crate::{ use crate::{
piece::{Color, Piece, PlacedPiece}, piece::{Color, Piece, PlacedPiece},
BitBoard, MoveBuilder, Position, MoveBuilder, Position,
}; };
use chessfriend_bitboard::BitBoard;
use chessfriend_core::Direction; use chessfriend_core::Direction;
move_generator_declaration!(ClassicalMoveGenerator); move_generator_declaration!(ClassicalMoveGenerator);
@ -60,7 +61,8 @@ impl<'pos> MoveGeneratorInternal for ClassicalMoveGenerator<'pos> {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::{piece, piece::Color, position, position::DiagramFormatter, BitBoard}; use crate::{piece, piece::Color, position, position::DiagramFormatter};
use chessfriend_bitboard::BitBoard;
#[test] #[test]
fn classical_single_bishop_bitboard() { fn classical_single_bishop_bitboard() {

View file

@ -7,8 +7,9 @@ use super::{move_generator_declaration, MoveGeneratorInternal, MoveSet};
use crate::{ use crate::{
piece::{Color, Piece, PlacedPiece}, piece::{Color, Piece, PlacedPiece},
r#move::Castle, r#move::Castle,
BitBoard, Move, MoveBuilder, Position, Move, MoveBuilder, Position,
}; };
use chessfriend_bitboard::BitBoard;
move_generator_declaration!(KingMoveGenerator, struct); move_generator_declaration!(KingMoveGenerator, struct);
move_generator_declaration!(KingMoveGenerator, new); move_generator_declaration!(KingMoveGenerator, new);
@ -76,7 +77,8 @@ impl<'pos> MoveGeneratorInternal for KingMoveGenerator<'pos> {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::Square; use chessfriend_bitboard::bitboard;
use chessfriend_core::Square;
use std::collections::HashSet; use std::collections::HashSet;
#[test] #[test]

View file

@ -3,8 +3,9 @@
use super::{move_generator_declaration, MoveGeneratorInternal, MoveSet}; use super::{move_generator_declaration, MoveGeneratorInternal, MoveSet};
use crate::{ use crate::{
piece::{Color, Piece, PlacedPiece}, piece::{Color, Piece, PlacedPiece},
BitBoard, MoveBuilder, Position, MoveBuilder, Position,
}; };
use chessfriend_bitboard::BitBoard;
move_generator_declaration!(KnightMoveGenerator); move_generator_declaration!(KnightMoveGenerator);
@ -40,7 +41,8 @@ impl<'pos> MoveGeneratorInternal for KnightMoveGenerator<'pos> {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::{piece, position, Move, Square}; use crate::{piece, position, Move};
use chessfriend_core::Square;
use std::collections::HashSet; use std::collections::HashSet;
#[test] #[test]

View file

@ -14,8 +14,9 @@ pub(crate) use move_set::MoveSet;
use crate::{ use crate::{
piece::{Color, Piece, PlacedPiece}, piece::{Color, Piece, PlacedPiece},
Move, Position, Square, Move, Position,
}; };
use chessfriend_core::Square;
use std::collections::BTreeMap; use std::collections::BTreeMap;
trait MoveGenerator { trait MoveGenerator {
@ -34,7 +35,10 @@ macro_rules! move_generator_declaration {
pub(super) struct $name<'pos> { pub(super) struct $name<'pos> {
position: &'pos $crate::Position, position: &'pos $crate::Position,
color: $crate::piece::Color, color: $crate::piece::Color,
move_sets: std::collections::BTreeMap<$crate::Square, $crate::move_generator::MoveSet>, move_sets: std::collections::BTreeMap<
chessfriend_core::Square,
$crate::move_generator::MoveSet,
>,
} }
}; };
($name:ident, new) => { ($name:ident, new) => {
@ -54,12 +58,11 @@ macro_rules! move_generator_declaration {
self.move_sets.values().map(|set| set.moves()).flatten() self.move_sets.values().map(|set| set.moves()).flatten()
} }
fn bitboard(&self) -> $crate::BitBoard { fn bitboard(&self) -> chessfriend_bitboard::BitBoard {
self.move_sets self.move_sets.values().fold(
.values() chessfriend_bitboard::BitBoard::empty(),
.fold($crate::BitBoard::empty(), |partial, mv_set| { |partial, mv_set| partial | mv_set.bitboard(),
partial | mv_set.bitboard() )
})
} }
} }
}; };

View file

@ -43,7 +43,8 @@ impl<'a> Moves<'a> {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use crate::{piece, position, r#move::AlgebraicMoveFormatter, Move, MoveBuilder, Square}; use crate::{piece, position, r#move::AlgebraicMoveFormatter, Move, MoveBuilder};
use chessfriend_core::Square;
use std::collections::HashSet; use std::collections::HashSet;
#[test] #[test]

View file

@ -1,4 +1,5 @@
use crate::{piece::PlacedPiece, BitBoard, Move}; use crate::{piece::PlacedPiece, Move};
use chessfriend_bitboard::BitBoard;
#[derive(Clone, Debug, Eq, PartialEq)] #[derive(Clone, Debug, Eq, PartialEq)]
struct BitBoardSet { struct BitBoardSet {

View file

@ -2,8 +2,9 @@
use crate::{ use crate::{
piece::{Color, Piece, Shape}, piece::{Color, Piece, Shape},
BitBoard, Move, MoveBuilder, Position, Move, MoveBuilder, Position,
}; };
use chessfriend_bitboard::BitBoard;
enum MoveList { enum MoveList {
Quiet = 0, Quiet = 0,
@ -246,7 +247,8 @@ impl<'pos> Iterator for PawnMoveGenerator<'pos> {
mod tests { mod tests {
use super::*; use super::*;
use crate::position::DiagramFormatter; use crate::position::DiagramFormatter;
use crate::{piece, Position, Square}; use crate::{piece, Position};
use chessfriend_core::Square;
use std::collections::HashSet; use std::collections::HashSet;
#[test] #[test]

View file

@ -3,8 +3,9 @@
use super::{move_generator_declaration, MoveGeneratorInternal, MoveSet}; use super::{move_generator_declaration, MoveGeneratorInternal, MoveSet};
use crate::{ use crate::{
piece::{Color, Piece, PlacedPiece}, piece::{Color, Piece, PlacedPiece},
BitBoard, MoveBuilder, Position, MoveBuilder, Position,
}; };
use chessfriend_bitboard::BitBoard;
use chessfriend_core::Direction; use chessfriend_core::Direction;
move_generator_declaration!(ClassicalMoveGenerator); move_generator_declaration!(ClassicalMoveGenerator);
@ -66,7 +67,8 @@ impl<'pos> MoveGeneratorInternal for ClassicalMoveGenerator<'pos> {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::{piece, position, position::DiagramFormatter, BitBoard, Color}; use crate::{piece, position, position::DiagramFormatter, Color};
use chessfriend_bitboard::{bitboard, BitBoard};
#[test] #[test]
fn classical_single_queen_bitboard() { fn classical_single_queen_bitboard() {

View file

@ -3,8 +3,9 @@
use super::{move_generator_declaration, MoveGeneratorInternal, MoveSet}; use super::{move_generator_declaration, MoveGeneratorInternal, MoveSet};
use crate::{ use crate::{
piece::{Color, Piece, PlacedPiece}, piece::{Color, Piece, PlacedPiece},
BitBoard, MoveBuilder, Position, MoveBuilder, Position,
}; };
use chessfriend_bitboard::BitBoard;
use chessfriend_core::Direction; use chessfriend_core::Direction;
move_generator_declaration!(ClassicalMoveGenerator); move_generator_declaration!(ClassicalMoveGenerator);
@ -62,7 +63,8 @@ impl<'pos> MoveGeneratorInternal for ClassicalMoveGenerator<'pos> {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::{piece::Piece, position, position::DiagramFormatter, BitBoard, Color, Position}; use crate::{piece::Piece, position, position::DiagramFormatter, Color, Position};
use chessfriend_bitboard::{bitboard, BitBoard};
use chessfriend_core::Square; use chessfriend_core::Square;
#[test] #[test]

View file

@ -4,8 +4,9 @@ use crate::{
piece::{PlacedPiece, Shape}, piece::{PlacedPiece, Shape},
position::flags::Flags, position::flags::Flags,
r#move::Castle, r#move::Castle,
BitBoard, Color, MakeMoveError, Move, Piece, Position, Color, MakeMoveError, Move, Piece, Position,
}; };
use chessfriend_bitboard::BitBoard;
use chessfriend_core::{Direction, Square}; use chessfriend_core::{Direction, Square};
/// A position builder that builds a new position by making a move. /// A position builder that builds a new position by making a move.

View file

@ -1,14 +1,13 @@
// Eryn Wells <eryn@erynwells.me> // Eryn Wells <eryn@erynwells.me>
use crate::{ use crate::{
bitboard::BitBoardBuilder,
piece::{PlacedPiece, Shape}, piece::{PlacedPiece, Shape},
position::{flags::Flags, piece_sets::PieceBitBoards}, position::{flags::Flags, piece_sets::PieceBitBoards},
r#move::Castle, r#move::Castle,
BitBoard, Color, MakeMoveError, Move, Piece, Position, Color, MakeMoveError, Move, Piece, Position,
}; };
use chessfriend_core::{Rank, Square};
use std::collections::BTreeMap; use std::collections::BTreeMap;
use chessfriend_core::Square;
#[derive(Clone)] #[derive(Clone)]
pub struct Builder { pub struct Builder {
@ -109,8 +108,8 @@ impl Builder {
impl Default for Builder { impl Default for Builder {
fn default() -> Self { fn default() -> Self {
let white_king_square = Square::king_starting_square(Color::White); let white_king_square = Square::E1;
let black_king_square = Square::king_starting_square(Color::Black); let black_king_square = Square::E8;
let pieces = BTreeMap::from_iter([ let pieces = BTreeMap::from_iter([
(white_king_square, piece!(White King)), (white_king_square, piece!(White King)),

View file

@ -2,8 +2,9 @@
use crate::{ use crate::{
piece::{Piece, PlacedPiece}, piece::{Piece, PlacedPiece},
BitBoard, Color, Color,
}; };
use chessfriend_bitboard::BitBoard;
use chessfriend_core::Square; use chessfriend_core::Square;
#[derive(Debug, Eq, PartialEq)] #[derive(Debug, Eq, PartialEq)]
@ -125,7 +126,7 @@ impl PieceBitBoards {
impl FromIterator<PlacedPiece> for PieceBitBoards { impl FromIterator<PlacedPiece> for PieceBitBoards {
fn from_iter<T: IntoIterator<Item = PlacedPiece>>(iter: T) -> Self { fn from_iter<T: IntoIterator<Item = PlacedPiece>>(iter: T) -> Self {
let mut pieces = Self::default(); let mut pieces: Self = Default::default();
for piece in iter { for piece in iter {
let _ = pieces.place_piece(&piece); let _ = pieces.place_piece(&piece);

View file

@ -2,7 +2,7 @@
use super::Position; use super::Position;
use crate::piece::{Color, Piece, PlacedPiece, Shape}; use crate::piece::{Color, Piece, PlacedPiece, Shape};
use crate::BitBoard; use chessfriend_bitboard::BitBoard;
use chessfriend_core::Square; use chessfriend_core::Square;
pub struct Pieces<'a> { pub struct Pieces<'a> {

View file

@ -7,8 +7,9 @@ use crate::{
position::DiagramFormatter, position::DiagramFormatter,
r#move::Castle, r#move::Castle,
sight::Sight, sight::Sight,
BitBoard, Move, Move,
}; };
use chessfriend_bitboard::BitBoard;
use chessfriend_core::Square; use chessfriend_core::Square;
use std::{cell::OnceCell, fmt}; use std::{cell::OnceCell, fmt};

View file

@ -2,8 +2,9 @@
use crate::{ use crate::{
piece::{Color, PlacedPiece, Shape}, piece::{Color, PlacedPiece, Shape},
BitBoard, Position, Position,
}; };
use chessfriend_bitboard::BitBoard;
use chessfriend_core::Direction; use chessfriend_core::Direction;
pub(crate) trait Sight { pub(crate) trait Sight {
@ -174,7 +175,8 @@ mod tests {
} }
mod pawn { mod pawn {
use crate::{sight::Sight, BitBoard}; use crate::sight::Sight;
use chessfriend_bitboard::{bitboard, BitBoard};
use chessfriend_core::Square; use chessfriend_core::Square;
sight_test!(e4_pawn, piece!(White Pawn on E4), bitboard!(D5, F5)); sight_test!(e4_pawn, piece!(White Pawn on E4), bitboard!(D5, F5));
@ -234,6 +236,7 @@ mod tests {
#[macro_use] #[macro_use]
mod knight { mod knight {
use crate::sight::Sight; use crate::sight::Sight;
use chessfriend_bitboard::bitboard;
sight_test!( sight_test!(
f6_knight, f6_knight,
@ -244,6 +247,7 @@ mod tests {
mod bishop { mod bishop {
use crate::sight::Sight; use crate::sight::Sight;
use chessfriend_bitboard::bitboard;
sight_test!( sight_test!(
c2_bishop, c2_bishop,
@ -254,6 +258,7 @@ mod tests {
mod rook { mod rook {
use crate::sight::Sight; use crate::sight::Sight;
use chessfriend_bitboard::bitboard;
sight_test!( sight_test!(
g3_rook, g3_rook,