Encode Move into a u16
This commit is contained in:
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user