Computer Chess Club Archives




Subject: Move ordering - How do I know if I have played this move already?

Author: Steve Maughan

Date: 14:39:23 04/06/99

Hi Folks!

In my progam I have been playing around with move ordering.  If possible I would
like to play certain moves (e.g. Hash move, killer move) before I call the
general MoveGeneration routine.  Hopefully this will save time as the hash move
etc will often cause a cutoff.  However, in the common case were these do not
create a cutoff I will still need to generate all the other possible moves.  My
question is - what is the best method for keeping track of moves played or
testing whether or not a move has already been played?

Do people;

a) iterate through all moves generate?
b) iterate through special moves such as hash?
c) create a 64 bit integer for each piece, with each bit representing a 'to'
square.  If the 'OR' gives a new number then it is a new move.
d) Generate all the moves in the first place and give a high weight to special
moves as desired?
e) Use some form of hash table?

I am favouring 'c' at the moment but am not sure if there isn't an easier way.

All ideas and help appreciated.

Steve Maughan

This page took 0.01 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.