[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:
parent
3cec64d686
commit
6f85305912
17 changed files with 59 additions and 36 deletions
|
@ -7,3 +7,4 @@ edition = "2021"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
chessfriend_core = { path = "../core" }
|
chessfriend_core = { path = "../core" }
|
||||||
|
chessfriend_bitboard = { path = "../bitboard" }
|
||||||
|
|
|
@ -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;
|
|
||||||
|
|
|
@ -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() {
|
||||||
|
|
|
@ -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]
|
||||||
|
|
|
@ -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]
|
||||||
|
|
|
@ -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()
|
)
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -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]
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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]
|
||||||
|
|
|
@ -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() {
|
||||||
|
|
|
@ -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]
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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)),
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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> {
|
||||||
|
|
|
@ -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};
|
||||||
|
|
||||||
|
|
|
@ -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,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue