Sfoglia il codice sorgente

better move ordering

Nicolas Winkler 3 anni fa
parent
commit
b2df234a28
1 ha cambiato i file con 10 aggiunte e 2 eliminazioni
  1. 10 2
      src/movegen.rs

+ 10 - 2
src/movegen.rs

@@ -2,7 +2,7 @@ use bitboard::Bitboard;
 use bitboard::Square;
 use bitboard::*;
 use game::Game;
-use hash::Cache;
+use hash::{Cache, EntryType};
 use log::info;
 
 pub type Side = bool;
@@ -205,7 +205,15 @@ pub fn sort_moves(game: &Game, hash: &mut Cache, move_list: &mut Vec<Move>) {
     move_list.sort_by_cached_key(|mov| {
         let new_game = crate::search::apply_move(game, *mov);
         if let Some(e) = hash.lookup(&new_game) {
-            return e.value;
+            if let EntryType::Value = e.entry_type {
+                return e.value;
+            }
+            else if let EntryType::LowerBound = e.entry_type {
+                return e.value + 1000;
+            }
+            else if let EntryType::UpperBound = e.entry_type {
+                return e.value - 1000;
+            }
         }
         else {
             return crate::evaluate::evaluate(&new_game);