diff --git a/src/search/negamax.rs b/src/search/negamax.rs index 632ceff..4858795 100644 --- a/src/search/negamax.rs +++ b/src/search/negamax.rs @@ -49,7 +49,6 @@ pub fn negamax( if let Some(entry) = entry { if alpha == beta - 1 && plies > 0 - && entry.hash == game.hash && entry.depth >= depth && entry.node_type.cutoff_eligible(entry.score, alpha, beta) { diff --git a/src/search/transposition_table.rs b/src/search/transposition_table.rs index 06642c9..903036f 100644 --- a/src/search/transposition_table.rs +++ b/src/search/transposition_table.rs @@ -24,9 +24,17 @@ impl TranspositionTable { } pub fn lookup(&self, zobrist_hash: ZobristHash) -> Option { - self.positions + let entry = self + .positions .get((zobrist_hash.0 & (self.size - 1)) as usize) - .and_then(|entry| *entry) + .and_then(|entry| *entry); + + if let Some(entry) = entry { + if entry.hash == zobrist_hash { + return Some(entry); + } + } + None } pub fn insert(&mut self, entry: TTEntry) {