From 3965ed40b05020eb7250a6270dd7df1bb3f5c4ee Mon Sep 17 00:00:00 2001 From: eug-vs Date: Wed, 25 Jan 2023 12:23:04 +0300 Subject: feat: use moves at cut-nodes as hash moves too --- src/board/engine.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/board/engine.rs') diff --git a/src/board/engine.rs b/src/board/engine.rs index 0a99def..821e65a 100644 --- a/src/board/engine.rs +++ b/src/board/engine.rs @@ -135,7 +135,7 @@ impl Board { match self.transposition_table[(self.hash % TTABLE_SIZE) as usize] { Some(item) => { - if item.node_type == NodeType::PV && item.hash == self.hash { + if item.hash == self.hash { moves.insert(0, item.best_move); } } @@ -158,6 +158,14 @@ impl Board { self.unmake_move(mov, captured_piece, ep_target_before, castling_rights_before, hash_before); if score >= beta { + self.transposition_table[(self.hash % TTABLE_SIZE) as usize] = Some(TranspositionTableItem { + hash: self.hash, + best_move: mov, + depth: depth_left, // TODO: should be actual depth searched + node_type: NodeType::Cut, + score, + }); + return (beta, principal_variation); } if score > alpha { @@ -199,7 +207,7 @@ impl Board { match self.transposition_table[(self.hash % TTABLE_SIZE) as usize] { Some(item) => { - if item.node_type == NodeType::PV && item.hash == self.hash { + if item.hash == self.hash { moves.insert(0, item.best_move); } } -- cgit v1.2.3