Fix best move lookup bug
authorRaminder Singh <romi_ssk@yahoo.co.in>
Wed, 25 Sep 2013 13:17:59 +0000 (18:47 +0530)
committerMarco Costalba <mcostalba@gmail.com>
Fri, 27 Sep 2013 07:04:24 +0000 (09:04 +0200)
If the uci option 'Best Book Move' is set to true the lookup still
returns a move at random instead of the move with the highest
weight.

No functional change.

src/book.cpp

index c5c40dde42f1546a4a8e6938ecc1a19c6190a983..ec0a0f83bddbb24ebfa024553868c11f96c2b01f 100644 (file)
@@ -413,7 +413,7 @@ Move PolyglotBook::probe(const Position& pos, const string& fName, bool pickBest
       // Choose book move according to its score. If a move has a very
       // high score it has higher probability to be choosen than a move
       // with lower score. Note that first entry is always chosen.
-      if (   (sum && rkiss.rand<unsigned>() % sum < e.count)
+      if (   (!pickBest && sum && rkiss.rand<unsigned>() % sum < e.count)
           || (pickBest && e.count == best))
           move = Move(e.move);
   }