Author: Fabien Letouzey
Date: 01:40:16 10/26/05
Go up one level in this thread
On October 26, 2005 at 01:47:34, Uri Blass wrote: >I thought from the name that it is about move ordering but it is obvious from >the content that it does nothing about move ordering(maybe it returns some value >that is relevant for move ordering but it certainly does not help to exlain move >ordering. >int move_order(int move) { > > ASSERT(move_is_ok(move)); > > return ((move & 07777) << 2) | ((move >> 12) & 3); >} This is a static move ordering for debugging, e.g. a1a2, a1a3, etc ... --- Real move-ordering code is in sort.cpp, and the implementation is admitedly complicated. Move ordering is: - transposition-table move - "SEE >= 0" captures (+ promotions) in MVV/LVA order (i.e. winning and equal captures mixed) - 2 killers - quiet moves ordered by history scores - losing captures in MVV/LVA order To my knowledge this is identical to the order proposed in Heinz et al.'s book (except that they don't specify interaction between SEE and MVV/LVA), although I reached it by experimentation. Fabien.
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.