Computer Chess Club Archives


Search

Terms

Messages

Subject: zobrist key table questions

Author: Uri Blass

Date: 03:44:55 05/30/04


I have the following function to initialize my random numbers

typedef unsigned __int64 BitBoard;

BitBoard rand64()
{
  __int64 r = rand();
  r ^= (__int64)rand() << 15;
  r ^= (__int64)rand() << 30;
  r ^= (__int64)rand() << 45;
  r ^= (__int64)rand() << 60;
  return r;
}

void initializezobarray()
{
	//starting zobrist keys
	char zobnum[128];
	int fil,i,j;
	srand(0);
	for (fil=0;fil<6;fil++)
		for (i=0;i<2;i++)
			for (j=0;j<64;j++)
				zobrist[fil][i][j]=rand64();


}

My first question is if I can be sure that I will get the same random numbers in
every computer(I get the same in my computer but if I do not get the same in
every computer than I may consider to rewrite it because I plan to use hash keys
for my book and I do not want to have a problem that the program will not be
able to use my book in another computer).

I also see that Crafty is using a table of random numbers from a book and does
not trust rand()

My second question is if there is an advantage in doing it.

Uri



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.