/* Fill an array with random numbers for Zobrist hashing. */ void hash_init_zobrist_array(Hash_data *array, int size) { int i, j; for (i = 0; i < size; i++) for (j = 0; j < NUM_HASHVALUES; j++) array[i].hashval[j] = hash_rand(); }
void Hash::init_hash() { srand(time(0)); // WHITE: i = 0, BLACK: i = 1 for (int i = 0; i < 2; i++) { // PAWN = 1, KNIGHT = 2, ..., KING = 7 for (int j = 1; j < 7; j++) { for (int k = 0; k < 120; k++) { hash_piece[i][j][k] = hash_rand(); } } } hash_side_white = hash_rand(); hash_side_black = hash_rand(); for (int i = 0; i < 120; i++) { hash_enpassant[i] = hash_rand(); } for (int i = 0; i < 15; i++) { hash_castle[i] = hash_rand(); } }