Encode Move into a u16

This commit is contained in:
stefiosif
2025-02-03 20:01:20 +02:00
parent 888b3866b9
commit ea6800183d
8 changed files with 363 additions and 268 deletions

View File

@@ -14,8 +14,8 @@ pub fn score_move(
return -90;
}
let aggressor = mailbox.piece_at(mv.src).expect("No aggressor found.");
mailbox.piece_at(mv.dst).map_or(100, |victim| {
let aggressor = mailbox.piece_at(mv.src()).expect("No aggressor found.");
mailbox.piece_at(mv.dst()).map_or(100, |victim| {
aggressor.0.idx() as i32 - (victim.0.idx() * 8) as i32
})
}
@@ -34,9 +34,9 @@ mod tests {
#[test]
fn test_score_move() -> Result<(), String> {
let game = from_fen(FEN)?;
let queen_takes_pawn = Move::with_type(Square::F3, Square::F5, MoveType::Capture);
let pawn_takes_queen = Move::with_type(Square::H5, Square::G6, MoveType::Capture);
let castle = Move::with_type(Square::E1, Square::C1, MoveType::Castle);
let queen_takes_pawn = Move::new_with_type(Square::F3, Square::F5, MoveType::Capture);
let pawn_takes_queen = Move::new_with_type(Square::H5, Square::G6, MoveType::Capture);
let castle = Move::new_with_type(Square::E1, Square::C1, MoveType::QueenCastle);
let mut moves = vec![castle, queen_takes_pawn, pawn_takes_queen];
moves.sort_unstable_by_key(|mv| score_move(&game.mailbox, *mv, None, None));