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.