Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Hashing

Author: Andrew Williams

Date: 03:50:17 05/09/99

Go up one level in this thread


On May 09, 1999 at 06:31:41, Frank Phillips wrote:

>I have noticed that bugs in my program sometimes cause the onset of
>irrationality where I bang the keyboard randomly hoping that by magic (or
>perhaps the monkeys writing Shakespeare theory) the problem will go away.
>
>Up until now I have been calculating the hash code for a position in the
>ABSearch() from scratch by looping through the board and XORing the Random64
>[colour_of_piece][piece][square] combinations, followed by XORing for the
>enpassant square and castling rights.   To speed things up I thought I would do
>this incrementally in the MakeMove() function by taking the last hash code
>(always stored as wtm), undoing the enpassant and castling effects, by XORing
>with same values to switch them off, then XORing to remove the piece from a
>square, put piece on square, remove captured piece, add promoted piece
>etc???.and then finally XORing the result for new enpassant square and castling
>rights.
>
>Everything works fine without hashing the enpassant square and castling rights,
>but not otherwise.  By which I mean the new method gives the same hash code as
>that calculated from scratch in the same position by looping through the board,
>provided I do not hash for ep and castling.  When I print out the moves, the
>offending move where it all goes wrong seems to be castling, but I cannot find
>the error.
>
>Should what I am doing work, so that there is still a bug in the incremental
>hash update I have not found yet, or can I not do it the way I am trying?

What you describe here is exactly what I do, so it is possible to do it this
way. Do you also include the hashkey update for the Rook and King moving about
during castling? This question isn't meant to insult your intelligence; this
was one of the main problems I had when implementing incremental hashkey
updates.

Andrew




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.