From fa675c4b7f3416548373d76228fa4a9f358276d9 Mon Sep 17 00:00:00 2001 From: Walter Oggioni Date: Thu, 3 Jul 2025 10:40:32 +0800 Subject: [PATCH] refactor --- rdraught/src/draughts.rs | 12 ++++++------ rdraught/src/movement.rs | 11 ----------- 2 files changed, 6 insertions(+), 17 deletions(-) diff --git a/rdraught/src/draughts.rs b/rdraught/src/draughts.rs index 095dbda..1c2d749 100644 --- a/rdraught/src/draughts.rs +++ b/rdraught/src/draughts.rs @@ -158,7 +158,7 @@ impl DraughtsBoard { } } - fn apply_move(&mut self, mv: &LoggedMove) { + fn redo_move(&mut self, mv: &LoggedMove) { let start = mv.start_position(); let piece = self.get_piece(&start); let final_piece = if mv.pawn_promoted() { @@ -183,7 +183,7 @@ impl DraughtsBoard { }; } - fn check_and_apply_move(&mut self, mv: &Move) -> Result<(), Error> { + fn apply_move(&mut self, mv: &Move) -> Result<(), Error> { let start = mv.get_start_position(); let piece = self.get_piece(&start); if let Piece::NoPiece = piece { @@ -410,7 +410,7 @@ impl DraughtsGame { } fn redo_move(&mut self, mv: &LoggedMove) { - self.board.apply_move(mv); + self.board.redo_move(mv); if !mv.is_capture() || !mv.multi_capture() { self.next_turn(); } @@ -422,13 +422,13 @@ impl DraughtsGame { if let Some(player) = piece.player() { if mv.is_movement() { if self.next_move == player { - self.board.check_and_apply_move(mv)?; + self.board.apply_move(mv)?; self.next_turn(); } else { return Err(Error::WrongPlayer); } } else if self.next_move == player { - self.board.check_and_apply_move(mv)?; + self.board.apply_move(mv)?; // Check if more captures are available for the current piece if self .board @@ -845,7 +845,7 @@ mod tests { ]; for mv in moves { let mut board_clone = board.clone(); - board_clone.apply_move(&mv); + board_clone.redo_move(&mv); assert_ne!(board, board_clone); board_clone.undo_move(&mv); assert_eq!(board, board_clone); diff --git a/rdraught/src/movement.rs b/rdraught/src/movement.rs index 95ce3c0..87e58e3 100644 --- a/rdraught/src/movement.rs +++ b/rdraught/src/movement.rs @@ -50,17 +50,6 @@ pub struct LoggedMove { } impl LoggedMove { - fn is_pawn_promoted( - piece: Piece, - start: Position, - dir: MoveDirection, - is_capture: bool, - ) -> bool { - let end_row = compute_end_position(start, dir, is_capture).row(); - !piece.is_crowned() && (Some(Player::White) == piece.player() && end_row == 7) - || (Some(Player::Red) == piece.player() && end_row == 0) - } - pub fn movement(start: Position, dir: MoveDirection, is_pawn_promoted: bool) -> LoggedMove { let mut result = >::into(start) as u16; result |= (dir as u16) << 5;