aboutsummaryrefslogtreecommitdiff
path: root/src/board/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/board/mod.rs')
-rw-r--r--src/board/mod.rs21
1 files changed, 5 insertions, 16 deletions
diff --git a/src/board/mod.rs b/src/board/mod.rs
index 67f7264..84d77fb 100644
--- a/src/board/mod.rs
+++ b/src/board/mod.rs
@@ -77,11 +77,6 @@ const PIECE_CHARS: [&str; 12] = [
"♙", "♘", "♗", "♖", "♕", "♔",
];
-#[derive(Debug)]
-pub enum MakeMoveError {
- PieceNotFound(String),
-}
-
#[allow(unused)]
impl Board {
@@ -500,7 +495,7 @@ impl Board {
/// *Blindlessly* apply a move without any validation
/// Move should be validated beforehand
- pub fn make_move(&mut self, mov: Move) -> Result<Option<PieceType>,MakeMoveError> {
+ pub fn make_move(&mut self, mov: Move) -> Option<PieceType> {
let move_source_bb = mov.source.to_bitboard();
let move_target_bb = mov.target.to_bitboard();
@@ -523,12 +518,8 @@ impl Board {
self.pieces[pawn_type as usize] ^= captured_square.to_bitboard();
self.hash ^= self.zobrist_seed[pawn_type as usize* 12 + captured_square as usize];
Some(pawn_type)
- }
- None => {
- return Err(MakeMoveError::PieceNotFound(
- String::from("Pawn captured by En Passant was not found")
- ))
- }
+ },
+ None => panic!("Pawn captured by En Passant was not found"),
}
}
@@ -547,9 +538,7 @@ impl Board {
},
None => {
self.print();
- return Err(MakeMoveError::PieceNotFound(
- String::from("Source piece not found")
- ))
+ panic!("{:?} is malformed: source piece not found", mov);
}
};
@@ -620,7 +609,7 @@ impl Board {
self.ply += 1;
self.hash ^= self.zobrist_seed[780];
- Ok(captured_piece)
+ captured_piece
}
/// Completely reverse make_move as if it never happened