Example #1
0
/* 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();
}
Example #2
0
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();
    }
}