|
@@ -135,7 +135,9 @@ fn negamax(game: &mut Game, sc: &mut SearchControl, hash: &mut Cache, mut alpha:
|
|
|
//println!("TABLE HIT!");
|
|
|
match e.entry_type {
|
|
|
EntryType::Value => { return (e.value, false); },
|
|
|
- EntryType::LowerBound => { if e.value > alpha { return (e.value, false) } },
|
|
|
+ //EntryType::LowerBound => { if e.value > alpha { return (e.value, false) } },
|
|
|
+ EntryType::LowerBound => { if e.value > alpha { alpha = e.value; } },
|
|
|
+ //EntryType::UpperBound => { if e.value >= beta { return (beta, false); } },
|
|
|
EntryType::UpperBound => { if e.value >= beta { return (beta, false); } },
|
|
|
}
|
|
|
}
|
|
@@ -212,7 +214,7 @@ fn negamax(game: &mut Game, sc: &mut SearchControl, hash: &mut Cache, mut alpha:
|
|
|
|
|
|
if val >= beta {
|
|
|
game.undo_move(undo);
|
|
|
- hash.cache(game, CacheEntry::new_beta(depth, beta));
|
|
|
+ hash.cache(game, CacheEntry::new_lower(depth, val));
|
|
|
//println!("but ret {}: {}", depth, beta);
|
|
|
return (beta, false);
|
|
|
}
|
|
@@ -228,7 +230,7 @@ fn negamax(game: &mut Game, sc: &mut SearchControl, hash: &mut Cache, mut alpha:
|
|
|
hash.cache(game, CacheEntry::new_value(depth, alpha));
|
|
|
}
|
|
|
else {
|
|
|
- hash.cache(game, CacheEntry::new_alpha(depth, alpha));
|
|
|
+ hash.cache(game, CacheEntry::new_upper(depth, alpha));
|
|
|
}
|
|
|
//info!("best alpha {}", best);
|
|
|
return (alpha, false);
|